【问题标题】:Why isn't my program interpreting the user's input correctly? [duplicate]为什么我的程序不能正确解释用户的输入? [复制]
【发布时间】:2019-02-23 03:04:47
【问题描述】:

我的代码:

    reask = input('So do you want me to solve a quadratic equation? Last chance or I will close and you have to start me again! Make sure you type \'yes\' or \'no\': ')
reask = reask.lower
if reask == 'yes':
    print ('Great!')
else:
    print ('See ya!')
    raise SystemExit

当用户输入'yes' 时,程序会将其解释为其他内容并最终打印出'See ya!',然后关闭程序。它应该打印'Great!'。有什么问题?

【问题讨论】:

  • 你有一个错字。 reask = reask.lower 应该是 reask = reask.lower()。您将 reask 设置为函数 lower,而不是调用函数。
  • reask.lower 返回函数对象,而不是您想要的结果
  • 天哪,我什至都懒得去找那个。谢谢!
  • 为什么需要括号?为什么括号里什么都没有?
  • 需要括号来区分函数本身,它是一个像任何其他对象一样的对象,以及对函数的调用。括号中没有任何内容,因为这个特定的函数没有参数。

标签: python variables input


【解决方案1】:

reask = reask.lower 行并没有像你认为的那样做。它将名称 reask 绑定到绑定到用户输入字符串的方法 str.lower

要调用此方法并分配结果而不是方法本身,请执行reask = reask.lower()

或者,您可以保持分配不变并将条件更改为if reask() == 'yes':。那将调用相同的方法。

【讨论】:

    猜你喜欢
    • 2017-03-25
    • 2017-01-15
    • 2013-11-19
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多