我知道每个人都讨厌询问任何与goto相关的问题,但我的问题是:我对编程完全是个初学者,所以我正在制作我11岁的弟弟想出的点子的小练习程序。这是一个程序,你可以在其中选择一个项目,它将从帐户中提取资金。
#!/usr/bin/env python
Acc = 30
print("$1 products: Pepsi, Water, Coke, Sprite")
print("$2 products: Chips, Cookies, Skittles, Twix")
print("$3 products: Amp, Monster, Red Bull, Rockstar")
L1 = ('Pepsi', 'Water', 'Coke', 'Sprite')
L2 = ('Chips', 'Cookies', 'Skittles', 'Twix')
L3 = ('Amp', 'Monster', 'Red Bull', 'Rockstar')
sel = raw_input("Please enter a product: ")
if sel in L1:
print("$1 has been removed from your account.")
Acc = Acc-1
print("You now have $") (Acc), ("left in your account")
if sel in L2:
print("$2 has been removed from your account.")
Acc = Acc-2
print("You now have $") (Acc), ("left in your account")
if sel in L3:
print("$3 has been removed from your account.")
Acc = Acc-3
print("You now have $"), (Acc), ("left in your account")我希望能够从If语句的末尾跳到用户输入部分之前的位置。在Python中有什么方法可以做到这一点吗?提前感谢。(:
发布于 2012-06-29 12:01:47
您应该做的是将语句嵌入到while循环中,并在给出一个特定值(或不接受的值)时退出。此外,如果您获取的项只能在1个列表中,则应该使用elif语句,这样当找到真值时,它将退出。
#!/usr/bin/env python
Acc = 30
print("$1 products: Pepsi, Water, Coke, Sprite")
print("$2 products: Chips, Cookies, Skittles, Twix")
print("$3 products: Amp, Monster, Red Bull, Rockstar")
L1 = ('Pepsi', 'Water', 'Coke', 'Sprite')
L2 = ('Chips', 'Cookies', 'Skittles', 'Twix')
L3 = ('Amp', 'Monster', 'Red Bull', 'Rockstar')
while True:
sel = raw_input("Please enter a product: ")
if sel in L1:
print("$1 has been removed from your account.")
Acc = Acc-1
print("You now have $") (Acc), ("left in your account")
elif sel in L2:
print("$2 has been removed from your account.")
Acc = Acc-2
print("You now have $") (Acc), ("left in your account")
elif sel in L3:
print("$3 has been removed from your account.")
Acc = Acc-3
print("You now have $"), (Acc), ("left in your account")
elif sel == "exit":
break发布于 2012-06-29 11:59:41
您想要实现的目标通常是通过在接受用户输入的行之后围绕所有内容的循环来实现的。如下所示:
#!/usr/bin/env python
Acc = 30
print("$1 products: Pepsi, Water, Coke, Sprite")
print("$2 products: Chips, Cookies, Skittles, Twix")
print("$3 products: Amp, Monster, Red Bull, Rockstar")
L1 = ('Pepsi', 'Water', 'Coke', 'Sprite')
L2 = ('Chips', 'Cookies', 'Skittles', 'Twix')
L3 = ('Amp', 'Monster', 'Red Bull', 'Rockstar')
while True:
sel = raw_input("Please enter a product: ")
if sel == 'exit':
break
if sel in L1:
print("$1 has been removed from your account.")
Acc = Acc-1
print("You now have $") (Acc), ("left in your account")
if sel in L2:
print("$2 has been removed from your account.")
Acc = Acc-2
print("You now have $") (Acc), ("left in your account")
if sel in L3:
print("$3 has been removed from your account.")
Acc = Acc-3
print("You now have $"), (Acc), ("left in your account")发布于 2012-06-29 12:17:06
使用此技巧,您可以省去两次键入所有项目
L1 = ('Pepsi', 'Water', 'Coke', 'Sprite')
L2 = ('Chips', 'Cookies', 'Skittles', 'Twix')
L3 = ('Amp', 'Monster', 'Red Bull', 'Rockstar')
print("$1 products:", ", ".join(L1))
print("$2 products:", ", ".join(L2))
print("$3 products:", ", ".join(L3))https://stackoverflow.com/questions/11255856
复制相似问题