x = bool(input("True or False...? "))
if x == 'True':
print("Você escollheu True")
else:
print("Você escolheu False")
What is wrong with this logic, more specifically about the logic involving the Boolean variable?
x = bool(input("True or False...? "))
if x == 'True':
print("Você escollheu True")
else:
print("Você escolheu False")
What is wrong with this logic, more specifically about the logic involving the Boolean variable?
There are two problems with logic. First the bool()
function can not turn the string into a Boolean value as expected, so the correct comparison is with string , but without the function. Second, if the person does not type True
, they can not know if they typed False
without specifically testing for it.
x = input("True ou False...? ")
if x == 'True':
print("Você escolheu True")
else:
print("Você não escolheu True")
See running on ideone .
Or
x = input("True ou False...? ")
if x == 'True':
print("Você escolheu True")
elif x == 'False':
print("Você escolheu False")
else:
print("Você não escolheu True ou False")
See running on ideone .
Or you can still accept typing by ignoring uppercase:
x = input("True ou False...? ").lower()
if x == 'true':
print("Você escolheu True")
elif x == 'false':
print("Você escolheu False")
else:
print("Você não escolheu True ou False")
See running on ideone .
If you still want the function bool()
you have to understand that a false string is when it is empty:
x = bool(input("Digite alguma coisa ou deixe em branco...? "))
if x: #não precisa usar True porque é isto que o if espera
print("Você digitou algo")
else:
print("Você não digitou algo")
See running on ideone .