🐸

名牌工坊

数据与文本工具python-data-tinkerer-07-the-name-formatter
奖励: 100 XP
|

名牌工坊

通过水晶门后,Hoppy 来到名牌工坊。这里的每块通行名牌都要先擦亮、看清标记,再挂到冒险背包上。前面你已经刷过边缘、换过小符文,也判断过字符串两头的信号。

现在桌上有一块还没整理好的名牌:" badge: hoppy-hopper "。这次不是新咒语课,而是一节轻 checkpoint:把前面学过的几个文字小动作串起来,做出一块真正能展示的名字。

先看一眼这串小动作会得到什么

这节课最重要的体验,不是学一个新名字,而是第一次把几步轻动作接起来:先清边缘,再看开头信号,最后把名牌整理成更适合展示的样子。

raw_label = "  badge: moss-runner  "

print("Before:", "[" + raw_label + "]")

clean_label = raw_label.strip()
has_badge_prefix = clean_label.startswith("badge:")
display_label = clean_label.replace("badge: ", "").replace("-", " ")

print("Starts with badge:", has_badge_prefix)
print("Display:", "[" + display_label + "]")

运行后,你会同时看到三件事:原始名牌前后还有空空的边、前缀判断是 True、最后展示出来的名字变成了 hoppy hopper。这就是本章前段的小回顾:边缘能先清,开头能先看,中间的小片段也能顺手修掉。

把熟悉动作串成一个轻组合

这一课不用再学新核心知识。你只是把已经见过的动作轻轻接起来:strip() 负责把首尾空白刷掉,startswith() 负责确认这块名牌是不是带着你要的开头,replace() 再把里面碍事的小片段换成更适合展示的样子。

以后当你拿到一条“差不多能用、但还没完全整理好”的文本时,可以先问自己:要不要先清边缘?要不要先看开头信号?要不要再把最后那一小块修顺?这节课先把这条轻链路练熟就够了。

1
找到三条占位线

starter 已经把原始名牌和输出行摆好了。你这次真正要补上的,是 clean_nameplatehas_badge_prefixdisplay_name 这三行。

2
先清边缘,再看开头

先用 raw_nameplate.strip() 得到干净一些的版本,再在这个清理后的字符串上用 startswith("badge:") 做轻判断。

3
把名牌整理成展示用名字

replace() 去掉 badge: 这块前缀,再把连字符 - 换成空格。运行后,对照 before / display,确认你真的把粗糙名牌整理成了能展示的版本。

为什么还要保留那个 True?

因为这节课不只是要做出最终名字,还要顺手确认:这条名牌本来是不是带着 badge: 这个开头信号。checkpoint 课要守住的,不只是最后结果,还有你会不会做这种轻判断。

参考答案
点击展开
参考答案:
raw_nameplate = "  badge: hoppy-hopper  "

print("Before:", "[" + raw_nameplate + "]")

clean_nameplate = raw_nameplate.strip()
has_badge_prefix = clean_nameplate.startswith("badge:")
display_name = clean_nameplate.replace("badge: ", "").replace("-", " ")

print("Starts with badge:", has_badge_prefix)
print("Display:", "[" + display_name + "]")
高级技巧
想更进一步?点击展开

程序员有时会把这种事叫做一次很小的“格式化整理”:把原始字符串收拾成更适合展示的版本。这里先不用学新的格式化语法,动作本身更重要。

这一章前段你已经刷过边缘、换过小片段、看过字符串边缘信号。现在你多带走一个判断就够了:当一条文本已经差不多能用时,很多时候只要把几下轻动作串起来,它就能变成一个更整齐的最终输出。

Loading...
终端输出
Terminal
Ready to run...