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之语句与函数

评论关闭