#1. #A:while语句和for语句有一个可选的else部分,当控制权离开循环且没有遇见break语句时候执行 #B:python3中可以使用pass充当占位语句,也允许在任何地方使用...来省略代码 #C:while (value = 10):pass 编译通不过,在python中,表达式可以作为语句出现,但是语句不能用作表达式 value = "123" while value: print(value, end = ' ') value = value[1:] else: print(value + " done") #输出123 23 3 done value = "123" for v in value: print(v, end = ' ') else: print(v + " done") #输出1 2 3 3 done value = "123" while value: ... break else: print("") #不会执行至此 value = ... #value = Ellipsis ellipsis 英[ɪˈlɪpsɪs]美[ɪˈlɪpsɪs]n.(语法结构上的) 省略; value1 = bool(value) #value1 = True #2. #A:单词for之后的任何赋值目标在语法上都是有效的 #B:在python中while的性能可能会比等效的for更低 for ((a, b), c) in [((1, 2), 3), ["ab", 'c']] : print(a, b, c, end = ' ', flush = True) #1 2 3 a b c for a, *b in [(5, 6, 7), "abc"] : print(a, *b, end = ' ', flush = True) #5 6 7 a b c #3. #A:zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排元素配成对。zip在python3中是一个可迭代对象 #B:当参数长度不同时候,zip会以最短序列长度为准来得到元组的列表 #C:对zip的调用也可以产生字典 L1 = [1, 2, 3] L2 = ['a', 'b', ('c', 'd')] L3 = list(zip(L1, L2)) #L3 = [(1, 'a'), (2, 'b'), (3, ('c', 'd'))] L4 = list(zip(L1)) #L4 = [(1,), (2,), (3,)] L5 = list(zip(L1, L2, L3)) #L5 = [(1, 'a', (1, 'a')), (2, 'b', (2, 'b')), (3, ('c', 'd'), (3, ('c', 'd')))] L6 = [1] L7 = ['a', 'b'] L8 = list(zip(L6, L7)) #L8 = [(1, 'a')] dict0 = dict(zip(L6, L7)) #dict0 = {1: 'a'} #3. #A:enumerate函数返回一个生成器对象,这个对象有一个__next__方法,由下一个内置函数调用,返回一个元组,得到序列元素值和偏移位置 ''' enumerate 英[ɪˈnju:məreɪt] 美[ɪˈnu:məreɪt] vt. 列举 ''' L1 = ['a', 1, 'szn'] Fun = enumerate(L1) value0 = next(Fun) #value0 = (0, 'a') value0 = next(Fun) #value0 = (1, 1) value0 = next(Fun) #value0 = (2, 'szn')