我有一個使數學表生成的代碼,我覺得可以減少I重複使用三個相同的代碼,但每個if/elif語句的解決方案略有不同。如何在'while'語句內的'if''elif'語句內如何濃縮'for x in range'語句
num=10
x=str(input("Enter Math Operation (+, -, *): "))
while (x != "+" and x != "-" and x != "*"):
x=str(input("\tEnter Math Operation: "))
if x=="+":
for table in range(1,11):
print(str(num),str(x),table,"=",num+table)
elif x=="-":
for table in range(1,11):
print(str(num),str(x),table,"=",num-table)
elif x=="*":
for table in range(1,11):
print(str(num),str(x),table,"=",num*table)
請告訴我該代碼如何被壓縮。
你可以做一個for循環包含了如果的,但它會用大桌子慢一點。你可以使用右側運算符的exec作爲字符串,但它會很慢並且很脆弱。你可以將一個add,subtract等函數傳遞給迭代列表的循環,但是它會過度並且更慢。總之,我認爲這裏的代碼重用量是可以接受的。幹,但不能太乾... –