我有一个使数学表生成的代码,我觉得可以减少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等函数传递给迭代列表的循环,但是它会过度并且更慢。总之,我认为这里的代码重用量是可以接受的。干,但不能太干... –