我是Python的新手,我正在用西班牙语编写一个简单的程序来计算美元转换,以及是否会有任何变化(付款时)。事实上,有两个选择“si o no”及其相应的动作。如果用户响应其他内容,则会向他们提供错误消息。但是,在完成三者中的任何一件之后,我想让它问你“你想再做一次吗?”然后从头重新开始。这是我的代码:
print "Buenos Dias!\n"
pregunta = raw_input ("Pagara algo en dolares? (si/no)>")
if pregunta == "si":
total = input ("Cuanto es el total a pagar?\t")
tasa = input ("Cuanto es la tasa de hoy?\t")
dolares = input ("Cuanto va a pagar en dolares?\t")
calculo = ( total - tasa*dolares)
if calculo > 0:
print "\nLa diferencia que debe pagar en cordobas es %.2f" % calculo
else:
print "\nDebe dar un cambio de %.2f" % calculo
elif pregunta == "no":
total = input("Cuanto es el total a pagar?\t")
paga = input ("Cuanto le entregara?\t")
cambio = paga - total
print "\nDebe de darle un cambio en cordobas de %.2f" % cambio
else:
print "\nNo me diste una respuesta correcta.\n"
我真正的问题是理解这种“同时”的逻辑。我不希望它检查真或假的陈述,我只是希望它在每次完成任何动作时重新启动。
答案 0 :(得分:1)
您可以使用while True
语句并在需要时将其中断:
while True:
[insert your code]
if answer=="yes":
break
True
是一个布尔值(等于1),与False
(0)相反。通常,while
语句会在测试条件为False
时中断(例如2<1
)。对于while True
,测试条件显然总是True
,因此循环永远不会自行中断(您必须在循环内明确地break
。)
答案 1 :(得分:1)
while
条件检查后面的语句,如果语句是True
,它将执行该块。执行后,它将再次检查语句,如果它再次为True
,它将再次执行,直到您停止执行break
或语句返回False
示例:
x = True
while x: # This will check if the x is True or not, in our case, it's True
x = False # We set x to False, so the code will not be executed again.
此代码将执行一次,因为x
不再是True
。
另一个例子:
while True: # This code block will execute forever as True is ALWAYS True.
# We have to use break statement to stop execution.
do_something(); #
if no_more: # if we don't want to execute it anymore, it will break the execution.
break
do_another(); # this code will NOT be executed if no_more is True.
# Because "break" statement stop execution IMMEDIATELY.
所以你应该记住的是,如果你在开头用variable
而不是True
检查语句,你的代码块将完成执行,即使代码块中的某个位置集也是如此变量为False
。但是如果你使用break
,它将立即停止执行 。您也可以同时使用(variable
和break
),具体取决于您的口味。