Python学习总结( 二 )

序列解包
1 x, y, z = 1, 2, 32 print x, y, z3 (x, y, z) = (1, 2, 3)4 print x, y, z5 (x, y, z) = [1, 2, 3]6 print x, y, zbool值
1 #下面的输入全部返回False 。2 print(bool(None)) 3 print(bool(())) 4 print(bool([])) 5 print(bool({})) 6 print(bool("")) 7 print(bool(0)) 89 #虽然这些值在条件运算中会当做False , 但是本身不等于False 。 10 print(True and "")11 print(not "")12 print(False == "")13 print(False == 0) #0除外 , bool类型的内部表示就是int类型 。 bool运算
1 print(0 < 1 < 10)2 print(0 < 1 and 1 < 10)3 print(not(0 > 1 > 10))4 print(not(0 > 1 or 1 > 10))语句块
:开始语句快 , 缩进的所有内容都是一个语句块 。
1 if(10 > 1):2print("10 > 1")3 else:4print("不可能发生")三元运算符
1 print("10 > 1" if 10 > 1 else "不可能发生")相等比较
1 #== 和 is的差别 , ==比较的是内容 , is比较的是引用 。 2 x = [1, 2, 3]3 y = x4 z = [1, 2, 3]5 print(x == y)6 print(x == z)7 print(x is y)8 print(x is z)循环
1 #for循环类似C#的foreach , 注意for后面是没有括号的 , python真是能简洁就尽量简洁 。2 for x in range(1, 10): 3print(x) 45 for key in {"x":"xxx"}: 6print(key) 78 for key, value in {"x":"xxx"}.items(): 9print(key, value)10 11 for x, y, z in [["a", 1, "A"],["b", 2, "B"]]:12print(x, y, z) 1 #带索引的遍历 2 for index, value in enumerate(range(0, 10)): 3print(index, value) 45 #好用的zip方法 6 for x, y in zip(range(1, 10), range(1, 10)): 7print(x, y) 89 #循环中的的else子句10 from math import sqrt11 for item in range(99, 1, -1):12root = sqrt(item)13if(root == int(root)):14print(item)15break16 else:17print("没有执行break语句 。 ")pass、exec和eval
1 #pass、exec、eval2 if(1 == 1):3pass4 5 exec('print(x)', {"x": "abc"})6 print(eval('x*2', {"x": 5}))函数部分形参和实参之间是按值传递的 , 当然有些类型的值是引用(对象、列表和字典等) 。
1 # 基本函数定义 。2 def func(): 3print("func") 45 func() 67 # 带返回值的函数 。8 def func_with_return(): 9return ("func_with_return")10 11 print(func_with_return())12 13 # 带多个返回值的函数 。 14 def func_with_muti_return():15return ("func_with_muti_return", "func_with_muti_return")16 17 print(func_with_muti_return())18 19 # 位置参数20 def func_with_parameters(x, y):21print(x, y)22 23 func_with_parameters(1, 2)24 25 # 收集多余的位置参数26 def func_with_collection_rest_parameters(x, y, *rest):27print(x, y)28print(rest)29 30 func_with_collection_rest_parameters(1, 2, 3, 4, 5)31 32 #命名参数33 def func_with_named_parameters(x, y, z):34print(x, y, z)35 36 func_with_named_parameters(z = 1, y = 2, x = 3)37 38 #默认值参数39 def func_with_default_value_parameters(x, y, z = 3):40print(x, y, z)41 42 func_with_default_value_parameters(y = 2, x = 1)43 44 #收集命名参数45 def func_with_collection_rest_naned_parameters(*args, **named_agrs):46print(args)47print(named_agrs)48 49 func_with_collection_rest_naned_parameters(1, 2, 3, x = 4, y = 5, z = 6)50 51 #集合扁平化52 func_with_collection_rest_naned_parameters([1, 2, 3], {"x": 4, "y": 4, "z": 6}) #这会导致args[0]指向第一个实参 , args[1]指向第二个实参 。 53 func_with_collection_rest_naned_parameters(*[1, 2, 3], **{"x": 4, "y": 4, "z": 6}) #这里的执行相当于func_with_collection_rest_naned_parameters(1, 2, 3, x = 4, y = 5, z = 6) 。