【发布时间】:2021-05-26 15:17:12
【问题描述】:
我编写了这个循环来打印任何输入字符串,从它的最后一个索引到每个单独的行上的第一个索引。但是当我运行它时,从技术上讲,它只有在字符串全部为小写时才能正常工作。它不适用于大写字符串。在这两种情况下,输入字符串都是大写或小写,以下输出显示带有我不知道的回溯:
输出:
C:\Users\CM-Ajk\PycharmProjects\Pract\venv\Scripts\python.exe C:/Users/CM-Ajk/PycharmProjects/Pract/main.py
Enter: emadd
d
d
a
m
e
Traceback (most recent call last):
File "C:\Users\CM-Ajk\PycharmProjects\Pract\main.py", line 166, in <module>
print(name[i-1])
IndexError: string index out of range
Process finished with exit code 1
代码:
i = 0
name = input("Enter: ")
while True:
print(name[i-1])
i = i-1
【问题讨论】:
-
您的
while True循环何时停止...? -
另外:
print(*name[::-1], sep='\n')获得相同的结果(无错误)。 -
我把它写成 while len(name) > i : 一开始,但它没有任何区别,所以我把它改成了 true。
-
len(name)总是比i多一。'emadd'的len是5,但最后一个有效索引是4...您还从0向下递减i,所以,是的,len始终是> i。
标签: python python-3.x loops while-loop