2 回答

TA貢獻2019條經驗 獲得超9個贊
如果您的代碼命中 else 塊,則不會為 a1 分配值。
您可以通過以下兩種方式之一解決此問題:
分配一個默認值,以防它沒有在條件塊中分配。
a1 = 0
b1 = 0
c1 = 0
d1 = 0
if(value==1):
a1=10
b1=11
c1=12
d1=13
elif(value==2):
a1=20
b1=21
c1=22
d1=23
elif(value==3):
a1=30
b1=31
c1=32
d1=33
else:
print("wrong input")
或者在 else 塊中分配變量,這將實現基本相同的事情
if(value==1):
a1=10
b1=11
c1=12
d1=13
elif(value==2):
a1=20
b1=21
c1=22
d1=23
elif(value==3):
a1=30
b1=31
c1=32
d1=33
else:
a1 = 0
b1 = 0
c1 = 0
d1 = 0
print("wrong input")
如果您不希望用戶使用這些默認值,您可以隨時在 else 中拋出異常,讓用戶知道他們輸入了錯誤的值

TA貢獻1863條經驗 獲得超2個贊
您應該僅在有效輸入的情況下初始化字典
def para(value):
dict_a = dict()
dict_b = dict()
if(value==1):
dict_a={'a':10,'b':11}
dict_b={'c':12,'d':13}
elif(value==2):
dict_a={'a':20,'b':21}
dict_b={'c':22,'d':23}
elif(value==3):
dict_a={'a':30,'b':31}
dict_b={'c':32,'d':33}
else:
print("wrong input")
return(dict_a, dict_b)
添加回答
舉報