如何正确地将字符串文字连接到字符串变量并重新分配给变量

时间:2019-05-26 16:31:08

标签: python-3.x string-concatenation

我正在尝试将字符串文字连接到字符串变量,然后将此值重新分配给同一变量。

我已经尝试过+=运算符和类似

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 个答案:

答案 0 :(得分:2)

首先,我认为您打算执行wordWithoutVowels += letter,而不是整个userWord。其次,该表达式与wordWithoutVowels = wordWithoutVowels + userWord相同,这意味着wordWithoutVowels必须先定义。

只需在for循环之前添加以下内容

wordWithoutVowels = ''

编辑:

如@DeveshKumarSingh所述,您可以通过使用以下if条件而不是使用continue

来进一步改善循环
if letter not in ['A','E','I','O','U']:
    wordWithoutVowels += letter 

答案 1 :(得分:2)

您的代码存在一些问题

  • 您没有在for循环之前初始化wordWithoutVowels。您需要使用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