You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字符串三角打印图案多词输入异常问题求助

修复带空格字符串的三角打印问题

你的判断完全正确——str.replace()会替换字符串中所有匹配的字符,而不是只删除最后一个。比如输入"Elvis Presley"时,第一次调用replace删除末尾空格,会把字符串里所有空格都删掉,直接变成"ElvisPresley",后续删除其他重复字符时也会误删,自然输出异常。

修复方案

用字符串切片替代replace来操作末尾字符,切片string[:-1]可以精准获取原字符串去掉最后一个字符的子串,不会影响其他位置的相同字符。同时调整下半部分的循环逻辑,避免冗余执行。

修改后的完整代码

string = input("Please enter your word: ")
# 打印上半三角
printable = ""
for char in string:
    printable += char
    print(printable)

# 打印下半三角(跳过完整字符串本身)
current = string[:-1]
while current:
    print(current)
    current = current[:-1]

代码说明

  • 上半部分:直接遍历输入字符串的每个字符,逐步拼接并打印,逻辑和原代码一致但更简洁易读。
  • 下半部分:从原字符串去掉最后一个字符开始,每次打印后再截掉当前字符串的最后一个字符,直到字符串为空停止。用切片[:-1]精准操作,彻底解决了replace的误删问题。

测试输入"Elvis Presley",输出会是符合预期的三角图案:

E
El
Elv
Elvi
Elvis
Elvis 
Elvis P
Elvis Pr
Elvis Pre
Elvis Pres
Elvis Presl
Elvis Presle
Elvis Presley
Elvis Presle
Elvis Presl
Elvis Pres
Elvis Pre
Elvis Pr
Elvis P
Elvis 
Elvis
Elvi
Elv
El
E

内容的提问来源于stack exchange,提问作者ddoch003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:01:44