博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 第三天
阅读量:5142 次
发布时间:2019-06-13

本文共 1379 字,大约阅读时间需要 4 分钟。

函数

函数的定义

  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')

转载于:https://www.cnblogs.com/panyuexin/p/7360006.html

你可能感兴趣的文章
2011-4-12学习总结
查看>>
【Finish】Python Day 9
查看>>
css3实现漂亮的按钮链接
查看>>
最大矩形面积
查看>>
[python基础] python 2与python 3的区别,一个关于对象的未知的坑
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
Enterprise Library 加密应用程序块的设计
查看>>
深度剖析post和get的区别
查看>>
云的世界
查看>>
WPF border属性
查看>>
初识DetNet:确定性网络的前世今生
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
linux下启动tomcat----Cannot find ./catalina.sh
查看>>
adb的配置
查看>>
MATLAB基础入门笔记
查看>>
进程、线程、应用程序之间的关系
查看>>
20171020java学习总结——execl 批量导入
查看>>
如何自绘树形控件(QQ好友列表)
查看>>
web异步开发——ajax
查看>>
将WPF版的弹幕播放器给优化了一下
查看>>