【问题标题】:In this code you have a code for the door and a keypad for it在此代码中,您有一个门代码和一个键盘
【发布时间】:2021-07-29 23:04:36
【问题描述】:

我有一扇门,并且有一个键盘密码。如果你得到正确的代码,你说正确,如果你得到错误,它只会打印错误的代码(只是为了调试)。但是,我不明白为什么在编写代码时什么都没有发生。这是python顺便说一句:

realnumber = [12345]
inputnumber = []

def main():
  integer = input("Input a list of numbers to open the door:")

  if integer == realnumber:
    print(realnumber)
    print("Correct")
  else:
    inputnumber.append(integer)
main()

【问题讨论】:

  • “我不明白为什么我编码时什么都没有发生” - 请了解如何更具体。编码时很少发生的事情,您的意思是执行时吗?是真的什么都没有发生,还是因为它运行但不打印任何东西而让您感到困惑?
  • 您不会在“else”中打印任何内容。你预计会发生什么?
  • 对不起,我的意思是,当您为键盘号码及其正确的答案输入答案时,它不会打印正确
  • 另外,回答你的问题 batman567 我试过了,但每次它都会继续打印数字,即使它是正确的,所以它就像跳过 if 语句
  • 当您认为它们应该匹配时,请查看integerrealnumber 的值。它们真的匹配,还是不同? (提示:字符串和列表是不同的东西。)

标签: python function keypad


【解决方案1】:

这主要是猜测工作,但这里有两个问题对我来说很突出:

integer = input("Input a list of numbers to open the door:")

您可能没有意识到,无论您的输入如何,这里名为 integer 的变量都会变成一个字符串。我可以建议你试试吗:

integer = int(input("Input a list of numbers to open the door:"))

或者更好的是,像这样捕获无意义的输入:

try:
    integer = int(input("Input a list of numbers to open the door:"))
except ValueError:
    print("Invalid Input")

其次,

  if integer == realnumber:

在这里,您尝试将变量“integer”(当前是一个字符串,但我建议的更改将是一个“int”变量)与 realnumber 进行比较,但 realnumber 是一个只有一个输入的变量列表。

我建议您选择以下更改之一:

  if integer == realnumber[0]:

realnumber = 12345

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2023-03-29
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多