print "1) Add"
print "2) Substract"
print "3) Multiply"
print "4) Divide"
print "5) Exit"
x=input("Choose an operation: ")
y=input("How many numbers do you need to operate: ")
op=1
lista=[]
while y>0:
a=input("Value"+" "+str(op)+": ")
litlist=[a]
lista=lista+litlist
y=y-1
op=op+1
while x!=5:
if x==1:
b=0
for n in lista:
b=b+n
print b
elif x==2:
b=0
for n in lista:
if lista[0]==n:
b=b+n
else:
b=b-n
print b
elif x==3:
b=1
for n in lista:
b=b*n
print b
elif x==4:
b=1
for n in lista:
if lista[0]==n:
b=b*n
else:
b=b/float(n)
print b
该计划旨在:
我想问一下需要做哪些操作,打印结果后需要再操作多少个数字。 然后输入数字等等。在
我知道我可以在while中使用另一个输入,让它再次询问数字并停止循环,但有两个while不允许我再次询问Y,只需要X。因此,能够返回到第6行重新开始将很酷 感谢您的回答:)
Python不允许您返回特定的行号,即使它允许,您也不应该利用该功能,因为它会导致无法维护的程序。在
相反,学习如何使用函数和构造代码,使函数有意义。在
例如,类似于:
然后,您可以通过调用函数再次在函数中重复该代码块,例如:
^{pr2}$您正在查找}。在
goto
语句。早在1968年,Dijkstra写了一篇著名的论文Go To Statement Considered Harmful,解释了为什么不应该寻找{正确的做法是构造代码。在
最简单的改变是:
不过,你可以做得更好。将独立的代码片段分离成可以调用的函数。如果两段代码(或者在您的例子中是四段)几乎完全相同,那么将它们抽象成一个接受参数的函数,而不是重复相同的代码四次。等等。在
但实际上,即使没有任何功能,也可以消除大部分重复:
^{pr2}$我必须在上面
import operator
的唯一原因是得到那些add
,sub
等函数。这些都是微不足道的,所以你可以自己写:然后,不是这样:
…这样做:
……其他三个也一样。在
或者您可以使用
lambda
来定义它们:不过,你不应该做这两件事。定义
add
、sub
、mul
、和truediv
是很简单的,更简单的是而不是定义它们。Python附带的“电池”是有原因的,如果你不使用电池,你就无缘无故地让你的生活(以及任何需要阅读、维护你的代码的人的生活)变得更加困难。在相关问题 更多 >
编程相关推荐