python3之函数
一、函数
实现特定单一功能的一段代码,可重复使用
函数能提高应用的模块性,和代码的重复利用率
二、函数的定义,调用,返回值
1 定义
def function_name(参数列表):
函数体
2 调用函数
函数必须先定义再调用
function_name(参数列表)
其中
可以没有参数,()必须要有
3 函数返回值
使用return结束函数并返回零个或多个值
返回多个值时,返回的多个值会被封装成元组返回
示例
输出斐波那契数列前n项组成的列表
def Fib(n):
if n = 0:
return 'n必须是大于0的整数'
if n == 1:
return list((0,))
elif n == 2:
return list((0,1))
else:
n1, n2 = 0, 1
list_1 = [n1, n2]
while len(list_1) n:
n1, n2 = n2, n1+n2
list_1.append(n2)
return list_1
[print(Fib(e)) for e in range(10) ]
三、函数的参数
函数传入的参数是number,str,tuple类型时,不会修改原来的值
若想改变参数的某些值,可以把参数包装成列表,字典等可变对象,在传入函数,在函数中通过列表,字典的方法修改
def swap_1(a,b) :
a,b = b,a
print('函数中a,b交换之后的值:a='+a+',b='+b)
def swap_2(list):
list[0] = 'AAA'
print('函数中list的元素:',list)
a='asd'
b='qwe'
print('调用函数之前a,b的值:a='+a+',b='+b)
swap_1(a,b)
print('调用函数之后a,b的值:a='+a+',b='+b)
list_1 = [11,'asd','qwe',98,'wert',99]
print('调用函数之前列表的元素:',list_1)
swap_2(list_1)
print('调用函数之后列表的元素:',list_1)
a,b经过调用函数之后,值并没有改变
列表经过调用函数之后,对应位置的元素已经改变
1默认参数
默认参数后面不能有关键字参数,可以有个数可变的参数
def say_hello(name='marry',message='wellcome into the python3 world!' :
print(name+",hello!"+message)
say_hello()
say_hello('jack','wellcome!')
say_hello(name='jack')
say_hello(message='wellcome!')
say_hello(name='jack',massage='wellcome!')
其中
第一次调用函数未传入参数,使用默认参数
第二次调用函数按参数位置依次传入参数,使用传入的参数
第三次到第五次,按关键字传入参数,使用传入的参数
2关键字参数
def area(width,height) :
return width * height
print(area(3,4))
print(area(5,height=6))
print(area(width=5,height=6))
print(area(height=6,width=5))
其中
第一个print:
按参数位置依次传入参数
第二个到第四个print:
根据关键字传入参数
关键字可以任意调换位置,且必须位于位置参数之后,即关键字参数后面只能是关键字参数
3个数可变的参数
3.1多个参数当做元组传入
def test(n,*books,price) :
print(n)
print(books)
print(price)
print(type(books))
test('c++','python','java','go','Rust',price='Price')
其中
第一个参数传给n,('python','java','go','Rust')当做元组传给参数books,参数price必须使用关键字传入
允许*books在参数列表的任何位置
位于*books前面的参数使用位置参数传参,位于*books后面的参数使用关键字参数传参
3.2多个参数当做字典传入
def test(n,*books,price,**status) :
print(n)
print(books)
print(price)
print(type(books))
test('c++','python','java','go','Rust',price='Price',pyton=99,java=95,go=97,Rust=98)
其中
"pyton=99,java=95,go=97,Rust=98"当做字典传给status参数
**status后面不能再有任何参数,即**status必须位与参数列表的最后
四、递归函数
函数体内调用函数本身
必须向已知方向递归
示例
阶乘
def factorial(n) :
if n == 0 or n == 1 :
return 1
else :
return n * factorial(n-1)
print(factorial(5))
五、lambda表达式
无需定义函数名的匿名函数
用户可以传入参数
格式
lambda 参数列表: 表达式
示例
lamb = lambda x, y: x*y
print(lamb(2,3))
python3之函数 相关文章
python3之流程控制
一、流程控制 Python支持两种基本流程控制结构 分支结构: 根据条件选择不同的代码块执行循环结构: 根据循环条件重复代码块if语句用于分支结构for-in, while用于循环结构break, continue用于循环控制 二 、分支结构 1 if条件判断 格式 基本格式 if condition_
解决macOS Big Sur系统pyenv不能安装python3.6.x版本的问题及pyenv-virtualenv的安装使用
前置 先安装好pyenv brew install pyenv 配置环境 echo -e 'if command -v pyenv 1/dev/null 21; then\n eval "$(pyenv init -)"\nfi' ~/.bash_profile 重启shell使配置生效 exec "$SHELL" 官网参考地址 https://github.com/pyenv/pyenv pyenv安装python慢的
求函数极值的有关算法
关于求函数极值,通常有二分、三分、爬山、模拟退火等。 当然,不同的算法适应不同的函数类型,比如上述4种算法的前三种通常用来处理单峰函数,其中爬山算法也可以处理多峰函数,但是容易陷入局部最优解。 当然,爬山算法和模拟退火算法都属于随机化算法(骗
了解 Javascript 中的函数调用、this 和闭包
目录 arguments this call bind that/self 与闭包 参考 本文的目的是将 Javascript 中的函数调用、this 、闭包以及涉及的相关知识点做一个简单的串联和介绍。更加深入的内容,可以查看文末的参考链接。 arguments 在函数内部可以通过 arguments 获取传入的所
Excel批量获取当前时间差
使用now函数获取当前时间 Office 2007 Excel使用now函数 首先打开Excel,选中一个要插入日期的单元格 选中后,点击菜单栏上的插入,选择函数 点击后,会出现一个公式生成器,在上面的搜索框输入Now来搜索这个函数 搜索到后,双击这个函数,就会在单元格插入
567. 字符串的排列
给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。 换句话说,第一个字符串的排列之一是第二个字符串的子串。 示例1: 输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba"). 示例2: 输入: s1= "ab" s2 = "eidboaoo"输出
python(一)内置函数
python的内置函数可以直接使用,无需import 函数主要分为以下几大类: 1. 计算 abs() 求绝对值 hash() 求哈希值 bin(x) 求二进制数字 divmod(a, b) 求商和余数 pow(x, y[, z]) 求n次方 round(number[, ndigits]) 控制精度 2. 循环、迭代、排序 all() / any()
在sublime text中怎么实现函数跟踪跳转(ctags)
下面由 sublime 教程栏目给大家介绍在sublime text中怎么实现函数跟踪跳转(ctags),希望对需要的朋友有所帮助! 在 source insight中有一个很好用的功能,就是函数的跟踪跳转,在阅读别人的代码的时候轻松的浏览原函数。我们知道,在使用vim的时候有个插件叫
.NET CORE中控制器、服务构造函数必须Public
因为在core中依赖注入是很自然发生的一件事,并且建议实现的方式是通过构造函数注入服务,所以一般我们的服务首先会继承一个服务接口, 服务接口内部写了固定的类似增删改查的约定 然后针对某个功能也就是控制器再实例化对应的服务,控制器内部存储服务的接
PHP——date()函数
语法 date(format,timestamp) format 规定时间戳的格式( 必须 ) timestamp 规定时间戳,默认是当前时间和日期( 可选 ) 用途 获得简单的日期 htmlbodyphpheader("content-type:text/html;charset=utf-8");echo "今天是 " . date("Y/m/d") . "br";echo "今