Python实现姓名递增图案打印:新手代码错误排查求助
你的代码存在这些问题:
- 错误使用
split()处理输入:输入的姓名是连续字符串(比如"WORLD"),split()会按空格分割成列表,若输入无空格,得到的列表仅含1个元素,外层循环只会执行1次,根本无法输出多行递增图案。应该直接使用原输入字符串的长度,无需分割。 - 变量名重复覆盖:你用
s接收输入的姓名后,内层循环又用s作为循环变量,这会直接覆盖掉原本存储姓名的字符串,后续完全无法访问输入的姓名内容。 - 内层循环逻辑错误:当前内层循环打印的是循环变量的数字值,而非姓名里的字符。正确逻辑应该是提取姓名的前
m个字符,组成每一行的内容。 - 打印格式错误:内层循环的
print(s)每次都会换行,导致输出都是单独一行的数字,而非连在一起的字符。应该把每一行的字符拼接好后一次性打印,或者用print(字符, end='')控制不换行,最后再换行。
修正后的示例代码:
name = input("Enter your name: ") # 遍历1到姓名长度的所有数值,依次打印前1、2...n个字符 for i in range(1, len(name)+1): print(name[:i])
内容的提问来源于stack exchange,提问作者REVA
相关产品推荐
相关产品推荐

