我试图通过对数组中的每个字符进行大写操作来操作一个单词,但是当涉及到具有两个相同字符的单词时,它会使它们都大写而不是只有一个。不是程序员只是想学习python。预先感谢!
answer = raw_input("What is your word? ")
x = 0
answerWord = ''.join(answer)
while (x < len(answer)):
if (answerWord[x] != answerWord[x].upper()):
letter = answerWord.replace(answer[x], answer[x].upper())
print letter
x = x + 1
What is your word? boot
Boot
bOOt
bOOt
booT
What is your word? crazy
Crazy
cRazy
crAzy
craZy
crazY
答案 0 :(得分:0)
answerWord.replace('X', 'Y')
会在您的字符串中将X
的所有实例替换为Y
。因此,程序的第6行将使用整个单词answerWord
,并将其当前正在考虑的字母的所有实例替换为其大写的等效项。
从您的变量名称看来,您希望变量letter
是单个字母,而不是整个单词。也许你的意思是第6行读取类似的内容:
letter = answer[x].upper()
玩得开心!
答案 1 :(得分:0)
for i in range(len(answer)):
print answer[0:i]+answer[i].upper()+answer[i+1:]
答案 2 :(得分:0)
answer = raw_input("What is your word? ")
for char in range(len(answer)):
letter = answer[0:char] + answer[char].upper() + answer[char+1:]
print letter
那应该做的事情,它将每个字母逐个更改为大写,然后打印它们。此外,在您的示例中,如果您使用一个已经包含大写字母的单词(例如'Peanuts'),则会引发错误,因为“if”句子不是True,因此letter
将是未定义。
如果你想要大写字母变成小写,小写字母变成大写,或者等等,请使用:
answer = raw_input("What is your word? ")
for char in range(len(answer)):
if answer[char] == answer[char].lower():
letter = answer[0:char] + answer[char].upper() + answer[char+1:]
else:
letter = answer[0:char] + answer[char].lower() + answer[char+1:]
print letter
另请注意,如果您不打算将letter
用于打印以外的任何其他内容,则只需用打印件替换两个字母定义,然后完全删除print letter
if answer[char] == answer[char].lower():
print answer[0:char] + answer[char].upper() + answer[char+1:]
else:
print answer[0:char] + answer[char].lower() + answer[char+1:]