Python之语句与函数,,Python语句赋值
Python之语句与函数,,Python语句赋值
Python语句
赋值语句
>>> (x,y) = (5,10)>>> x5>>> y10>>> x,y = 5,10>>> x,y(5, 10)>>> [x,y,z] = [1,2,3]>>> x,y,z(1, 2, 3)>>> x,y = y,x>>> x,y(2, 1)>>> [a,b,c] = (1,2,3)
#序列赋值>>> a,b,c = 'abc'>>> a'a'>>> b'b'>>> c'c'#左右两边不一致>>> a,b,*c = 'abcdefgh'>>> a'a'>>> b'b'>>> c['c', 'd', 'e', 'f', 'g', 'h']>>> a,*b,c = 'abcdefgh'>>> a'a'>>> b['b', 'c', 'd', 'e', 'f', 'g']>>> c'h'>>> s = 'abcderf'>>> a,b,c = s[0],s[1],s[2:]>>> a'a'>>> b'b'>>> c'cderf>>> a,b,c,*d = 'abc'>>> a'a'>>> b'b'>>> c'c'>>> d[]>>> a = b = c = 'hello'>>> a'hello'>>> b'hello'
>>> a = 'hello'>>> b = 'world'>>> print(a,b)hello world>>> print(a,b,sep='|')hello|world>>> print(a,b,sep='|',end='...\n')hello|world...>>> print(a,b,end='...\n',file=open('result.txt','w'))
条件语句
score = 75if score >= 90: print('优秀')elif score >= 80: print('良好')elif score >= 60: print('及格')else: print('不及格')
def add(x): print(x + 10)operation = { 'add': add, 'update': lambda x: print(x * 2), 'delete': lambda x: print(x * 3)}operation.get('add')(10)operation.get('update')(10)operation.get('delete')(10)#三元表达式result = '及格' if score >= 60 else '不及格'
循环语句
while循环
x = 'hello world'while x: print(x,end='|') x = x[1:]#hello world|ello world|llo world|lo world|o world| world|world|orld|rld|ld|d|#continuex = 10while x: x -= 1 if(x % 2 != 0): continue print(x) #break、else while True: name = input('请输入姓名:') if name == 'stop': break age = input('请输入年龄:') print('{}---{}'.format(name,age))else: print('循环结束') #else
for循环
for x in [1,2,3,4]: print(x, end='|') for key in emp: print(key)for k,v in emp.items(): print(k,v) s1 = 'abcd's2 = 'cdef'result = []for x in s1: if x in s2: result.append(x) result = [x for x in s1 if x in s2]for x in range(1,100): print(x)for x in range(1,101,2): print(x) for index,item in enumerate(s1): print(index,item)
迭代
迭代协议:__ next__()
全局函数:next()
f = open('a.txt',encoding='utf8')for line in f: print(line)
可迭代的对象分为两类:
? 迭代器对象:已经实现(文件)
? 可迭代对象:需要iter()-->__ iter__方法生成迭代器(列表)
f = open('a.txt')iter(f) is fTruel = [1,2,3]iter(l) is lFalsel = iter(l)l.__next__()1
l = [1,2,3]res = [x + 10 for x in l ]res[11, 12, 13]res = [x for x in l if x >= 2]res[2, 3]
result = zip(['x','y','z'],[1,2,3])result<zip object at 0x0000029CBB535FC8>for x in result: print(x) ('x', 1)('y', 2)('z', 3)
Python之函数
函数的作用域:
LocalGlobalBuilt-inEnclousure(nolocal)x = 100def func(): x = 0 print(x)print('全局x:', x)func()全局x: 1000------------------------------------------x = 100def func(): global x x = 0 print(x)print('全局x:', x)func()print('全局x:', x)全局x: 1000全局x: 0
def func(): x = 100 def nested(): x = 99 print(x) nested() print(x)func()99100--------------------------------------------------------------def func(): x = 100 def nested(): nonlocal x x = 99 print(x) nested() print(x)func()9999
参数
不可变类型:传递副本给参数
可变类型:传递地址引用
def fun(x): x += 10x = 100print(x)fun(x)print(x)100100---------------------------def func(l): l[0] = 'aaa'l = [1,2,3,4]print(l)func(l)print(l)[1, 2, 3, 4]['aaa', 2, 3, 4]----------------------------------------def func(str): str = 'aaa'str = '124'print(str)func(str)print(str)124124-------------------------------------------def func(l): l[0] = 'aaa'l = [1,2,3,4]print(l)func(l.copy())print(l)[1, 2, 3, 4][1, 2, 3, 4]---------------------------------------------def func(l): l[0] = 'aaa'l = [1,2,3,4]print(l)func(l[:])print(l)[1, 2, 3, 4][1, 2, 3, 4]
*args和**kwargs
def avg(score, *scores): return score + sum(scores) / (len(scores) + 1)print(avg(11.2,22.4,33))scores = (11,22,3,44)print(avg(*scores))----------------------------------------------------------------emp = { 'name':'Tome', 'age':20, 'job':'dev'}def display_employee(**employee): print(employee)display_employee(name='Tom',age=20)display_employee(**emp)
lambda
f = lambda name:print(name)f('Tom')f2 = lambda x,y: x+yprint(f2(3,5))f3 = lambda : print('haha')f3()------------------------------def hello(action,name): action(name)hello(lambda name:print('hello',name),'Tom')--------------------------------
def add_number(x): return x+5l = list((range(1,10)))#map这种方式特别灵活,可以实现非诚复杂的逻辑print(list(map(add_number,l)))print(list(map(lambda x:x**2,l)))
def even_number(x): return x % 2 == 0l = list(range(1,10))print(list(filter(even_number,l)))print(list(filter(lambda x : x % 2 == 0,l)))
Python之语句与函数
评论关闭