第十天-初识函数

2018-10-29 15:31:10来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折



# 函数:
# 对代码块的封装和定义
# 函数名的命名规则和使用和变量基本一样.
# 定义:
# 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("登陆失败!")

 



标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python 装饰器入门(下)

下一篇:打印一个九九乘法表