函数是通过赋值传递的,参数通过赋值传递给函数。 def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下:
1 def function_name(arg1,arg2[,...]): 2 statement 3 [return value]
返回值不是必须的,如果没有return语句,则Python默认返回值None。
函数名的命名规则: 函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号; 函数名是区分大小写的。 函数名不能是保留字。
函数中的参数接收传递的值,参数可分默认参数,如:
元组(Tuples)参数:def function(*ARG)
字典(dictionary)参数:def function(**ARG)
一些函数规则:
默认值必须在非默认参数之后;在单个函数定义中,只能使用一个tuple参数(*ARG)和一个字典参数(**ARG);tuple参数必须在连接参数和默认参数之后;字典参数必须在最后定义。
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
1 # 定义函数 2 def printme( str ): 3 "打印任何传入的字符串" 4 print str; 5 return; 6 7 # 调用函数 8 printme("我要调用用户自定义函数!"); 9 printme("再次调用同一函数");
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
1 def sum( arg1, arg2 ): 2 # 返回2个参数的和." 3 total = arg1 + arg2 4 print "函数1 : ", total 5 return total; 6 7 # 调用sum函数 8 total = sum( 10086, 10010 ); 9 print "函数2 : ", total
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
1 total = 0; # 这是全局变量 2 # 可写函数说明 3 def sum( arg1, arg2 ): 4 #返回2个参数的和." 5 total = arg1 + arg2; # total在这里是局部变量. 6 print "局部变量 : ", total 7 return total; 8 9 #调用sum函数 10 sum( 10086, 10010 ); 11 print "全局变量 : ", total
上述结果
1 函数内是局部变量 : 30 2 函数外是全局变量 : 0 View Code
1 | file.close() 关闭文件。关闭后文件不能再进行读写操作 |
2 | file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
3 | file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
4 | file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。 |
5 | file.next() 返回文件下一行。 |
6 | file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 | file.readline([size]) 读取整行,包括 "/n" 字符。 |
8 | file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。 |
9 | file.seek(offset[, whence]) 设置文件当前位置 |
10 | file.tell() 返回文件当前位置 |
11 | file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。 |
12 | file.write(str) 将字符串写入文件,没有返回值。 |
13 | file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |