Как мне сканировать каждый символ в пользовательском вводе и сравнивать его со вторым целым числом, которое они вводят?

#python

Вопрос:

возможно, это мой последний пост на некоторое время, но у меня возникли некоторые проблемы с другим из моих кодов.

итак, для контекста программа, которую я хочу создать, заключается в том, что пользователь вводит целое число из 3 символов и одно целое число, разделенное пробелом.

код:

 a,b = input().split() if a[0] and a[1] and a[-1] == b:  print("Jackpot!") else:  print("Nah")  

пример ввода:

 777 7  

вывод, который он выдает, если каждый символ на первом входе совпадает со вторым в той же строке.

 Jackpot!  

еще один пример ввода:

 177 7  

вывод, если один из символов на первом входе не совпадает со вторым входом:

 Nah  

Пока все хорошо, код, который у меня есть в настоящее время, считывает каждый символ во входных данных, КРОМЕ второго символа. поэтому, если я введу ‘177 7’, он вернет «Нет», как и ожидалось, так же, как если бы я ввел 771 7. Но если я введу, например:

 717 7   

он возвращает «Джекпот!», когда этого не должно быть. Есть какие-нибудь советы о том, что я мог бы сделать? Как я могу позволить своему коду прочитать 2-й символ целого числа, чтобы он вернул соответствующий ответ?

Ответ №1:

Это должно сработать:

 all([b == int(digit) for digit in str(a)])  

Это в основном проверит, что все цифры равны данной цифре b .

Ответ №2:

Из-за приоритета оператора равенство проверяется только для последнего целого символа.

 # Equality checked for a[-1] == b only if a[0] and a[1] and a[-1] == b:  print("Jackpot!")  

Для проверки всех трех целых символов используйте:

 if (a[0] == b) and (a[1] == b) and (a[-1] == b):  print("Jackpot!")  

Ответ №3:

Я не уверен, какую логику вы использовали. Но для обработки этого вы можете использовать наборы. Например -gt;

 set(string2) == set(string1)