- 寫(xiě)一個(gè)生成式能夠產(chǎn)生的數(shù)據(jù)為: 1, 4, 27, 256, 3125,…, 9**9
nums = (x ** x for x in range(1, 9))
- 寫(xiě)一個(gè)生成式能夠產(chǎn)生1-10中所有半徑是偶數(shù)的圓的面積
import math
nums = (math.pi * r * r for r in range(1, 10) if not r & 1)
- 寫(xiě)一個(gè)生成式交換字段的鍵和值,產(chǎn)生一個(gè)新的字典
dict1 = {"a": 1, "b": 2, "c": 3}
dict2 = dict((dict1[i], i) for i in dict1)
- 為函數(shù)寫(xiě)一個(gè)裝飾器,在函數(shù)執(zhí)行之后輸出 after
def func(fn):
def func2(*args, **kwargs):
fn(*args, **kwargs)
print("after")
return func2
@func
def func3():
print("========")
func3()
- 為函數(shù)寫(xiě)一個(gè)裝飾器退个,把函數(shù)的返回值 +100 然后再返回颗搂。
def func2(fn):
def func3(*args, **kwargs):
b = fn(*args, **kwargs)
return b + 100
return func3
@func2
def func1(a):
return a
func1 = func2(func1)
print(func1(2))
-
寫(xiě)一個(gè)裝飾器@tag要求滿足如下功能:
@tag
def render(text):
# 執(zhí)行其他操作
return text@tag def render2(): return 'abc' print(render('Hello')) # 打印出: <p>Hello</p> print(render2()) # 打印出: <p>abc</p>
def add(fn):
def add1(*args, **kwargs):
a = str(fn(*args, **kwargs))
return "<p>" + a + "</p>"
return add1
@add
def render(text):
return text
@add
def render2():
return "abc"
print(render("Hello"))
print(render2())
-
寫(xiě)一個(gè)裝飾器@tag要求滿足如下功能(需要使用帶參的裝飾器尼变,自己先自學(xué)正在一下):
@tag(name='p')
def render(text):
# 執(zhí)行其他操作
return text@tag(name='div') def render2(): return 'abc' print(render('Hello')) # 打印出: <p>Hello</p> print(render2()) # 打印出: <div>abc</div>
def tag(name):
def add(fn):
def add1(*args, **kwargs):
a = str(fn(*args,**kwargs))
return "<%s>" % name + a + "</%s>" % name
return add1
return add
@tag(name="p")
def render(text):
return text
@tag(name="div")
def render2():
return "abc"
print(render("Hello"))
print(render2())
- 為函數(shù)寫(xiě)一個(gè)裝飾器乞巧,根據(jù)參數(shù)不同做不同操作。
flag為T(mén)rue,則 讓原函數(shù)執(zhí)行后返回值加100育拨,并返回。
flag為False欢摄,則 讓原函數(shù)執(zhí)行后返回值減100熬丧,并返回。
def func1(flag):
def func2(fn):
def func3(*args,**kwargs):
a = fn(*args,**kwargs)
if flag:
return a + 100
else:
return a - 100
return func3
return func2
@func1(flag=1)
def func(x):
return x
print(func(1))
- 寫(xiě)一個(gè)斗地主發(fā)牌器