python - 是否可以在 if 语句中为输入函数提供布尔值?
问题描述
当我将输入提供给输入函数时,它只是在完成对 if 和 elif 语句的输入后显示来自 else 语句输出的消息。所以,这是代码:
import turtle
my_turtle = turtle.Turtle()
def heart():
my_turtle.color('red')
my_turtle.left(140)
my_turtle.forward(150)
my_turtle.circle(-60, 190)
my_turtle.left(100)
my_turtle.circle(-60, 190)
my_turtle.forward(150)
favorite_song = input('Which song do you listen the most: ')
Normal_song = input('Which song is your normally heard song: ')
if favorite_song == True:
print(favorite_song + ' is your favorite song')
print(heart())
elif Normal_song == True:
print(Normal_song + ' is your normally heard song')
else:
print('NO INPUT GIVEN')
解决方案
发生这种情况是因为您将布尔值与字符串进行比较(字符串是您在输入中得到的),所以您有
True == 'True'
如果你想检查 favorite_song 和 Normal_song 不是 None,你必须写:
if favorite_song:
print(favorite_song + ' is your favorite song')
print(heart())
elif Normal_song:
print(Normal_song + ' is your normally heard song')
else:
print('NO INPUT GIVEN')
我认为你应该用“normal_song”(小写)替换你的 Normal_song
推荐阅读
- ruby - 无法安装 Ruby-Debug-Ide
- python - 如何在一个地图图形中绘制多个 GeoDataFrames(重叠)?
- linux - 从终端执行带有导入库的 vpk_linux32 的 shell 脚本失败
- selenium - 如何在浏览器页面加载之前使用 selenium 运行机器人类命令
- c# - 在 IIS(版本 10)的“默认网站”中添加应用程序时出现 404 错误
- c - 如何使用一个简单的语句来描述关于 C 中函数 'sprintf' 的重复格式说明符?
- c# - 与 UserControl 属性的简单绑定 - 无法正常工作但没有错误
- git - Git pull 不显示所有消息
- java - "status":400,"error":"Bad Request","message":"必需的日期参数 'end' 不存在"
- android - 如何将自己的图像插入 SQLite 表?