Python基础(四)

1.函数

def 函数名(形参1,形参2,...):
    代码块

位置实参:按顺序进行关联到形参的方式。

关键字实参:将参数与形参名关联起来的方式。

def fun1(name,age):
    print(name,age)
def fun2(food,size):
    print(food,size)

fun1('wang',20)#位置实参
fun2(food='apple',size=100)#关键字实参,顺序可改变

默认值:每个形参都可以由默认值,若不给此形参传参,则使用默认值。在使用默认值时,必须在形参列表中先列出没有默认值的形参。

def fun3(name,age=18):
    print(name,age)

fun3('zhao')
输出zhao 18

返回值:return返回,可返回任何类型的值

形参可以是列表等数据结构,在函数中可以做到对列表的修改,若不想被修改则可以将列表的副本传参([:])

传递任意数量的实参:只有一个形参*args

def fun4(*args):
    for arg in args:
        print(arg,end=" ")
fun4('a','rshg',1,4,66.7)

结合使用位置形参和任意数量的实参:python会先匹配位置实参和关键字实参,然后将多余的实参传给*args

def fun5(name,*args):
    print(name,end=" ")
    for arg in args:
        print(arg,end=" ")
fun5('zhao',1,2,3,4)

使用任意数量的关键字实参:**kwargs,能够接收任意数量的键值对。**kwargs会创建一个字典

def fun6(name,age,**kwargs):
    print(name,age)
    for key,value in kwargs.items():
        print(key,value)
fun6('wang',20,
     school='qau',
      home='earth'
    )
#或者
dict={'name':'john','age':18)
fun6('wang',29,**dict)

b7c4c992be544249bc3392ae9943495e.png

将函数存储在模块中:import

模块的拓展名为.py

语法:import 模块名
不加.py

 还可以导入特定的函数

from 模块名 import 函数名
只写函数名,不加括号

逗号分隔可导入多个函数

from 模块名 import 函数1,函数2

重命名

给函数重命名
from 模块名 import 函数1 as fun1
给模块重命名
import 模块名 as mk_name

导入模块中所有函数

from 模块名 import *

2.参数

对于不可类型,在函数中修改全局变量,全局变量并不会被改变,想要修改全局变量,则要使用关键字global来修饰变量,这样才可以在函数中修改全局变量。

Python中参数的传递是引用传递,不是值传递,每当为变量赋值时,会在内存中开辟新的内存地址给变量内容,而变量名相当于一个标签,它会贴在内存地址上,当为它重新赋值时,新的变量又会在内存中分配新的地址,变量名又会贴在新的变量地址上。(利用id()函数查看变量地址)

对于可变类型如列表等,对变量的修改,函数内函数外都会同步变化,地址不变。

3.匿名函数

Python中使用lambda关键字创建匿名函数。所谓匿名就是不用def创建没有函数名的函数。匿名函数自带return,返回值就是执行表达式的结果。

lambda 参赛1,参数2,参数3:执行表达式
test=lambda x,y:x+y
test(1,3)
test(4,5)

匿名函数是通过变量去调用的。

可以声明完直接调用

ans=(lambda x,y:x if x>y else y)(16,12)
print(ans)

4.常用的数学函数

abs()求绝对值函数
round()对浮点数近似取值,第一个参数为值,第二个为保留的位数(四舍五入)
pow()求次方
divmod()求商和余数,返回包含商和余数的元组
max()求最大值
min()求最小值
sum()求和,参数可以是列表元组集合
eval()执行字符串表达式
a,b=1,2
c=eval('a+b')
print(c)
eval()也可以调用函数
def fun():
    print(hello)
    pass

eval('fun()')

5.可迭代对象

在python中,可迭代指可以被迭代器遍历的对象,可迭代对象可以是列表,元组,集合和字符串.当使用for来遍历这些对象时,python将自动创建一个迭代器.可迭代的对象不一定是迭代器,可迭代是一个容器,而迭代器是访问该元素的机制.

6.序列操作

all():用于判断给定的可迭代参数中的所有元素都为True,若都是True则返回True,否则返回False.(0,空,False为空)

>>>li=[1,2,3]
>>>print(all(li))
True

注意:空元组,空列表返回True.

any():判断给定的可迭代参数是否全为False,则返回False,若有一个为True,则返回True.

>>>li=[1,2,3,0]
>>>print(any(li))
True

sorted():对可迭代对象进行排序.sorted()会生成一个原对象的副本进行排序,而sort()是在原对象上进行排序.sort()只能用于列表,而sorted()可用于可迭代对象.

list.sort()
sorted(list)

>>>sorted([1,2,6,3,10,5])
[1,2,3,5,6,10]

>>>sorted([1,2,6,3,10,5],reserve=True)
[10,6,5,3,2,1]
reserve=True,降序,默认
reserve=False,升序

对元组排序会返回列表。

reserve():反向列表中的元素,无返回值

list.reverse()

>>>a=[1,2,3,4]
>>>a.reverse()
>>>print(a)
[4,3,2,1]

range():创建一个整数列表

range(start,stop,step)
start:默认为0,eg:range(5)=range(0,5)
stop:生成的数不包含stop
step:步长,默认为1

>>>for i in range(0,5)
...    print(i)
输出0,1,2,3,4

zip():打包,将序列中对应的索引位置的元素打包成一个元组,若元素个数不一,那么按照最少的那个元素个数进行压缩。

enumerate():将一个可遍历的数据对象组合为一个索引序列,同时列出数据与数据下标(对字典也可用)

enumerate(sequence,(start))
sequence:序列
start:开始的起始位置,默认为0
返回enumerate对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值