Как правильно объединить строковый литерал в строковую переменную и переназначить переменную - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь объединить строковый литерал в строковую переменную и переназначить это значение той же переменной.

Я пробовал оператор += и что-то вроде

string = string + "another string"

но это не работает.

Вот мой код.

userWord = input("Enter a word: ").upper()

# Prompt the user to enter a word and assign it to the userWord variable


for letter in userWord:
    # Loops through userWord and concatenates consonants to wordWithoutVowels and skips vowels
    if letter == "A" or letter == "E" or letter == "I" or letter == "O" or letter == "U":
        continue
    wordWithoutVowels += userWord # NameError: name "wordWithoutVowels" is not defined

print(wordWithoutVowels)

Ответы [ 2 ]

2 голосов
/ 26 мая 2019

Некоторые проблемы с вашим кодом

  • Вы не инициализируете wordWithoutVowels перед циклом for.Это необходимо сделать с помощью wordWithoutVowels = ''

  • . Вы можете использовать оператор in, чтобы проверить, нет ли буквы в гласных, и затем обновить только строку результата

    .

Обновленный код будет

userWord = input("Enter a word: ").upper()

#Initialize wordWithoutVowels
wordWithoutVowels = ''
for letter in userWord:
    #If letter does not fall in vowels, append that letter
    if letter not in ['A','E','I','O','U']:
        wordWithoutVowels += letter 

print(wordWithoutVowels)

Выход будет

Enter a word: hello world
HLL WRLD
2 голосов
/ 26 мая 2019

Во-первых, я думаю, что вы намеревались сделать wordWithoutVowels += letter, а не все userWord. Во-вторых, это выражение совпадает с wordWithoutVowels = wordWithoutVowels + userWord, что означает, что wordWithoutVowels должно быть определено перед ним.

Просто добавьте следующее перед for loop

wordWithoutVowels = ''

Изменить:

Как упоминалось @DeveshKumarSingh, вы можете дополнительно улучшить цикл, используя следующее условие if вместо использования continue

if letter not in ['A','E','I','O','U']:
    wordWithoutVowels += letter 
...