函数

函数的定义

  1. def 语句定义函数,格式如下:

    def sayHello(name):

    if(name):

    print('hello',name)

    else:

    print('hello,','I'm nomor\n')

    name = input('Would you mind tell me your name?\n')

    sayHello(name)

    name = input('请输入你的姓名:')

    sayHello(name)

  2. 函数执行会返回值,默认为 None

    def my_abs(x):

    if(x >= 0):

    return x

    else:

    return -x

    newNum = int(input('请输入一个数字:'))

    my_abs(newNum)

    要注意到是,函数可以返回多个值,最后返回的多个值组成的 tuple

    def num():

    return 1,2,3,4,5

    print(num())

    print(num()[1])

  3. pass 语句 pass语句可以作为一个占位符,例如定义一个空数组

    def void():

    passs

函数的参数

  1. 在仅有位置参数的情况下,调用时候输入的参数必须和位置参数相同,否则会报错

    def num(x,y):

    return [x,y]

    会报错

    num(1)

  2. 使用默认参数,可以在调用的时候不添加参数

    def num(x,y=2):

    return [x,y]

    num(1) # [1,2]

  3. 可变参数,输入多个参数,调用的时候会变成一个tuple

    def num(*num):

    print(num[0])

    num(0,1,2,3,4,5,6,7,8,9)

  4. 关键字参数 内部组装成 dict

    def person(**kw):

    print(kw)

    person(city = 'Qingdao')

    city = {"city" : "Qingdao"}

    person(**city)

5.命名关键字 利用 * 控制传入的 dict 的 key ,若前面有可变参数则可以省略

def person(*,city,job = 'FE'):
print(city) person(city = 'Qingdao') def person2(*args,name,sex):
print(args)
print(name) person2(1,2,3,5,name = 'zx',sex='girl')
  1. 参数组合使用时具有顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
  2. 可以用 *[] 的方式 和 **{} 调用里面的值

递归

函数内部调用函数这种方式就叫做递归,递归可能造成栈溢出

def move(n,a,b,c):
if n > 10 :
print('我觉着你看不完')
elif n == 1:
print(a,'=>',c)
else:
move(n-1,a,c,b)
print(a,'=>',c)
move(n-1,b,a,c) num = input('请输入汉诺塔的数目(小于10):')
move(num,'A','B','C')

最新文章

  1. C++ 拷贝构造函数和赋值运算符
  2. Unreal Engine Plugin management
  3. Building GCC 4.1.2 in CentOS 7 for Maya API development
  4. Javascript中的正则表达式
  5. Oracle 客户端免安装数据库连接
  6. [Architect] Abp 框架原理解析(4) Validation
  7. 关于directX最近的学习方案
  8. .NET/C# 使用Stopwatch测量运行时间
  9. 【原】SBT构建Scala应用
  10. Hadoop中Combiner的作用
  11. 利用System.Net.Mail 的SmtpClient发送邮件
  12. Omi应用md2site发布-markdown转网站利器
  13. Jmeter(二十七)_Beanshell保存响应内容到本地
  14. linux 大冒险
  15. Django之自带的认证系统 auth模块
  16. Dubbo2.6.5+Nacos注册中心(代替Zookeeper)
  17. PreTranslateMessage(MSG* pMsg)专题
  18. ASP.NET MVC与Sql Server交互, 插入数据
  19. MVVM模式用依赖注入的方式配置ViewModel并注册消息
  20. 洛谷P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver

热门文章

  1. Google调试工具
  2. Codeforces Round #418 (Div. 2).C two points
  3. 学习java应该了解一些html超文本标记语言(前端)
  4. mysql5.7 date类型无法设置'0000-00-00'默认值
  5. 使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
  6. hadoop 50070 无法访问问题解决汇总
  7. xdu_1077:循环节长度
  8. Linux下protobuf的编译与安装【各种奇葩问题】
  9. 【原创】Easyui tree filter 过滤本地数据无效的原因
  10. 连续子序列最大和的O(NlogN)算法