如何在Python中以金字塔形状显示文本?
问题分析与解决
你的代码逻辑错误在于嵌套循环的设计:内层for循环会逐个打印字符串的每个字符,且i在for循环内累加,导致循环执行逻辑混乱,无法按行输出前n个字符的效果。
正确实现方式
方法1:使用for循环(推荐)
利用字符串切片特性,直接截取前n个字符并打印:
inp = input('Enter something: ') # 遍历1到字符串长度(包含)的所有整数 for n in range(1, len(inp) + 1): # 截取字符串的前n个字符并打印 print(inp[:n])
方法2:使用while循环
如果偏好while循环,调整逻辑如下:
inp = input('Enter something: ') length = len(inp) i = 1 while i <= length: print(inp[:i]) i += 1
原理说明
Python中字符串切片inp[:n]表示从字符串开头(索引0)截取到索引n-1的位置,刚好对应前n个字符。每循环一次就增加截取的长度,从而实现逐行递增的金字塔效果。
内容的提问来源于stack exchange,提问作者Adil M
相关产品推荐
相关产品推荐

