欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第十天-初识函数

程序员文章站 2022-03-13 19:19:41
# 函数: # 对代码块的封装和定义# 函数名的命名规则和使用和变量基本一样. # 定义:# def 函数名(参数列表):# 函数体……# 调用:# 函数名(具体值) 1 def day(): 2 print("起床") 3 print("早餐") 4 print("上课") 5 print("午餐... ......


# 函数:
# 对代码块的封装和定义
# 函数名的命名规则和使用和变量基本一样.
# 定义:
# def 函数名(参数列表):
# 函数体……
# 调用:
# 函数名(具体值)
 1 def day():
 2     print("起床")
 3     print("早餐")
 4     print("上课")
 5     print("午餐")
 6     print("午休")
 7     print("温习")
 8     print("训练")
 9     print("晚餐")
10     print("码字")
11     print("预习")
12     print("睡觉")
13 
14 day() # 执行函数体

 

# return 语句 :
# 终止函数的运行 返回值 谁调用就返回给谁
 1 def yue():
 2     print("拿出手机")
 3     print("打开陌陌")
 4     # return
 5     print("找个漂亮的妹子")
 6     print("问她, 约不约啊?")
 7     print("ok. 走你!")
 8     # return "萝莉"
 9     return "萝莉","少妇","大妈"
10 
11 # 函数什么都不写.不写return,函数在运行的结尾.返回一个none
12 set = yue()
13 print(set)  # 没有return 调用返回none
14 
15 # 写了return.但是return后面什么都没有.表示返回none
16 set = yue()
17 print(set)  # 有return 但没有值 返回 none
18 
19 # 写了return,后面有一个值,有一个返回值,返回给调用者
20 set = yue()
21 print(set)  # 有return有一个值 返回值"萝莉"
22 
23 # 写了return,后面有多个值,有多个返回值,返回给调用者(接收一个tuple)
24 set = yue()
25 print(set) # return多个值,返回多个值('萝莉', '少妇', '大妈')

 

 

 

# 函数参数:

# 形参:函数在声明时写的变量 声明
# 实参:函数在调用时给形参的具体值 调用
# 传参:把实参赋值给形参的过程
1 def mai(yan):
2     print("老板给我来包%s"%yan)
3     return "给你"
4 
5 mai("中华")  # 调用函数
6 a = mai("玉溪")  # yan 形参,玉溪 实参,把玉溪赋值给yan的过程叫传参
7 print(a) # return有值 返回值的内容
8 b = mai("娇子")
9 print(b)

 

 

 

# 参数分类:
# 形参和实参. 个数要一一对应
# 形参:在函数声明的时候
# 1.位置参数
# 2.默认值参数
# 3.混合参数. 顺序(位置,默认值)
# 4.动态参数 *args **kwargs (明日内容)

# 实参:在函数调用的时候
# 1.位置参数 根据形参声明的位置来传递信息
# 2.关键字参数 根据形参声明的变量名来传递信息
# 3.混合参数 位置+关键字 顺序(先位置参数 后关键词参数)
 1 # 位置参数
 2 def chi(good_food,junk_food,drink,sweet): # 声明多个形参
 3     print(good_food,junk_food,drink,sweet)
 4 
 5 chi("大米饭","汉堡包","橙汁","哈根达斯")
 6 
 7 # 形参实参个数要一一对应
 8 def chi(good_food,junk_food,drink,sweet,xiaochi,lingshi,xiaochi1,lingshi1,shuiguo): # 声明多个形参
 9     print(good_food,junk_food,drink,sweet)
10 
11 chi("大米饭","汉堡包","橙汁","哈根达斯")  # 报错,个数不对
12 # error: chi() missing 5 required positional arguments
13 
14 def chi(good_food,junk_food,drink,sweet):
15     print(good_food,junk_food,drink,sweet)
16 
17 #关键字参数必须按照形参的名字来传递信息
18 chi(good_food="大米饭",junk_food="汉堡包",drink="橙汁",sweet="哈根达斯")
19 chi(drink="橙汁",junk_food="汉堡包",good_food="大米饭",sweet="哈根达斯") # 可换顺序
20 
21 # 混合参数必须先位置后默认值\关键字
22 # def chi(good_food,junk_food,drink ="橙汁",sweet): # 报错 顺序不对
23 def chi(good_food,junk_food,drink="橙汁",sweet="哈根达斯"):
24     print(good_food,junk_food,drink,sweet)
25 #
26 chi("大米饭","汉堡包") # 大米饭 汉堡包 橙汁 哈根达斯
27 chi("大米饭","汉堡包",drink="北冰洋",sweet="奶酪")  # 大米饭 汉堡包 北冰洋 奶酪

 

 

# 默认值参数可帮我们省略重复代码
# 如:函数录入学生信息
1 def regist(id,name,age,gender="男"):
2     print(id,name,age,gender)
3 
4 regist(1,"张三",20) # 1 张三 20 男
5 regist(2,"李四",23) # 2 李四 23 男
6 regist(3,"王二",25)
7 regist(4,"赵五",23)
8 regist(5,"李洁",21,"女")

 

 

# print,open也是函数(作了解)
1 # def print(self, *args, sep=' ', end='\n', file=none):
2 print(1,2,3,4,5,sep="_",end="不换行") # sep=下划线  1_2_3_4_5
3 print("你好")  # end="不换行"1_2_3_4_5不换行你好
4 
5 # def open(file, mode='r', buffering=none, encoding=none, errors=none, newline=none, closefd=true):
6 f = open("haha",encoding="utf-8") # mode='r'
7 content = f.read()
8 print(content)
9 f.close()



# 函数的应用-注册登录验证
 1 # 注册
 2 def regist():
 3     f = open("user", mode="r+", encoding="utf-8") # 避免重复打开文件
 4     while 1:
 5         username = input("请输入用户名:")
 6         password = input("请输入密码:")
 7         # f = open("user",mode="r+",encoding="utf-8") # 放这 若用户存在会重复打开文件
 8         for line in f:
 9             if username == line.strip().split(":")[0]:
10                 print("用户名已存在!")
11                 continue
12 
13             else:
14                 print("恭喜,注册成功!")
15                 f.write("\n"+username+":"+password)
16                 f.flush()
17                 f.close()
18                 return true
19 
20 # regist()
21 
22 
23 # 登录验证
24 def login():
25     f = open("user",encoding="utf-8")
26     auth_status = false
27     while not auth_status:
28         username = input("请输入账号:")
29         password = input("请输入密码:")
30         for line in f:
31             if username+":"+password == line.strip():
32                 auth_status = true
33         return  auth_status
34 
35 ret = login()
36 if ret:
37     print("登陆成功!")
38 else:
39     print("登陆失败!")