python's ninth day for me
函数
函数的定义与调用:
#def 关键字 定义一个函数。
# my_len 函数名, 函数名的书写规则与变量的命名一致。
# def 与函数名中间一个空格。
# 函数名() : 加上冒号。
# 里面的整体被称为函数体。
def my_len(): li = [1,2,3] count = 0 for i in li: count += 1 print(count) my_len() #函数的执行: 函数名+()
函数的返回值:
写函数,不要在函数中写print()
# return
#1. 在函数中,遇到return结束函数。
#2. 将值返回给函数的调用者。
# 无 return
# return None
# return 1 个值,该值是什么,就直接返回给函数的调用者,函数名()
def my_len(): li = [1,2,3] count = 0 for i in li: count += 1 return count #返回count的值给 my_len() print(my_len())
# return 多个值,将多个值放到一个元祖中,返回给函数调用者。
def func(): return 1,2,3,[4,5,'顾清秋'],6 print(func()) # (1, 2, 3, [4, 5, '顾清秋'], 6)
函数的参数传值:
实参角度:
1,位置传参。按顺序,一 一 对 应.
def func(a,b,c): print(a) print(b) print(c) func(1,2,3) #一一对应位置传参。 # 1 # 2 # 3
2,关键字传参,不按顺序,一 一 对 应。
def max(a,b): if a > b: return a else: return b # num1 = int(input('请输入第一个数')) # num2 = int(input('请输入第二个数')) print(max(b = 10,a = 9))
def max(a,b): return a if a>b else b print(max(b = 10,a = 9)) # 10
3, 混合传参, 关键字参数永远在位置参数后面。
def func(a,b,c): print(a) print(b) print(c) func(1,c = 2,b = 4) #关键字参数永远在最后面 # 1 # 4 # 2
形参角度:
1,位置传参,按顺序,一 一对应。
def func(a,b,c): print(a) print(b) print(c) func('顾清秋',2,4) # 顾清秋 # 2 # 4
2,默认参数,传参则覆盖,不传则为默认参数,默认参数永远在位置参数后面。
def func(a,b=1): # b =1 为默认参数 print(a) print(b) func('顾清秋') # 顾清秋 # 1
def func(a,b=1): # b =1 为默认参数 print(a) print(b) func('顾清秋','懒笨呆') # 顾清秋 # 懒笨呆
简单的学生信息录入系统:
def infor(name,sex = '男'): #定义一个函数 infor with open('msg',encoding='utf-8',mode='a') as f: #创建'msg' 文件准备追加内容 f.write('{}\t{}\n' .format(name,sex)) # 格式化输出 能够同时写入 name 和 sex 信息。 while True: name = input('请输入姓名,男生请以1开头,例如:1张三').strip() if '1' in name: #判断name中是否有'1' name = name[1:] #用切片将输入的'1'删除 if name == '': #判断是否输入为空 print('没有输入名字,请重新输入...') continue #跳回输入阶段 else: infor(name) #调用函数,传入实参。 else: infor(name,'女') #调用函数,传入实参。