Застрял на следующем генераторе писем - Python 3

В настоящее время я беру некоторые уроки информатики онлайн. Мне было поручено написать программу, которая после правильного ввода напечатает следующую букву в алфавите. Вот мой код:

char = input()
ordchar = ord(char)
nextletter = ordchar + 1
nextletter = chr(nextletter)

if nextletter == ("["):
    print("A")

if nextletter == ("{"):
    print("a")

if nextletter!=("[","{"):
    print(nextletter)

Теперь я вижу проблему с кодом, хотя я не знаю, как его исправить. По сути, от второй до последней строки кода я хочу, чтобы он по существу говорил: "если next letter не равен {или [ print nextletter" ".

5 ответов

if nextletter not in ["[", "{"]:
    print(nextletter)

Вам не нужно проверять эти символы вообще. В коде перед этим вы убедитесь, что nextletter никогда не будет [ или же {, если вы просто назначите другое письмо nextletter там:

if nextletter == "[":
    nextletter = "A"
elif nextletter == "{":
    nextletter = 'a'

Если вам все еще нужно сделать такой тест, используйте not in оператор:

if nextletter not in '[{':

not in возвращается True если левый операнд отсутствует в последовательности справа. В моем примере я использовал строку с двумя символами, которая считается последовательностью:

>>> '[' in '[{'
True
>>> '0' in '[{':
False

Использование not in членство оператора:

if nextletter not in ("[","{"):
    print(nextletter)

Также обратите внимание, что вы можете избежать третьего теста, если вы использовали if-elif построить, а не индивидуальный if's, Таким образом, вы можете просто поместить третью часть в else блок.

Проблема заключается в том, что вы спрашиваете, не соответствует ли nextletter кортежу ("[","{"), Вы хотели спросить, не равно ли оно "[" или "{". Поэтому вы должны спросить,if nextletter != "[" and nextletter != "{"Это проверит, не является ли это ни "[", ни "{". Надеюсь это поможет

В то время как другие ответы верны, правильный способ сделать то, что вы хотите, это использовать elifа также else:

if nextletter == ("[") :
    print("A")
elif nextletter == ("{") :
    print("a")
else :
    print(nextletter)
Другие вопросы по тегам