首页 > 解决方案 > 是否可以在 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')

标签: python

解决方案


发生这种情况是因为您将布尔值与字符串进行比较(字符串是您在输入中得到的),所以您有

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


推荐阅读