- 如何為函數(shù)定義keyword-only參數(shù)(寫出個例子即可)?
keyword-only參數(shù)在定義時,必須出現(xiàn)在參數(shù)列表中的*args之后**args之前
def kw_only(a,*b,c,**d):
print(a,b,c,d)
>>> kw_only(1,2,c=3,d=4)
1 (2,) 3 {'d': 4}
- 什么是LEGB,請解釋
- L (Local) 局部作用域
- E (Enclosing) 閉包函數(shù)外的函數(shù)中
- G (Global) 全局作用域
- B (Built-in) 內建作用域
變量/函數(shù) 的查找順序:
L –> E –> G –>B
g_var = "global env"
def outer():
g_var = "closed func"
def inner():
g_var = "local env"
print(g_var)
inner()
outer()
- 實現(xiàn)一個計算機程序,如下效果:
- 運行后提示讓用戶輸入一個數(shù)字
- 提示輸入操作符(+ - * /)
- 再次提示輸入一個數(shù)字
- 打印計算結果
- 在不退出程序的前提下,可以允許用戶繼續(xù)輸入新一組數(shù)據計算
- 盡可能改善用戶體驗
def add(a, b):
print(a + b)
def sub(a, b):
print(a - b)
def mul(a, b):
print(a * b)
def div(a ,b):
print(a / b)
while True:
num1 = input("請輸入一個數(shù)字:")
sign = input("請輸入一個操作符(+,-,*,/):")
num2 = input("請輸入第二個數(shù)字:")
try:
if sign == "+":
add(int(num1), int(num2))
elif sign == "-":
sub(int(num1), int(num2))
elif sign == "*":
mul(int(num1), int(num2))
elif sign == "/":
div(int(num1), int(num2))
else:
print("請選擇正確的操作符")
except:
print("錯誤,請輸入正確的數(shù)字")

image.png