如何回到特定的lin

2024-09-27 23:17:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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行重新开始将很酷 感谢您的回答:)


Tags: inaddforinputif数字elsemultiply
2条回答

Python不允许您返回特定的行号,即使它允许,您也不应该利用该功能,因为它会导致无法维护的程序。在

相反,学习如何使用函数和构造代码,使函数有意义。在

例如,类似于:

def get_number_of_operations():
    return input("How many numbers do you need to operate: ")

然后,您可以通过调用函数再次在函数中重复该代码块,例如:

^{pr2}$

您正在查找goto语句。早在1968年,Dijkstra写了一篇著名的论文Go To Statement Considered Harmful,解释了为什么不应该寻找{}。在

正确的做法是构造代码。在

最简单的改变是:

print "1) Add"
print "2) Substract"
print "3) Multiply"
print "4) Divide"
print "5) Exit"
while True:
    x=input("Choose an operation: ")
    # ...

不过,你可以做得更好。将独立的代码片段分离成可以调用的函数。如果两段代码(或者在您的例子中是四段)几乎完全相同,那么将它们抽象成一个接受参数的函数,而不是重复相同的代码四次。等等。在

但实际上,即使没有任何功能,也可以消除大部分重复:

^{pr2}$

我必须在上面import operator的唯一原因是得到那些addsub等函数。这些都是微不足道的,所以你可以自己写:

def add(x, y):
    return x+y
# etc.

然后,不是这样:

op, value = operator.add, 0

…这样做:

op, value = add, 0

……其他三个也一样。在

或者您可以使用lambda来定义它们:

op, value = (lambda x, y: x+y), 0

不过,你不应该做这两件事。定义addsubmul、和truediv是很简单的,更简单的是而不是定义它们。Python附带的“电池”是有原因的,如果你不使用电池,你就无缘无故地让你的生活(以及任何需要阅读、维护你的代码的人的生活)变得更加困难。在

相关问题 更多 >

    热门问题