2019-08-11

Task4

python基础 

1.函数关键字

Python定义函数时使用 def 关键字

2.函数的定义

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。可以自己定义一个函数。

 --函数-封装了独立功能,可以直接调用

 --函数名(参数)

以下是简单的定义规则:

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法:

def functionname( parameters ):

  "函数_文档字符串"

  function_suite

    return [expression]

案例:

#自定义函数

def function_name (str):

    "打印传入的字符串"

    print(str)

    return(0);

#调用自定义函数

function_name("自定义函数")

function_name("调用自定义函数")

3.函数参数与作用域

函数参数:

必选参数

默认参数

可变参数

关键字参数

命名关键字参数

1)必选参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

def my_print(str):

    print(str)

    return

my_print() # 将会 throw TypeError,因为必选参数,必须传,若不传将会抛异常。

2)默认参数

调用函数时,如果没有传递参数,则会使用默认参数。需要注意,默认参数必须指向不可变对象。若指向为可变对象,将会导致问题。

def my_print(str, age = 18):

    print('name: ', str)

    print('age: ', age)

    return

3)可变参数

一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。

def my_print(arg1, *args):

    print("输出:")

    print(arg1)

    print(args)

    return

my_print(1, 2, 3, 4)

输出:

1

(2, 3, 4)

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

4)关键字参数

关键字参数允许函数调用时参数的顺序与声明时不一致,Python 解释器能够用参数名匹配参数值。

def my_print(name, age):

    print('姓名:', name)

    print('年龄:', age)

my_print(age=18, name='小明')

def person(name, age, **kw):

    print('name:', name, 'age:', age, 'other:', kw) # kw会自动将多个参数,组装成 dict

person('小明', 18, sex='female', school='南山小学') 

5)命名关键字参数

如果要限制关键字参数的名字,就可以用命名关键字参数。和关键字参数kw不同,命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数。

def person(name, age, *, city, job):

    print(name, age, city, job)

person('小明', 18, city='深圳', job='程序员')

6)多参数组合

def f1(a, b, c=0, *args, **kw):

    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):

    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

作用域:

函数内是一个作用域,(一般情况)外面是访问不到的。当进入一个函数时,一个新的作用域就被创建了。函数内的x和外面的x不是一个x,x是不可变量。

函数里可以访问外面的变量

函数里不可以修改外部定义的变量

4.函数返回值

1)函数返回值可以是任意的数据类型

2)如果有返回值:必须要用变量接收才会有效果

3)函数可以没有返回值,默认返回给None

其中函数的返回值为None有三种情况:

不写返回值

只写一个return

return None (几乎不用)

4)return的作用:结束一个函数的执行

5)函数的返回值不为None,有返回值

返回一个值(一个变量)

返回多个值(多个变量),多个值之间用逗号区分

接收:可以用一个变量接收,以元组的形式返回

例:

def move(x, y):

    return x, y

5.file

1)打开文件方式(读写两种方式)

f = open('./task4_3.py', 'r')

print(f.read())

f.close()

with open('./task4_4.py', 'a') as f:

    f.write('tiancity')


2)文件对象的操作方法

file.open 关闭文件。关闭后文件不能再进行读写操作。

file.read([size] 从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline 读取整行,包括 “\n” 字符。

3)学习对excel及csv文件进行操作

excel 读操作

import xlrd

read

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheets()[0]

row = sheet.row_values(0)

读取excel文件工作表中第1个工作簿的第1行第2列的数据

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheets()[0]

cell = sheet.cell(0, 1)

print(cell, type(cell))

cellValue = sheet.cell(0, 1).value

print(cellValue, type(cellValue)

循环遍历

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheet_by_index(0)

for i in range(sheet.nrows):

    print(sheet.row_values(i))


excel 写操作

import xlwt

write excel

excel = xlwt.Workbook()

sheet = excel.add_sheet("test1")

sheet.write(0, 1, 'tiancity')

excel.save('excel.xls')


6.os模块

`os.sep:取代操作系统特定的路径分隔符

os.name:指示你正在使用的工作平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。

os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。

os.getenv()和os.putenv:分别用来读取和设置环境变量

os.listdir():返回指定目录下的所有文件和目录名

os.remove(file):删除一个文件

os.stat(file):获得文件属性

os.chmod(file):修改文件权限和时间戳

os.mkdir(name):创建目录

os.rmdir(name):删除目录

os.removedirs(r“c:\python”):删除多个目录

os.system():运行shell命令

os.exit():终止当前进程

os.linesep:给出当前平台的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’

os.path.split():返回一个路径的目录名和文件名

os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件

os.path.existe():检验给出的路径是否真的存在

os.listdir(dirname):列出dirname下的目录和文件

os.getcwd():获得当前工作目录

os.curdir:返回当前目录(’.’)

os.chdir(dirname):改变工作目录到dirname

os.path.isdir(name):判断name是不是目录,不是目录就返回false

os.path.isfile(name):判断name这个文件是否存在,不存在返回false

os.path.exists(name):判断是否存在文件或目录name

os.path.getsize(name):或得文件大小,如果name是目录返回0L

os.path.abspath(name):获得绝对路径

os.path.isabs():判断是否为绝对路径

os.path.normpath(path):规范path字符串形式

os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.splitext():分离文件名和扩展名

os.path.join(path,name):连接目录与文件名或目录

os.path.basename(path):返回文件名

os.path.dirname(path):返回文件路径

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容