当前位置: 首页 > article >正文

Python自学-简单函数

Python自学-简单函数

# 函数
# - 代码的一种组织形式
# - 一个函数一般完成一项特定的功能
# - 函数使用
# ---- 函数需要先定义
# ---- 使用函数,俗称调用
 # 定义一个函数,只是定义不会执行# 1.def 关键字,后跟一个空格# 2.函数名,自定义时,需遵循命名规则,大驼峰命名只给类用# 3.后面扩后和冒号不能省,括号内可以有参数# 4.函数内部所有代码缩进def func():print("I'm a function.")print("I will do something.")print("I done.")# 函数的调用,直接函数名后面跟括号func()
# 函数的参数和返回值
# - 参数:负责给函数传递一些必要的数据或者信息
# ---- 形参(形式参数):在函数定义的时候用到的参数没有具体值,只是一个占位符
# ---- 实参(实际参数):在调用函数的时候输入的值
# - 返回值:函数的执行结果
# ---- 使用 return 关键字
# ---- 如果没有 return ,默认返回一个 None
# ---- 函数一旦执行 return 语句,则无条件返回,即结束函数的执行
# ---- 推荐写法,无论是否有返回值,最后都要以 return 结束
    # 参数的定义和使用# 参数 person 只是一个符号,代表的是调用的时候的某一个数据# 调用的时候,会用 p 的值代替函数中所有的 persondef hello(person):print("{0},how are you?".format(person))print("Sir,if you don't answer me,I will gone.")return "I have said hi to {0},{0} don't look me.".format(person)p = "明月"hello(p)
    # return 案例def hello(person):print("{0},how are you?".format(person))return "I have already gone."print("Sir,if you don't answer me,I will gone.")return "I have said hi to {0},{0} don't look me.".format(person)p = "JingTen"rst = hello(p)print(rst)
# 函数文档
# - 函数文档的作用是对当前函数提供使用相关的参考信息
# - 文档的写法:
# ---- 在函数内部开始的第一行使用三字符定义符
# ---- 一般具有特定的格式
# - 文档查看
# ---- 使用 help 函数,形如 help(func1)
# ---- 使用 __doc__
    def stu(name,age,*args):'''文档第一行第二行第三行'''print("This is function of stu")# 查找函数帮助文档# 1.使用 help 函数help(print)help(stu)stu.__doc__
    # 九九乘法表for row in range(1,10):for col in range(1,row+1):# print 函数默认任务打印完成后换行print(row*col,end = " ")print("--------")# 定义一个函数,打印一行九九乘法表def printLine(row):for col in range(1,row+1):# print 函数默认任务打印完成后换行print(row*col,end=" ")print("")for row in range(1,10):printLine(row)
# 参数详解
# - 【参考资料】(https://cnblogs.com/bingabcd/p/6671368.html)# 参数四类
# ---- 普通参数
# ---- 默认参数
# ---- 关键字参数
# ---- 收集参数# - 普通参数
# ---- 定义的时候直接定义变量名
# ---- 调用的时候直接把变量或者值放入指定位置#      def 函数名(参数1,参数2,...)
#          函数体
#      # 调用
#      函数名(value1,value2,...)
#      # 调用的时候,具体值参考的是位置,按位置赋值# - 默认参数
# ---- 形参带有默认值
# ---- 调用的时候,如果没有相对形参赋值,则使用默认值#      def func_name(p1=v1,p2=v2,...)
#          func_block
#      # 调用1
#      func_name()
#      # 调用2
#      value1 = 100
#      value2 = 200
#      func_name(value1,value2)# - 关键字参数
# ---- 语法
#      def func(p1=v1,p2=v2,...):
#          func_body
#      # 调用参数
#      func(p1=value1,p2=value2,...)
# ---- 书写较麻烦,但也有好处:
#      - 不容易混淆,一般实参和形参只是按照位置一一对应即可
#      - 使用关键字参数,可以不考虑参数位置# - 收集参数
# ---- 把没有位置,不能和定义的参数位置相对应的参数,放入一个特定的数据结构中
# ---- 语法
#      def func(*args):
#          func_body
#      # 调用
#      func(p1,p2,p3,...)
# ---- 参数名 args 可以随意更改,但推荐直接使用约定俗称的 args
# ---- 参数名 args 前面需要加星号 *
# ---- 收集参数可以和其他参数共存,也可以为空
    # 默认参数实例# 报名函数,需要知道学生性别def reg(name,age,gender="male"):if gender == "male":print("{0} is {1},and he is a good student.".format(name,age))else:print("{0} is {1},and she is a good student.".format(name,age))reg("JingTen",26)reg("xiaojing",18,"female")
    # 关键字参数案例def stu(name,age,addr):print("I'm a good student.")print("I'm {0},I have {1} years old,I live in {2}.".format(name,age,addr))n = "JingTen"a = 26addr = "GuangZhou"stu(n,a,addr)    # 普通参数,按位置传递,需一一对应,容易出错print("\n")stu(age=a,name=n,addr=addr)    # 关键字参数,可不考虑位置
    # 收集参数代码# 函数模拟一个学生进行自我介绍,但具体内容不清楚# 把 args 看成一个 list def stu(*args):print("Hello,everybody.")# type 函数的作用是监测变量的类型print(type(args))for item in args:print(item)stu("LiuYang",19,"上海黄浦区","WangXiaojing","Single")stu("ZhouShengsheng")print("\n")# 参数收集案例# 说明收集参数可以不带任何实参调用,此时收集参数为空 tuplestu()
# - 收集参数之关键字收集参数
# ---- 把关键字参数按字典格式存入收集参数
# ---- 语法
#      def func(**kwargs):
#          func_body
#      # 调用
#      func(p1=v1,p2=v2,p3=v3,...)
# ---- 一般约定俗称使用 kwargs
# ---- 调用的时候,将多余的关键字参数放入 kwagrs
# ---- 访问 kwargs 需要按字典格式访问
    # 收集参数案例# 自我介绍# 调用的时候需要使用关键字参数调用def stu(**kwagrs):# 在函数体内针对 kwagrs 的使用无需带星号 **print("Hello,everybody.")print(type(kwagrs))# 对于字典的访问,python2 和 python3 有区别for k,v in kwagrs.items():print(k,"---",v)stu(name="JingTen",age=26,addr="GuangZhou",lover="Wangjing",work="IT")print("*"*40)    # 字符串的乘法stu(name="ZhouShengsheng") print("*"*40)# 收集参数可为空案例stu()
# 收集参数混合调用的顺序问题
# - 收集参数,关键字参数,普通参数可混合使用
# - 使用规则:普通参数和关键字参数优先
# - 定义时一般找普通参数,关键字参数,收集参数 tuple,收集参数 dict
    # 收集参数混合调用案列# stu 模拟一个学生的自我介绍def stu(name,age,*args,hobby="No",**kwargs):print("Hello,everybody.")print("I'm {0},I'm {1} years old.".format(name,age))if hobby == "No":print("Sorry,I don't have hobby.")else:print("My hobby is {0}".format(hobby))print("*"*40)for i in args:print(i)print("-"*40)for k,v in kwargs.items():print(k,"---",v)# 开始调用函数name = "JingTen"age = 26stu(name,age)stu(name,age,hobby="photo")stu(name,age,"Dajiaonang","Yadan",hobby="python",hobby2="JingPingMei")  
    # 收集参数的解包问题# - 把参数放入 list 或者 dict 中,直接报 list/dict 中的值放入收集参数# - 在 list 或者 dict 前加 * 即可解包def stu(*args):print("Hahahahaha...")for i in args:print(i)stu("JingTen","Dajiaonang",26)print("*"*40)l = list()l.append("JingTen")l.append("Dajiaonang")l.append(26)print(l)print("*"*40)stu(l)    # 将 l 列表当成一个值传给 argsprint("*"*40)stu(*l)    # 将 l 列表解包后的值传递给 args
http://www.lryc.cn/news/2420524.html

相关文章:

  • EsgynDB 关于带索引的DELETE性能提升
  • SQL:MINUS 用法
  • 什么是字节 什么是数据包
  • 壁纸wallpaper透视壁纸王者荣耀透视壁纸mpkg
  • 暗黑游戏服务器列表为空,暗黑3战网错误代码大全 游戏出错童鞋看过来
  • 汽车雨刮故障维修要点
  • Python爬虫需要学多久?
  • 【医学信息工程导论】了解医学信息工程专业是干嘛的,学什么内容
  • TextBox中只能输入数字的简单方法(C#)
  • 智能家居:将来的生活与家居自动化
  • 图的基本算法(算法导论)
  • 完全免费快速搭建个人www服务器
  • ros_bridge ackermann控制
  • 微信推出“微信圈子”,玩起来原来这么爽?
  • 数据库——概念模型(CDM)、逻辑模型(LDM)、物理模型(PDM)
  • vnc远程控制linux密码,使用VNC实现LINUX与windows的相互远程控制
  • 《WinForm开发系列之控件篇》Item2 BindingNavigator
  • 会声会影x4素材_会声会影2020旗舰版Corel VideoStudio Ultimate 2020中文版
  • hadoop集群搭建(一)(超详细)
  • 网络爬虫:爬取网页数据
  • 一文全面讲清操作系统,附各类操作系统(windows、macOS 、ChromeOS等应知应会)
  • xcode 升级到4.5 version file compare功能无法使用的问题
  • 三级网络技术应付式速成考试笔记(汇总)
  • 很高兴大家下载rapid-framework
  • Ubuntu 安装Sougou Pinyin输入法
  • InoReader—— 轻便快捷的在线 RSS 阅读器
  • Web开发设计:DisplayTag应用指南
  • 硬币面值组合(C++)(枚举)
  • 帝国CMS二次开发入门教程
  • 回发或回调参数无效。 问题的解决和思考