首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳到Python中的代码子部分?

跳到Python中的代码子部分?
EN

Stack Overflow用户
提问于 2012-06-29 11:54:01
回答 4查看 779关注 0票数 2

我知道每个人都讨厌询问任何与goto相关的问题,但我的问题是:我对编程完全是个初学者,所以我正在制作我11岁的弟弟想出的点子的小练习程序。这是一个程序,你可以在其中选择一个项目,它将从帐户中提取资金。

代码语言:javascript
复制
#!/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中有什么方法可以做到这一点吗?提前感谢。(:

EN

回答 4

Stack Overflow用户

发布于 2012-06-29 12:01:47

您应该做的是将语句嵌入到while循环中,并在给出一个特定值(或不接受的值)时退出。此外,如果您获取的项只能在1个列表中,则应该使用elif语句,这样当找到真值时,它将退出。

代码语言:javascript
复制
#!/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
票数 3
EN

Stack Overflow用户

发布于 2012-06-29 11:59:41

您想要实现的目标通常是通过在接受用户输入的行之后围绕所有内容的循环来实现的。如下所示:

代码语言:javascript
复制
#!/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")
票数 2
EN

Stack Overflow用户

发布于 2012-06-29 12:17:06

使用此技巧,您可以省去两次键入所有项目

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11255856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档