python3 函数_python3之函数

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 "今

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值