如何不使用第三方库接收列表输入并在终端打印对应图形
实现方案
你的现有逻辑是逐个处理输入的数值,为每个数值单独生成倒三角,因此会分段输出结果。你需要先对所有输入的数值求和,再以总和为最大值生成统一的倒三角,修改后的代码如下:
lst = [] n = int(input("Enter number of elements : ")) # 循环获取n个输入值 for i in range(0, n): ele = int(input('Enter Value :')) lst.append(ele) def up(): # 先计算所有输入值的总和 total = sum(lst) # 从总和开始倒序遍历到1,逐行打印 for temp in range(total, 0, -1): print('*' * temp + '/') up()
效果验证
输入2个值3和4时,总和为7,输出结果和你需要的预期完全一致:
*******/ ******/ *****/ ****/ ***/ **/ */
改动说明
- 移除了原有嵌套循环中对列表每个数值的单独处理逻辑,新增
total变量存储所有输入值的总和 - 直接使用
range(total, 0, -1)实现从总和到1的倒序遍历,简化了层级嵌套 - 用Python字符串乘法
'*' * temp替代内层循环打印星号,代码更简洁易读
内容的提问来源于stack exchange,提问作者Mohanl
相关产品推荐
相关产品推荐

