What's wrong with the logic of this'Python 'code?

1
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?

    
asked by anonymous 10.12.2016 / 03:14

1 answer

4

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 .

    
10.12.2016 / 06:38