-
数据类型是否可变?
不可变类型:如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响 -
str.partition(’’)
str.partition(’’),可以将字符串以str1进行分隔成三个部分:str1前,str1,str1后
str1 = 'hello world hello china'
print(str1.partition('world')) #('hello ', 'world', ' hello china')
- 函数参数默认值:
默认值必须放在最右边
def animal(pet2,pet1='dog'): #默认值必须放在最右边
print('%s叫汪汪,%s叫喵喵'%(pet1,pet2))
animal('cat')
- 函数不定长参数:
不确定给多少参数时,可用不定长参数
加了星号(*)的变量名会存放所有未命名的变量参数(元组)。加了(**)会存放所有命名的变量参数(字典)
注意点:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错
def test(a,b,c,*tup,**dict):
print(a) #1
print(b) #2
print(c) #3
print(tup) #('a1', 'a2', 'a3')
print(dict) #{'name': 'joe', 'age': 18}
test(1,2,3,'a1','a2','a3',name='joe',age=18)
输出为:
1
2
3
('a1', 'a2', 'a3')
{'name': 'joe', 'age': 18}
- 迭代器
使用了yield的函数称为生成器,返回iterable迭代器
yield可返回多次(经过next()调用多次调用),return只返回一次
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次从当前位置继续运行
迭代器有两个基本方法:iter()和next()
字符串、列表、元组、集和都可创建迭代器
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
print (next(it)) # 输出迭代器的下一个元素 1
print (next(it)) #2
def Xun(max):
n=0
b=1
while n<max:
yield b
b+=1
n+=1
s=Xun(5)
print(next(s)) #1
print(next(s)) #2
a=[1,2,3,4,5,6,7]
b=iter(a)
print(next(b))
c=[]
for i in b:
print(i,'aa')
c.append((next(b)-i))
print(c)
输出结果为:
1
2 aa
4 aa
6 aa
[1, 1, 1]
send(),重新给yield赋值
def myGen():
val1=yield 1
print('val1=',val1)
val2=yield 9
print('val1=',val2)
gen=myGen()
print(next(gen)) #1
print(gen.send(7)) #val1=7, yield 1返回之后,重新给val1赋值
#9
# print(next(gen))
def f():
print('start')
a = yield 1
print(a)
print('middle....')
b = yield 2 # 2这个值只是迭代值,调用next时候返回的值
print(b)
print('next')
c = yield 3
print(c)
a = f()
print(next(a))
print(next(a))
print(next(a))
# print(a.send('msg'))
# print(a.send('msg1'))
# print(next(a))
-
类
self不是python的关键字,可以用其他标识符代替类的多继承:
class Animal(A,B,C) 如果继承的父类中有相同的方法名,而在子类中使用时未指定,python将从左至右查找父类中是否包含方法。静态方法,装饰器@staticmethod
无需实例化即可访问的方法
参数不能传入self,如test() -
end=’’,不换行
print(‘asd’,end=’’) #去掉换行符 字符串后面加上 end=’’ -
正则表达式re
参考链接