函数

函数的定义

  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. (转载)Bonding技术指南

    原文链接:http://www.wushiqin.com/?post=68 一.什么是网卡绑定及简单原理 网卡绑定也称作"网卡捆绑",就是使用多块物理网卡虚拟成为一块网卡,以提供负 ...

  2. 自定义MapReduce中数据类型

    数据类型(都实现了Writable接口) BooleanWritable 布尔类型 ByteWritable 单字节数值 DoubleWritable 双字节数值 FloatWritable 浮点数 ...

  3. Oracle数据迁移笔记-Rownum与序列的自增长的组合用法技巧

    Rownum与序列的自增长的组合用法技巧 根据序列自增长的步长规律,结合表行记录Rownum值的规则批量生成表的行记录主键的用法技巧 案例如下: CREATE OR REPLACE PROCEDURE ...

  4. Cent-Linux腾讯课堂学习笔记

    RedHat yum系统下 防火墙 关闭防火墙方法 systemctl stop firewalld 检测防火墙状态 systemctl status firewalld 设置防火墙禁用开机启动 sy ...

  5. 2-用EasyNetQ连接RabbitMQ(黄亮翻译)

    如果你连接过关系数据库,例如SQL Server.你会发现EasyNetQ处理connections有点奇怪.和关系数据库通讯一直都是通过client开始的.Client 打开一个连接, 发出一个SQ ...

  6. MongoDB 系列(一) C# 简易入门封装

    之前写过一篇关于MongoDB的封装 发现太过繁琐 于是打算从新写一篇简易版 1:关于MongoDB的安装请自行百度,进行权限认证的时候有一个小坑,3.0之后授权认证方式默认的SCRAM-SHA-1模 ...

  7. redhat nginx随机启动脚本

    开机自动启动nginx 1.    扔脚本进去/etc/init.d/ 2.    授权     chmod +x nginx 3.    一旦抛出:binsh^M错误就执行编码改写     设置do ...

  8. PC-lint集成于SourceInsight 范例以及简单分析;提高代码的健壮性;

    写代码之际突然想起了pc-lint这个"古董级"的代码静态分析工具;   下午机房的服务器歇菜了,没法调试游戏,刚好抽出时间来研究一下pc-lint集成在SourceInsight ...

  9. FreeRTOS——队列管理

    1. 队列主要用于任务与任务.中断与任务之间的消息传递. 2. 创建队列时,请注意队列中数据单元的长度. 3. 通常情况,队列被作为FIFO(先进先出)使用,即数据从队列尾写入,从队列首读.当然,数据 ...

  10. tensorflow l2_normalize函数

    1.l2_normalize函数 tf.nn.l2_normalize(x, dim, epsilon=1e-12, name=None) 解释:这个函数的作用是利用 L2 范数对指定维度 dim 进 ...