【问题标题】:About a room game in python关于python中的房间游戏
【发布时间】:2015-02-20 12:29:47
【问题描述】:
from sys import exit

def gold_room():
    print "This room is full of gold.  How much do you take?"

    next = raw_input("> ")
    if "0" in next or "1" in next:
        how_much = int(next)
    else:
        dead("Man, learn to type a number.")

    if how_much < 50:
        print "Nice, you're not greedy, you win!"
        exit(0)
    else:
        dead("You greedy bastard!")

def dead(why):
    print why, "Good job!"
    exit(0)

gold_room()

为什么我输入 2~9 会变成“伙计,学习输入数字” 输入 10~49 结果是“很好,你不贪心,你赢了!” 谢谢大家

【问题讨论】:

  • "0" in next or "1" in next 检查输入中是 0 还是 1。 1 和 0 都在 10~49 中,并且都不在 2~9 中。你想发生什么?
  • 尝试检查next.isdigit()

标签: python


【解决方案1】:

输入2时,首先if条件不成立,因为“2”中没有0和1。

当你输入 10 个条件时。那么how_much等于10。

【讨论】:

    【解决方案2】:

    2~9 不包括 1 或 0(程序将其视为字符串,因此它会查找字符 1 或 0),因此程序转到 else: dead() 部分。您可能只想确保数字在 1~49 范围内。只需将输入转换为 int 然后if 0&lt; how_much &lt; 50:

    编辑:例如,您应该尝试 39(没有 1 或 0),正如您提到的那样,它在 10~49 范围内

    EDIT2:哎呀,当然,谢谢@PM 2Ring 我忘了 python 可以做到这一点。

    【讨论】:

    • 有更好的方法来做 how_much 测试:if 0 &lt; how_much &lt; 50:
    猜你喜欢
    • 1970-01-01
    • 2020-08-14
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多