zoukankan      html  css  js  c++  java
  • 第十天-初识函数



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


  • 相关阅读:
    php 字符串查找
    php缓存与加速分析与汇总
    oracle 时间问题
    mysql数据迁移
    浅谈千万级PV/IP规模高性能高并发网站架构
    对memcache分布式的一点理解
    美国程序员将工作廉价外包给中国公司遭解雇
    16个Linux服务器监控命令
    在yii中使用memcache
    Windows电脑快捷健大全
  • 原文地址:https://www.cnblogs.com/xi1419/p/9872253.html
Copyright © 2011-2022 走看看