【问题标题】:Python- result of conditions does nothingPython-条件的结果什么都不做
【发布时间】:2017-03-08 02:37:27
【问题描述】:

所以,我开始自学 Python,但变量及其结果存在小问题?

choice = input()

if (random.randint(0,100) > 20 and choice == (1)):
    print("Odkopnul jsi krysu a ta sebou")
    print("prastila o zed az omdlela")

elif random.randint(0,100) < 20:
    print("I pres tvoje cukani ti")
    print("krysa ukousla kus palce!")

问题是,当我按 1 然后输入时,它什么也不做:o 我需要它:如果随机数大于 20 并且输入为 1 来打印一件事(你赢了,对于 exp。)或者如果随机数小于 20 来打印其他东西(你输了,对于 exp。)

感谢您的所有建议,我很感激

【问题讨论】:

  • input 返回一个字符串。您必须将其转换为整数进行比较
  • 如果 random.randint(0,100) 返回 20 会发生什么?
  • 用 int - int(input()) 包装你的输入
  • 你也随机运行了两次。所以第一次随机运行很可能与第二次随机运行不同,所以比较不合逻辑。
  • 如果数字大于 20 但选择不是 1 会怎样?

标签: python multiple-conditions


【解决方案1】:

这段代码有几个问题。

  1. input() 返回一个字符串,但您正试图将其与整数进行比较。您应该首先通过调用 choice = int(input())

  2. 将其转换为整数
  3. 您调用了两次random.randint(0,100),因此每次都返回不同的值。相反,您应该在函数顶部调用它一次,并两次使用该值。

  4. 你比较你的随机变量看它是小于20还是大于20,但是你没有考虑它等于20的情况。

  5. 无需将(1) 放在括号中。

纠正这些错误,最终的代码就变成了

choice = int(input())
num = random.randint(0,100)

if (num >= 20 and choice == 1):
    print("Odkopnul jsi krysu a ta sebou")
    print("prastila o zed az omdlela")

elif num < 20:
    print("I pres tvoje cukani ti")
    print("krysa ukousla kus palce!")

请注意,该程序的逻辑仍然不完全有意义,因为在某些情况下不会打印任何内容。但是,这更正了更明显的错误,我鼓励您按照 Python 教程了解更多有关基础知识的信息。

【讨论】:

  • 1,2 谢谢,我不知道。 3 是的,我知道了,发布了旧版本的代码 xD 4 好的,非常感谢,我会继续;)
  • 没问题,如果对您有用,请务必点击复选标记以接受答案。
猜你喜欢
  • 2017-12-08
  • 1970-01-01
  • 2017-07-03
  • 2023-01-30
  • 2013-10-15
  • 2022-11-10
  • 1970-01-01
  • 2013-07-09
  • 2011-03-24
相关资源
最近更新 更多