def translate(phrase):
translation= ""
for letter in phrase:
if letter.lower() in "aeiou":
if letter.isupper():
translation = translation + "G"
else:
translation = translation + "g"
else:
translation = translation + letter
return translation
print(translate(input("Enter a phrase: ")))
(Это программа для смены гласных букв на букву 'g' или 'G' в зависимости от того, идет ли она в верхнем или нижнем регистре)
Почему это работает? Поскольку существует функция letter.lower (), не должна ли она преобразовать эту букву в строчную? таким образом, следующее выражение if ("if letter.isupper ():") никогда не будет верным ...
Я в замешательстве, потому что знаю только C и пытаюсь выучить Python. В C, если бы я это сделал, он преобразовал бы буквенную переменную в строчную, поэтому следующий оператор if никогда не будет истинным. Я предполагаю, что функции внутри, если операторы в Python не изменяют / изменяют переменные внутри тех же функций ...? Но опять же, для меня это не имело бы смысла ... Что я не так думаю?