#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)