要点1 :list和tuple
list例如:classmates=['michael','kangkang','heima'],索引从0开始,取最后元素可以直接使用classmates[-1],类退classmates[-2],list是可变数组
classmates.append('daanna')
classmates.insert(1,'kangkai')原来1位置元素后移
classmates.pop()删除末尾元素classmates.pop(1)删除指定位置元素
list元素类型可以不同,可以循环嵌套,即list里面可以套list,替换直接classmates[1]='michael';
tuple元组类似数组,但是tuple一旦初始化就不能改变,这个相对于list更为安全,不可变;
如果想要提前定义元组的个数,可以定义t=(2),但是定义元组个数为1时候,会出现歧义,所以t=(1,)
要点2 :条件函数
if a > 2 :
print('a大于2!')
elif :
print('a等于2!')
else :
print('a小于2!')
循环函数
sum=0;
for x in [1,2,3,4] :
sum =sum+x
sum = 0
for x in range(101):
sum = sum+x
要点3 :dict字典 set
dict{'1':'kangkang','2':'heima'}删除key方法dict.pop('1')
dict.get('kangkang'),返回none则不存在这个key,也可通过dict.get('kangkang',-1)返回-1表示不存在这个key
'kangkang' in dict返回false则不存在该key
set([1,2,3]),set中是不可以重复的,会自动去重,并且里面顺序是无序的;可以set.add(),set.remove()
要点4 : 自定义函数使用def函数
例如:def my_abc():
if x > 0 :
return x
else :
return x-100
内置函数会检查参数类型,上面定义函数不会检查,如果需要检查,需要 添加
def my_abc():
if not isinstance(x, (int, float)):
raise TypeError('bad operand type,参数错误!')
if x > 0 :
return x
else :
return x-100
要点5 :自定义函数设置默认函数
def add_end(L=[]):
L.append('END')
return L
例如:def add_end(L = None) :
if L is None :
L = []
L.append('end')
return L;
Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
要点6 :自定义函数设置可变参数
def print1(a,b,c):
print('a'a,'b',b,'c',c)
简写:
def print1(*numbers):
sum = 0
for i in numbers :
sum = i+sum
print(sum)
要点7 :自定义函数关键字参数
def person(**kw) :
print('name',name,'age',age,'other',kw)
命名关键字参数
def person(name,age,*,city,job)
print(name,age,city,job)
可知,可变参数就是一个list,关键字参数算是dict
list[1,2,3],tuple(1,2,[1,2]),dict{'michle':4,'kangkang':5},set{1,2,3,4}结果不能重复;
要点8 : 递归函数
def xpow(n) :
sum = 1
if n > 1 :
sum = n * xpow(n-1)
return sum;
要点9 :切片
list[0:10]-----0到9 可以简单或list[:10]
list[1:10]-----1到9切片还可以反向来list[-1:]最后一个list[-10:-1]-10,-9,-8.....
要点10 : 迭代
for x in list :
pass
for x in "abc" :
print(x) ##结果为a,b,c
可以利用函数isinstance('abc',Iterable)判断是否可以迭代true or false
利用迭代求一个list的最小值和最大值
min = None
max = None
for item in L:
if min == None or item < min:
min = item
if max == None or item > max:
max = item
return (min, max)
要点11 : 列表生成式
如果需要生成list中元素的乘积可以使用列表生成式
[x*x for x in range(0,10) if x % 2 ==0]结果显示为 0 1 4 9......
双层循环
[ x + y for x in range(1,5) for y in range(6,9)]
迭代字典
d = {'x':1,'y':2,'z':4,'t':5}
for k,v in d.items() :
print(k,'=',v)
字符串小写
L = ['HELLO','WORLD','IBM','APPLE']
[s.lower() for s in L]
要点12 :生成器
为解决大数据量的问题,列表生成式会面临一个内存溢出的问题,所以我们使用生成器
只需要在列表生成式[]改为()即可;然后调用迭代其即可;
正常形式
def fib(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a + b
n = n + 1
return 'done'
generate形式只需要添加yield就可以了
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return 'done'
然后f = fib(6)
迭代f就好了 for x in f: print(x)
网友评论