当前位置:首页>python>Python教程(43)智能问答机器人 —— 字符串清洗的妙用

Python教程(43)智能问答机器人 —— 字符串清洗的妙用

  • 2026-09-02 17:01:48
Python教程(43)智能问答机器人 —— 字符串清洗的妙用

你好,我是雨霖八珞,同名B站UP主。关注合集不迷路。以下内容为个人教学,真诚分享,欢迎交流。

上几篇我们学了字符串的基本操作和格式化输出,今天来学字符串的 “专属方法”。

所谓“方法”,就是字符串自带的一些小工具,能帮我们快速处理文本。

调用方法的统一格式是:

字符串.方法名()

先看一个智能问答机器人案例

假设你做了一个“智能问答机器人”,不管用户怎么问,机器人都能回答预设的问题:

程序代码如下:

预期是:
  • 用户输入hello,
    输出🤖:Hello! Nice to meet you!
  • 用户输入how are you,输出🤖:I'm fine, thank you!
  • 用户输入bye,输出🤖:Bye! See you!,并且退出
  • 用户输入其他,输出🤖:Sorry, I don't understand.
运行效果如下:
可以看到,用户在输入how are you的时候,输出正常,但如果用户输入How are you,也就是首字母大写时,程序认不出来了。

因为"How are you" 不等于 "how are you",大小写不一样,Python 觉得它们是两个不同的字符串。

如果用户输入 HELLO、HOW ARE YOU、Hello 呢?都会认不出来。

如果聊天这么死板,确实有些不合适。

怎么办?—— 把所有输入统一转成小写再比较。

大小写转换lower() 和 upper()

lower() 可以把字符串里的所有英文字母变成小写。

举个例子

用 lower() 改造机器人:

你会发现,运行后,不管输入 how are you、How are you、HOW ARE YOU、hOw ArE YoU,全部都能匹配。

同样,如果想把字母全部转成大写,用 upper()

注意:lower()和upper()后面的()不能省略。

去掉字符串两端的空格strip()

大小写的问题解决了,但用户还可能多按空格。

比如输入了 " how are you "(前后有空格),空格也是字符,所以前后带空格的字符串和前后不带空格的字符串是不一样的。

可以用 strip() 去掉两端的空格。

继续用 strip() 改造机器人:

注意:strip() 只去掉两端的空格,中间的空格不会动。"how are you" 中间的多个空格不会被去掉。

来一个中文版本

上面我们用了英文,但有的小伙伴可能更习惯中文。

中文版本有一个问题:中文没有大小写,lower() 对中文不起作用。

但中文用户可能输入时会加多余文字,比如:

用户输入 "你好呀",机器人想匹配 "你好"

用户输入 "你叫什么名字",机器人想匹配 "你叫什么"

这时候,我们不需要用户输入完全等于预设词,只需要包含预设词就行。

这时,就需要用到in了。

in 用来判断一个字符串是否包含另一个字符串。

程序改写如下:

运行结果如下:

你会发现,即使用户输入的内容不是精确匹配“你好”,只要包含“你好”,也可以输出预期内容。

小结

今天我们学了三个字符串方法和一个关键字:

字符串还有其他方法,每种方法都能完成一种功能。以后我们将通过具体的案例来熟悉字符串常用的方法。

本公众号内容均为原创。如需转载或引用,请先联系我。谢谢你的尊重。

觉得不错的话,伙伴们记得关注、在看、转发和点赞哈!

最新文章

随机文章