Learn Python the Hard Way,ex37-1
本练习为复习python的符号和关键字
关键字有:

#and or False True print(1==0 and 2==0, 1==0 or 2==0) print(False) print(True)
输出:
False False
False
True
lists = ['1', '2', 'a', 'afds', 3, 463] """ del:Deletion of a target list recursively deletes each target, from left to right. for……in print if……elif……else """ # del lists[] values/name for i in range(0,len(lists)): print(lists, end='\t') del lists[0] print(lists) del lists if 'lists' not in locals().keys(): print("lists is not variable") elif 'lists' in locals().keys(): print("lists is variable") else: pass
输出结果:
['1', '2', 'a', 'afds', 3, 463] ['2', 'a', 'afds', 3, 463]
['2', 'a', 'afds', 3, 463] ['a', 'afds', 3, 463]
['a', 'afds', 3, 463] ['afds', 3, 463]
['afds', 3, 463] [3, 463]
[3, 463] [463]
[463] []
lists is not variable
""" pass: "pass" is a null operation def class """ def temp_function(): # a function that does nothing (yet) pass class temp_class: # a class with no methods (yet) pass
""" with EXPRESSION as TARGET: SUITE is semantically equivalent to: manager = (EXPRESSION) enter = type(manager).__enter__ exit = type(manager).__exit__ value = enter(manager) hit_except = False try: TARGET = value SUITE except: hit_except = True if not exit(manager, *sys.exc_info()): raise finally: if not hit_except: exit(manager, None, None, None) """ with open("temp.txt") as fp: lines = fp.readlines() i = 0 while i < len(lines): if i == 3: i += 1 continue print("%d:" % i, lines[i]) i += 1 #is semantically equivalent to: try: fp = open("temp.txt") lines = fp.readlines() i = 0 while i < len(lines): if i == 3: i += 1 continue print("%d:" % i, lines[i]) i += 1 except: print("ERROR!!") else: print("There nothing to print!") finally: print("This is finally print!")
输出结果:
0: a
1: applw
2: sjklfjs
4: 发的是加费的
5: drwjksjfr
0: a
1: applw
2: sjklfjs
4: 发的是加费的
5: drwjksjfr
There nothing to print!
This is finally print!
tuples = ('1', '2', 'a', 'afds', 3, 463)
sets = {'1', '2', 'a', 'afds', 3, 463}
""" is """ if tuples is not sets: print("tuple is noe sets!")
输出结果:
tuple is noe sets!
""" yield: *generator* function yield_stmt ::= yield_expression """ def foo(n): a, b = 0, 1 while 0 < n: print(b) a, b = b, a+b n -=1 def foo1(n): a, b = 0, 1 L = [] while 0 < n: L.append(b) print(L) a, b = b, a+b n -=1 return L def foo2(n): a, b = 0, 1 while 0 < n: yield b a, b = b, a+b n -=1 foo(5) foo1(5) for i in foo2(5): print(i)
输出结果:
1
1
2
3
5
[1]
[1, 1]
[1, 1, 2]
[1, 1, 2, 3]
[1, 1, 2, 3, 5]
1
1
2
3
5
""" lambda lambda_expr ::= "lambda" [parameter_list] ":" expression def <lambda>(parameters): return expression """ fp = lambda para : open(para) print(fp("temp.txt").readlines())
""" async for TARGET in ITER: SUITE else: SUITE2 iter = (ITER) iter = type(iter).__aiter__(iter) running = True while running: try: TARGET = await type(iter).__anext__(iter) except StopAsyncIteration: running = False else: SUITE else: SUITE2 """
import asyncio
import time
async def test2(i): r = await other_test(i) #uspend the execution of *coroutine* on an *awaitable* object. print("*****",i,r) async def other_test(i): r = i print(i,end="*\t") await asyncio.sleep(0) print(time.time()-start) return r url = ["https://segmentfault.com/p/1210000013564725", "https://www.jianshu.com/p/83badc8028bd", "https://www.baidu.com/"] loop = asyncio.get_event_loop() # Get the event loop for the current context. task = [asyncio.ensure_future(test2(i)) for i in url] #Wrap a coroutine or an awaitable in a future. start = time.time() loop.run_until_complete(asyncio.wait(task)) #Wait for the Futures and coroutines given by fs to complete. endtime = time.time()-start print(endtime) loop.close()
输出结果:
https://segmentfault.com/p/1210000013564725* https://www.jianshu.com/p/83badc8028bd* https://www.baidu.com/* 0.0
***** https://segmentfault.com/p/1210000013564725 https://segmentfault.com/p/1210000013564725
0.0019965171813964844
***** https://www.jianshu.com/p/83badc8028bd https://www.jianshu.com/p/83badc8028bd
0.0029840469360351562
***** https://www.baidu.com/ https://www.baidu.com/
0.0039823055267333984
""" local global nonlocal """ sets = {'1', '2', 'a', 'afds', 3, 463} def temp_global(): global sets print("temp_global", sets) sets.add('temp') #+ print(1, sets) sets.update('temp') #+ 重复的就不添加了,可以添加多个 print(2, sets) sets.remove('1') #- 没有会提示错误 print(3, sets) sets.discard('temp') #- 没有不提示错误 sets.pop() #- 随机删除 print(4, sets) def temp_local(): print("temp_local", sets) sets.add('1') #+ print(1, sets) sets.update('temp') #+ 重复的就不添加了,可以添加多个 print(2, sets) sets.remove('1') #- 没有会提示错误 print(3, sets) sets.discard('temp') #- 没有不提示错误 sets.pop() #- 随机删除 print(4, sets) def temp_nonlocal(): name = ['1', '2'] def temp_nonlocal_fuc(): nonlocal name name.append('3') return name return temp_nonlocal_fuc temp_global() print("*", sets) temp_local() print("**", sets) tn = temp_nonlocal() print(tn()) #不可单独调用 print(tn())
输出结果:
temp_global {'2', 3, 'a', 'afds', 463, '1'}
1 {'2', 3, 'a', 'temp', 'afds', 463, '1'}
2 {3, 463, 'e', 'm', '2', 'a', 'afds', 'p', '1', 't', 'temp'}
3 {3, 463, 'e', 'm', '2', 'a', 'afds', 'p', 't', 'temp'}
4 {463, 'e', 'm', '2', 'a', 'afds', 'p', 't'}
* {463, 'e', 'm', '2', 'a', 'afds', 'p', 't'}
temp_local {463, 'e', 'm', '2', 'a', 'afds', 'p', 't'}
1 {463, 'e', 'm', '2', 'a', 'afds', 'p', 't', '1'}
2 {463, 'e', 'm', '2', 'a', 'afds', 'p', 't', '1'}
3 {463, 'e', 'm', '2', 'a', 'afds', 'p', 't'}
4 {'e', 'm', '2', 'a', 'afds', 'p', 't'}
** {'e', 'm', '2', 'a', 'afds', 'p', 't'}
['1', '2', '3']
['1', '2', '3', '3']

浙公网安备 33010602011771号