我正在尝试大写由和输入给出的字符串的其他每个字母。由于某种原因,它给我错误“字符串索引超出范围”,我不知道为什么!范围设置为0到字符串的长度,所以我想不可能!
s = input('Please enter a string: ')
p=s.lower()
o=s.upper()
q=p
k=len(s)
l=1
for x in range(0,k):
if l%2==0:
q=q[x].swapcase()
l+=1
else:
l+=1
print(q)
答案 0 :(得分:2)
执行此操作时:
q=q[x].swapcase()
q
变成一个字母。
下次您尝试以下操作:
q[1]
但是没有q[1]
,因为您将它写成一个字母。
这是python鼓励您避免创建索引变量,而是循环遍历项本身的几个原因之一。如果这样做,并为变量赋予更多描述性名称,则更容易发现此类错误。例如:
s = input('Please enter a string: ')
lower_case = s.lower()
new_string = ""
for index, letter in enumerate(lower_case):
if index % 2 == 0:
new_string += letter.swapcase()
else:
new_string += letter
print(new_string)