Так что я пытаюсь реализовать логический оператор XOR в Python. Сначала я спрашиваю у пользователя, сколько входных данных они хотят протестировать (4 - TT, TF, FT, FF). Я знаю, что XOR оценивает T & T-> F, T & F-> T, F & T-> T, F & F-> F.Реализация XOR в Python
Я сохраняю первое логическое значение, которое я получаю от пользователя в переменной P в виде строки. Затем я конвертирую в boolean. Как так ...
P = input("Enter boolean number 1: ")
P = bool(P)
Я не отбрасывают вход в BOOL сразу, так как любой непустой строки приведет Правда, независимо от строки будучи «Ложное».
У меня есть таблица истинности XOR, установленная для четырех возможных условий, упомянутых выше, как четыре отдельных оператора if, а затем просто напечатайте («P xor Q - False» или «P xor Q is True») все в зависимости от таблицы истинности для XOR.
Вся эта логика находится внутри цикла for, который отсчитывает от 1 до 0 от ввода пользователем количества входных данных, которые они хотели бы сделать.
Когда я запускаю эту программу, независимо от того, что вводит пользователь, оператор печати «P xor Q is False».
Я просто не могу понять, почему! Я чувствую, что решение довольно просто, что меня беспокоит, поэтому любая помощь в правильном направлении будет оценена, спасибо!
Вот мой код:
numOfInputs = int(input("Enter the number of inputs: "))
for num in range(numOfInputs, 0, -1):
print()
P = input("Enter the first boolean: ")
P = bool(P)
Q = input("Enter the second boolean: ")
Q = bool(Q)
print()
if(P == True and Q == True):
print("P xor Q is False")
if(P == True and Q == False):
print("P xor Q is True")
if(P == False and Q == True):
print("P xor Q is True")
if(P == False and Q == False):
print("P xor Q is False")
«Я не отбрасывают вход в bool "- но вы делаете это в строке' P = bool (P) '. Почему вы думаете, что нет? – user2357112
Является ли это тем же самым, что и P = bool (input (...))? Я посчитал, что что-нибудь, кроме пустой строки, будет оценено как «True», если сразу будет выпущено. –
Любая непустая строка преобразуется в True как логическое. Это не изменится, если вы переместите вызов 'bool' в другую строку. – user2357112