Python-9 函数
#1 内建函数
乘方:pow()
>>> pow(2,3)
8
>>>
取绝对值:abs()
>>> abs(-1)
1
>>>
四舍五入为最接近的整数:round()
>>> round(2/3)
1
>>> round(3/2)
2
>>>
#2 形参、实参
def mythirdfunc(name1,name2):
print(name1+'我爱你')#函数定义过程中的参数为形参,函数调用过程中则为实参
return (name1+name2)#返回值(没有返回值时候 则返回None)
#3 函数文档
print(print.__doc__)#查看函数print的函数文档(此方法直接在shell中输入使用)
help(print)#查看函数print的函数文档
#4 关键字参数:调用函数时给实参指定形参名称
mythirdfunc(name1='欢欢',name2='我爱你')
#5 默认参数:定义函数时指定形参参数对应的默认值,若在调用时未给参数赋值则使用默认值
def mythirdfunc(name1='欢欢',name2='我爱你'):
return (name1+name2)#返回值
#6 收集参数:调用函数时先收集所有非关键字参数为该参数的实参(使用元组--以,作为标志)
def myfifthfunc(*name,name1=2):
#*name--收集参数:调用函数时先收集所有非关键字参数为该参数的实参
print(name,name1)
#7 局部变量、全局变量
函数内定义、修改--局部变量
函数外定义、修改--全局变量
函数内修改全局变量:global 变量名
def mysixthfunc():
print('调用函数6')
def myseventhfunc():#内嵌函数--只在定义该函数的函数内有效(定义局部内有效)
print('调用函数7')
myseventhfunc()
#8 闭包:自由变量+函数--调用了一个函数A,这个函数A返回了一个函数B。这个返回的函数B就叫做闭包。调用函数A的时候传递的参数就是自由变量。
def myeighthfunc(x):
def myninethfunc(y):
return x*y
return myninethfunc
def myeighthfunc():
x=[1]
def myninethfunc():
x[0]*=x[0]
return x[0]#列表不是存放在栈里面 不受全局变量影响
return myninethfunc()
def myeighthfunc():
x=1
def myninethfunc():
nonlocal x#nonlcal使用方法类似global--将变量定义为非局部变量
x*=x
return x
return myninethfunc()
#9 lambda、过滤器filter、映射map
1)lambda函数:lambda 参数:返回值
g=lambda x,y:x+y
print(g(1,2))
2)过滤器filter--只返回True结果
help(filter)
print(list(filter(None,[0,1,2,False,True])))
print(list(filter(lambda x:x%2,range(0,10,1))))
3)映射map--返回所有结果
print(list(map(lambda x:x%2,range(0,10,1))))
#10 递归(分支思想)--函数调用自身+正确的函数终止条件
1)迭代实现阶乘
def myeleventhfunc(n):#迭代实现
result = n
for i in range(1,n,1):
result *= i
return result
number = 5
result = myeleventhfunc(number)
print('%d 的阶乘是:%d'%(number,result))
2)递归实现阶乘
def mytwelvethfunc(n):#递归实现
if n == 1:
return 1
else:
return n*mytwelvethfunc(n-1)
number = 6
result = mytwelvethfunc(number)
print('%d 的阶乘是:%d'%(number,result))
3)迭代实现菲波那切数列
def mythirteenthfunc(n):#迭代实现
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print('输入错误')
return -1
else:
if n < 3:
return 1
else:
for i in range(1,n-1,1):
n3 = n1+n2
n1 = n2
n2 = n3
return n3
n = 3
result = mythirteenthfunc(n)
print('菲波那切数列中第%d个数为%d'%(n,result))
4)递归实现菲波那切数列
def myfourteenthfunc(n):#递归实现--分支思想
if n < 1:
print('输入错误')
return -1
if n == 1 or n ==2:
return 1
else:
return myfourteenthfunc(n-1)+myfourteenthfunc(n-2)
n = 4
result = myfourteenthfunc(n)
print('菲波那切数列中第%d个数为%d'%(n,result))
5)递归实现汉诺塔
def myfifteenthfunc(n,x1,x2,x3):
if n == 1:
print(x1,'--',x3)
else:
myfifteenthfunc(n-1,x1,x3,x2)
print(x1,'--',x3)
myfifteenthfunc(n-1,x2,x1,x3)
n = 5
myfifteenthfunc(n,'a','b','c')
Python-9 函数的更多相关文章
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
- python strip()函数 介绍
python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...
- python split()函数
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...
- Python数学函数
1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- Python之函数与变量
本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- 【C++实现python字符串函数库】一:分割函数:split、rsplit
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...
随机推荐
- google 版本号49之后chrome的跨域设置
- C++的深拷贝与浅拷贝
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面是一个类对象拷贝的简单例子. #i ...
- Oracle启动脚本,开机自启动设置
#!/bin/sh # chkconfig: # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivale ...
- 如何把一个用户加入sodu组
在一个命令前加sudo,可以使用超级用户的权限执行该命令.但并不是任何用户都可以使用sudo,只有用户属于sudo组时才能使用这个命令. 如 果希望把一个用户加入sudo组,可以用root登录系统,然 ...
- (转) How to Train a GAN? Tips and tricks to make GANs work
How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...
- 树莓派(Raspberry Pi)日期时间不准的修正方法
在树莓派上,打date命令可以看到系统的日期时间: 后面的CST表示中国标准时间 小知识: 树莓派没有电池,断电后无法保存时间. 树莓派默认安装了NTP(Network Time Protocol)服 ...
- floyd算法
求两个顶点间的最短距离,直觉是这样的问题可以用尝试和枚举的办法来求解,这显然可行,但是我们可以换个方式来看待这个问题,比如, 可以这样描述,“在给定的点集(编号为1~k,k=图中所有的顶点数量)中,i ...
- 使用USBWriter做U盘启动盘后容量变小的解决办法
环境windows10 , 以administrator登录: 1. 按下windows键盘上的Win+R键, 输入cmd 2. 输入DiskPart, 回车, 然后弹出新的命令行窗口 3. 在弹出 ...
- DBA-mysql-字符集
查看支持的字符集:show charset; 查看现使用字符集:status; 1.在[mysqld]下添加 default-character-set=utf8 (mysql 5.1版本) char ...
- 安卓界面控件屏幕居中Layout例子
经典的登录界面例子: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...