如何循环这个python脚本?

时间:2012-02-14 11:33:26

标签: python

我的作业声明......

创建一个条件looop,它将要求用户输入两个数字。应添加数字并显示总和。循环还应询问用户他或她是否希望再次执行操作。如果是这样,循环应该重复,否则循环应该终止。

这就是我想出来的......

n1=input('Please enter your first number: ')
print "You have entered the number ",n1,""
n2=input('Pleae enter your second number: ')
print "You have entered the number ",n2,""
total=n1+n2
print "I will now add your numbers together."
print "The result is:",total

y = raw_input('Would you like to run the program again? y=yes n=no')
print'The program will now terminate.'

y='y'
while y=='y':
print 'The program will start over.'

当你运行它时,程序的第一部分会起作用,但当它要求你再次运行时,它会不断地说“程序将重新开始。”

如何允许用户输入或不输入他们想要启动程序,我该怎么说这个以便循环?

2 个答案:

答案 0 :(得分:4)

您已将循环置于错误的位置。需要做这样的事情:

y = 'y'

while y == 'y':
    # take input, print sum
    # prompt here, take input for y

首先,y的值为'y',因此它将进入循环。在第一次输入后设置提示用户再次输入y。如果他们输入'y​​',那么循环将再次执行,否则它将终止。

另一种方法是进行无限循环,并在输入“y”以外的任何内容时断开。像这样的东西

while True:
    # take input, print sum
    # prompt here, take input for y
    # if y != 'y' then break

答案 1 :(得分:1)

您需要将while y=='y'放在脚本的开头。

即使我不打电话给y一个可能是'n''y'的变量, 例如:

def program():
    n1 = input('Please enter your first number: ')
    print "You have entered the number ",n1,""
    n2 = input('Pleae enter your second number: ')
    print "You have entered the number ",n2,""
    total = n1+n2
    print "I will now add your numbers together."
    print "The result is:",total


flag = True
while flag:
    program()
    flag = raw_input('Would you like to run the program again? [y/n]') == 'y'

print "The program will now terminate."

即使应该这样说,如果用户插入任何不是'y'的内容,你也会终止程序。