Python小练习:处理字符串

发布时间 2023-04-06 08:52:14作者: 凯鲁嘎吉

Python小练习:处理字符串

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

介绍两种处理字符串的方式:1. 将英语名词单数转化为复数形式(仅适用于一般形式),2. 将字符串(带有下换线_)转化为驼峰化形式。

1. word_test.py

 1 # -*- coding: utf-8 -*-
 2 # Author:凯鲁嘎吉 Coral Gajic
 3 # https://www.cnblogs.com/kailugaji/
 4 # Python小练习:处理字符串
 5 
 6 # 名词的复数形式
 7 # 这是一个Python函数,用于将单词转换为其不同的形式。它接受一个单词作为参数,并返回该单词的不同形式。
 8 # 该函数首先检查单词是否以“y”结尾,如果是,则返回单词的前半部分,即“ies”。
 9 # 如果单词以“x”结尾,则返回单词的后半部分,即“es”。
10 # 如果单词以“an”结尾,则返回单词的前半部分,即“en”。
11 # 否则,返回单词本身,并在单词后添加“s”。
12 def _plural(word):
13     if word.endswith('y'):
14         return word[:-1] + 'ies'
15     elif word[-1] in 'sx' or word[-2:] in ['sh', 'ch']:
16         return word + 'es'
17     elif word.endswith('an'):
18         return word[:-2] + 'en'
19     else:
20         return word + 's'
21 
22 # 这段代码定义了一个名为_under_score_to_camel的函数
23 # 它接受一个参数word,并返回该字符串的驼峰化形式。
24 # 该函数使用了split方法将字符串按照_分割成多个部分,并将每个部分转换成大写形式
25 # 然后使用join方法将所有部分连接起来,形成驼峰化的形式。
26 def _under_score_to_camel(word):
27     parts = word.split('_')
28     parts = [p[0].upper() + p[1:] for p in parts]
29     return ''.join(parts)
30 
31 word = 'agent'
32 print(word, '->', _plural(word))  # 输出:agents
33 word = 'policy'
34 print(word, '->', _plural(word))  # 输出:policies
35 word = 'lynx'
36 print(word, '->', _plural(word))  # 输出:lynxes
37 word = 'woman'
38 print(word, '->', _plural(word))  # 输出:women
39 print('-----------------------------------')
40 word = 'book_story'
41 print(word, '->', _under_score_to_camel(word))  # 输出:BookStory
42 word = 'activity'
43 print(word, '->', _under_score_to_camel(word))  # 输出:Activity
44 word = 'lynx_woman_hello'
45 print(word, '->', _under_score_to_camel(word))  # 输出:LynxWomanHello

2. 结果

D:\ProgramData\Anaconda3\python.exe "D:/Python code/2023.3 exercise/time/word_test.py"
agent -> agents
policy -> policies
lynx -> lynxes
woman -> women
-----------------------------------
book_story -> BookStory
activity -> Activity
lynx_woman_hello -> LynxWomanHello

Process finished with exit code 0

后续如果有更多字符串处理的案例,还会继续补充完整。