Python基础教程笔记——第6章:抽象(函数)
(1)计算裴波那契数列:
fbis=[0,1]
num=int(input("please input the number"))
for i in range(num-2):
fbis.append(fbis[-2]+fbis[-1])
print(fbis)
6.3 创建函数
callable():函数可以确定函数是否可以被调用
最简单的例子:
def hello(name):
return "hello"+name+"are you OK?"
输入个数,输出裴波那契数列的函数
def fbis(num):
if num<=0:
return "input error"
if num==1:
return [0]
if num==2:
return [0,1]
f=[0,1]
for i in range(num-2):
f.append(f[-1]+f[-2])
return f
记录函数:给函数写说明文档和查看函数的说明文档
def hello(name):
'this is a print function'#函数说明文档作为字符串
print("hello "+name) #查看函数文档
>>> hello.__doc__
'this is a print function'
6.4 函数参数
函数的参数和C,C++一样也是值传递
下面两种情况下参数的改变对实参的影响不同
def change(name):
name[0]='yanliang' #这里直接将列表a传入,实参和形参变量引用同一个列表
>>> a=['fun','a']
>>> change(a)
>>> a
['yanliang', 'a'] #这里行参为实参的一个拷贝,两个是独立的
>>> a=['fun','s']
>>> change(a[:])
>>> a
['fun', 's']
split 拆分函数,针对的是字符串
>>> b='yang liang'
>>> b
'yang liang'
>>> a=b.split()
>>> a
['yang', 'liang']
下面是一个初始化函数
#初始化的函数
def init(name):
name['first']={}
name['last']={}
name['all']={}
##>>> stroge={}
##>>> init(stroge)
##>>> stroge
##{'all': {}, 'first': {}, 'last': {}}
关键字参数和默认值
本来一般函数在调用时,各个参数的名字要和函数体是一一对应的。
在这里只要在函数调用时,把形参名也给出来,那么就算顺序不对也没有关系。
def hello1(name,greet):
print(name+"###"+greet) >>> hello1(greet='func',name='yanliang')
yanliang###func
函数可以提供默认参数
def hello1(name='yan',greet='hello'):
print(name+"###"+greet) >>> hello1(name='yanliang')
yanliang###hello
用户提供任意多个参数,采用*来收集参数
def hell0(*name):
print(name) >>> hell0('yan','liang')
('yan', 'liang')#这里的输出作为一个元组
还有一种**的方法
def hello1(x,y,z=3,*name1,**name2):
print(x,y,z)
print(name1)
print(name2) >>> hello1(1,2,4,5,6,7,89,ho=2,ju=3)
1 2 4
(5, 6, 7, 89)
{'ho': 2, 'ju': 3}#将加了关键字的变成了一个字典
反转过程:这里不是将参数收集起来,而是将参数分配出去
第一种:* 将元组分配出去
def add1(x,y):
return x+y >>> parms=(1,2)
>>> add1(*parms)
3
第二种:**将字典解析出来
def hello1(name,greet):
print(name+' ### '+greet) >>> zidian={'name':'yanliang','greet':'hello'}
>>> hello1(**zidian)
yanliang ### hello
6.5 作用域
除了全局作用域外每一个函数的调用都会创建一个新的作用域。
6.6 递归
(1)阶乘:
def jiechen(n):
if n==1:
return 1
else:
return jiechen(n-1)*n
(2)求幂:
def powerd(x,n):
if n==1:
return x
else:
return powerd(x,n-1)*x
Python基础教程笔记——第6章:抽象(函数)的更多相关文章
- Python基础教程笔记——第7章:更加抽象(类)
下面进入Python的面向对象: 对象的魔力: 多态:---可以对不同类的对象使用同样的操作 封装:---对外部隐藏对象内部的工作方式 继承:---以普通的类为基础建立专门的类对象 (1)多态: is ...
- Python基础教程笔记——第4章:字典
字典 字典是Python唯一内建的数学映射类型,字典中的值没有特殊的顺序,键可以是数字,字符串,甚至是元组 字典的创建: 字典由键值对构成,字典中键是唯一的,而值不唯一.>>> a_ ...
- Python基础教程笔记——第2章:列表和元组
python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] ...
- Python基础教程笔记——第1章
1.8 函数 pow(x,y) x^y abs(x) 取数的绝对值 round(x) 会把浮点数四舍五入为最接近的整数 floor(x) 向下取整的函数,但是需要先imp ...
- Python基础教程笔记——第5章:条件,循环和其他语句
5.1 print和import的更多信息 1. print()3.0之后print不再是语句,而是函数, >>> print('udg',12,13) udg 12 13 &g ...
- Python基础教程笔记——第3章:使用字符串
字符串是不可修改的,标准序列操作(索引,分片,判断成员资格,求长度,取最大值 最小值)对字符串都是有效的. 格式化字符串,类似于C语言的输出是的感觉. >>> format=&quo ...
- python基础教程笔记—即时标记(详解)
最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...
- python基础教程笔记—画幅好画(详解)
今天写一下基础教程里面的第二个项目,主要使用python来做一个pdf的图,比较简单. 首先我们需要安装用到的模块pip install reportlab即可. 书上是用urlopen从往上下了一个 ...
- 《Python基础教程》 读书笔记 第六章 抽象 函数 参数
6.1创建函数 函数是可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> x=1 ...
随机推荐
- gp服务输出的结果文件输出到绝对路径
gp服务跟本地用arcmap执行gp有个不同,就是输出的文件一般只能输出到arcgis server默认的output目录里面(arcgis server有此限制,无论怎么配还是写到output目录里 ...
- IDEA下MyBatis错误总结
1. Pom.xml配置 语法顺序 <properties resource="config.properties"> </properties> < ...
- 自欺欺人的使用 NSTimer 销毁
自欺欺人的使用 NSTimer 销毁 Demo地址 1.NSTimer是要加到runloop中才会起作用. 常见的创建timer方式 // 第一种方式 @property (nonatomic , s ...
- 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...
- Jenkins执行sudo权限的设置
Jenkins系统中添加执行脚本的时候,有一些命令是需要sudo权限和来执行的,可以在root权限下添加一下Jenkins账号的权限 1.添加不需要密码可sudo执行指定命令的权限 cd /etc c ...
- 【opencv】imread CV_LOAD_IMAGE_GRAYSCALE
转灰度图的操作很多,但是opencv中的CV_LOAD_IMAGE_GRAYSCALE的具体操作为: gray = 0.299 * r + 0.587 * g + 0.114 * b 然后,小数点部分 ...
- Windows Server 2012 R2 with Update (x64) - DVD (Chinese-Simplified)
http://www.msdn.hk/html/2014/1404.html Windows Server 2012 R2 with Update (x64) - DVD (Chinese-Simpl ...
- docker nginx 负载均衡
index1.html <html> <head> <title>lb-test</title> </head> <body> ...
- margin塌陷和margin合并问题及解决方案
margin塌陷 先举个例子 <style> body{ background-color:#000; } .wrapper{ width:200px; height:200px; bac ...
- Hibernate-03
目的:表操作(表维护) 一.一对一(略过) 二.一对 1.建表原则:在多的一方创建外键指向一的一方的外键 2.建表:实体中添加 商品实体表: private Set<User> user ...