在这一篇文章中,将介绍自定义函数、输入输出的相关知识。
函数
在使用Python做项目时,函数是必不可少的。Python提供了许多内建函数如print(),但我们也可以自己创建函数,这称为用户自定义函数。
函数的定义格式:
def 函数名(参数列表):
函数体
注意事项如下:
-
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
-
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
-
函数内容以冒号 : 起始,并且缩进。
-
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
在定义完一个函数后,即可通过传参等方式进行函数的调用(有些函数的调用是不需要参数的)
举个例子:
# 计算面积函数
def area(width, height):
return width * height
def print1(name):
print(name)
print_welcome("ice")
w = 5;h = 5
print(area(w, h))
匿名函数相关知识点本文不再详述
输入与输出
有些情况下,我们需要通过键盘传入值来调试代码,这涉及到内置函数的使用。
我们常使用input()内置函数来传值:
str = input();
print(str)
有些情况下,写脚本的时候,需要读、写文件,这也涉及到内置函数的使用。
open()
open() 将会返回一个 file 对象,基本语法格式如下:
open(filename, mode)
- filename:包含了你要访问的文件名称。
- mode:决定了打开文件的模式:只读,写入,追加等。这个参数是非强制的,默认文件访问模式为只读®。
mode模式及描述如下表:
mode 模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
下面介绍几个常见的读写函数。
f.read()
调用 f.read(size) 可以读取一定数目的数据,然后作为字符串或字节对象返回。
size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负,那么该文件的所有内容都将被读取并且返回。
举例:设1.txt中内容如下
我
你
他
py代码如下:
# 打开一个文件
f = open("/abc/1.txt", "r")
str = f.read()
print(str)
# 关闭打开的文件
f.close()
输出如图:
f.readline()
f.readline() 会从文件中读取单独的一行。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
# 打开一个文件
f = open("/abc/1.txt", "r")
str = f.readline()
print(str)
# 关闭打开的文件
f.close()
执行以上程序,输出结果为:
f.readlines()
f.readlines() 将返回该文件中包含的所有行。
# 打开一个文件
f = open("/abc/1.txt", "r")
str = f.readlines()
print(str)
# 关闭打开的文件
f.close()
执行以上程序,输出结果为:
另一种方式是迭代一个文件对象然后读取每行:
# 打开一个文件
f = open("/tmp/foo.txt", "r")
for line in f:
print(line, end='')
# 关闭打开的文件
f.close()
执行以上程序,输出结果为:
这个方法很简单,但是并没有提供一个很好的控制。 因为两者的处理机制不同,最好不要混用。
f.write()
f.write(string) 将 string 写入到文件中,然后返回写入的字符数。(换行符等算1个字符)
# 打开一个文件
f = open("1.txt", "w")
num = f.write( "花应怎么吹\nPython" )
print(num)
# 关闭打开的文件
f.close()
执行以上程序,输出结果为:
12
如果要写入一些非字符串结构如元组等, 则需转换为字符串再写入:
# 打开一个文件
f = open("1.txt", "w")
value = ('ice',1)
s = str(value)
f.write(s)
# 关闭打开的文件
f.close()
本文到此结束,在下一篇文章中将介绍错误与异常相关知识点。