一、文件操作
f = open("file.txt",'r') print(len(f.read())) #文件总长度 print(f.tell()) #读完文件,文件指针位置f.seek(0,0) #偏移回文件头 print(f.readline()) #打印出文件中一行(第一行) print f.tell() #显示文件指针现在的位置 f.seek(2,1) #从当前文件指针(向后)偏移2个字节 print(f.readline()) #再打印一行(应该少2个字节) print(f.tell()) #显示 现在 的指针位置 f.seek(-7,1) #从当前位置向前偏移7个字节 print(f.readline()) #打印下一行 print(f.tell()) #显示 现在 的指针位置 f.seek(-9,2) #从尾部向前偏移9个字符 print(f.tell()) #显示 现在 的指针位置 print(f.readline()) #打印出内容 f.seek(0) #==>默认是0 等等seek(0,0) f.seek(80) #等同上面的seek(-9,2) 从尾部向前取 二、函数
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值
def stu_register(name, age, country, course):
print("----注册学生信息------")
print("姓名:", name)
print("age:", age)
print("国籍:", country)
print("课程:", course)
stu_register("王山炮", 22, "CN", "python_devops")
stu_register("张叫春", 21, "CN", "linux")
stu_register("刘老根", 25, "CN", "linux")
非固定参数
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
def stu_register(name, age, *args): # *args 会把多传入的参数变成一个元组形式 print(name, age, args)
stu_register("Alex", 22)
stu_register("Jack", 32, "CN", "Python”)
还可以有一个**kwargs
def stu_register(name, age, *args, **kwargs): # *kwargs 会把多传入的参数变成一个dict形式 print(name, age, args, kwargs)
stu_register("Alex", 22)
stu_register("Jack", 32, "CN", "Python", sex="Male", province="ShanDong")
1、普通调用
与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。
def fun(name, age, gender)
XXXX
调用:fun('Jack', 20, 'man')
2、使用关键字参数调用函数
函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。
3、调用具有默认实参的函数
Python中的函数也可以给一个或多个参数指定默认值,这样在调用时可以选择性地省略该参数:
def fun(a, b, c=100): print(a,b,c) 调用:fun(1,2) 调用:fun(1,2,3)注意:通常情况下默认值只被计算一次,但如果默认值是一个可变对象时会有所不同, 如列表, 字典, 或大多类的对象时。例如,下面的函数在随后的调用中会累积参数值:
def fun(a, L=[]): L.append(a) print(L) 调用:fun(1) # 输出[1] fun(2) # 输出[1, 2] fun(3) # 输出[1, 2, 3]4、调用可变参数函数
通过在形参前加一个星号(*)或两个星号(**)来指定函数可以接收任意数量的实参。
def fun(*args): print(type(args)) print(args) 调用:fun(1,2,3,4,5,6) # 输出: <class 'tuple'> (1, 2, 3, 4, 5, 6) 从两个示例的输出可以看出:当参数形如*args时,传递给函数的任意个实参会按位置被包装进一个元组(tuple);当参数形如**args时,传递给函数的任意个key=value实参会被包装进一个字典(dict)。
5、通过解包参数调用函数
上一点说到传递任意数量的实参时会将它们打包进一个元组或字典,当然有打包也就有解包(unpacking)。通过 单星号和双星号对List、Tuple和Dictionary进行解包:
def fun(a=1, b=2, c=3):
print(a+b+c)
调用:fun() # 正常调用 list1 = [11, 22, 33] dict1 = {'a':40, 'b':50, 'c':60} fun(*list1) # 解包列表 fun(**dict1) # 解包字典 #输出:
6
66
150
三、.返回值
要想获取函数的执行结果,就可以用return语句把结果返回
注意:
- 函数在执行过程中只要遇到return语句,就会停止执行并返回结果
- 如果未在函数中指定return,那这个函数的返回值为None
四、.内置函数
浙公网安备 33010602011771号