【问题标题】:Having trouble updating python input into lowercase将 python 输入更新为小写时遇到问题
【发布时间】:2019-02-26 22:36:53
【问题描述】:

所以我正在尝试创建一个程序来接受客户选择的食物。我希望用户能够以大写形式输入他们的选择,这样我就可以将其转换为小写,然后使用 if 语句进行比较

Name = str(input("What is your Name?"))
Name = ''.join(Name.split())
foodChoice = str(input("Would you like a Burger or Salad?"))
foodChoice = foodChoice.lower()

if foodChoice == 'burger':
    print("true")
else:
    print("false")

假设客户输入“Burger”

我遇到的问题是,即使我在声明输入后将“Burger”转换为小写,if 语句仍然认为它是错误的......看看下面的示例输出

你叫什么名字? 杰森

您要汉堡还是沙拉? 汉堡

进程以退出代码 0 结束

编辑:问题似乎是因为我出于习惯在汉堡前添加了一个空格:/,在那张纸条上,有什么办法可以解决这个问题吗?

【问题讨论】:

  • 这段代码完美运行。您能否向我们展示似乎导致问题的输入和输出?
  • 嘿奥利弗,我在帖子中编辑了上面的输出以显示我的问题。
  • 您的代码也适用于我,但我无法获得您的输出。你不是无意中放了一个空格吗?
  • 我认为你是对的 Diogo,我在输入之前添加了一个空格。有没有办法解决这个问题?
  • @CosmicCat 作为答案发布。

标签: python python-3.x if-statement lowercase


【解决方案1】:

查看您的输出,问题在于您在输入之前添加了一个空格,这使得该语句的计算结果为 false。

为避免这种情况,我建议您使用strip 函数,从而删除字符串开头和结尾的空格。

所以,在你的情况下,它会是:

foodChoice = foodChoice.lower().strip()

此外,您可以使用rstrip() 仅删除字符串右侧的空格,并使用lstrip() 删除左侧的空格。

【讨论】:

  • foodChoice =' '.join(foodChoice.split()).lower() 也可以吗?
  • 会的,因为 split() 将连续的空格转换为单个空格,并删除前导或尾随空格。
【解决方案2】:

您可能希望使用 strip 方法从字符串的开头和结尾删除空格。

改变

foodChoice = foodChoice.lower()

foodChoice = foodChoice.lower().strip()

更多信息可以在这个answer找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2018-01-06
    相关资源
    最近更新 更多