1、缺省参数:若函数在被调用时给缺省参数赋值,则使用调用时传进来的值。如果没有赋值则使用函数定义时默认赋予的值。
缺省参数只能放在最后的位置:
def add_3(a,b=22,c=33)(其中的b和c是缺省参数)
result=a+b+c
print("resulet=%d"%result)
2、命名参数:
调用时:test(a=22,c=66)(其中的a,c是命名参数)
3、不定长参数1:
def add(a,b,*args)
result=a+b+sum(args)
print("resulet=%d"%result)
调用时:add(1,2,3,4,5,6,7,8)
这时:args=(3,4,5,6,7,8)(是一个元组)
注意:如果一个元组中只有一个元素,表示方法为(1,)(即最后一定要加一个,否则不能称之为元组)
不定长参数2:
def test(a,b,**kargs)
pass
调用:test(11,22,task=98,done=89)
这时kargs={"done":89,"task":98}
4、拆包:
A=(11,22,33)
B={"name":"chongzi","age":22}
在实参中:
*A:是将元组拆开
**B:是将字典拆开
5、引用(先定义A,后将A赋值B。实际是AB同时指向数100)
注意点:
6、python中的不可变类型有三种:数字、字符串、元组
不可变类型都可以用作字典中的键,可变类型不可。
7、匿名函数:
定义方式:变量=lambda 参数=表达式
实例:func=lambda a,b=a+b
调用方式:result=func()
注意:匿名函数默认自动返回表达式的值,仅仅用于简单的计算,只是表达式不能用print,input等函数
应用举例:
字典的排序:
多功能函数的实现:
动态功能:
8、当定义了一个全局变量num,在传入函数中使用时,num+=num
在函数外再使用num(调用函数后)是否改变,取决于num是否为可变类型,
如果定义的num为不可变类型,则函数中的num是一个新的局部变量
即使传入的是一个可变类型,num=num+num与num+=num不是真正等价的,num=num+num最终是,先计算出新的列表存储,num指向新的值(与原先存入的地址不同,修改不了先前指向的值);num+=num则是num指向谁,谁就会改变
9、交换两个变量值的方法:
例如:a=4
b=12
#方法一:
c=0 c=a a=b b=c
#方法二:
a=a+b b=a-b a=a-b
#方法三:
a,b=b,a
10、字符串的操作:基本格式:mystr.xxx( )
find("str"):检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1
index("str"):同find,不同点在于如果str不存在会报一个异常
rfind("str") rindex("str"):从str右边往左边查
count("str"):返回在字符串中str出现的次数
replace("str1","str2",count):将字符串中的str1替换成str2,count可以指定替换的次数
split(str=" "):以str为分隔符切片字符串
capitalize():把字符串的第一个字符大写
title():把字符串的每个单词首字母大写
startswith("str"):检查字符串是否以str开头,是则返回true,否则返回false
endswith("str"):检查字符串是否以str结尾
upper():转换字符串中的小写字母为大写
lower():转换字符串中的大写字母为小写
ljust(width):返回一个原字符串左对齐,并使用空格填充至长度为width
rjust(width):返回一个原字符串右对齐,............
center(width):返回一个原字符串居中,.............
lstrip():删除字符串起始的空白字符
rstrip():删除字符串末尾的空白字符
strip():删除字符串两端的空白字符
partition(str):将字符串分割成三部分,str前,str,str后
rpartition(str):类似于partition,不过是从右边开始
splitlines():按照行分隔符返回一个包含各行作为元素的列表
isalpha():如果字符串中所有字符都是字母,返回true否则false
isdigit():如果字符串只包含数字,返回true否则false
isalnum():如果所有都是字母或数字返回true否则false
isspace():只包含空格返回true否则false
join(str):将列表中的分开的字符串用str连接形成新的字符串