凯鲁嘎吉
用书写铭记日常,最迷人的不在远方

Python小练习:处理字符串

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

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

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 # 字符串对齐
32 # 使用了 rjust() 方法来对键值对进行右对齐
33 # 使用了 format() 方法来对键值对进行左对齐
34 # 使用了 round() 函数来对结果进行四舍五入
35 def format_for_process(params):
36     new_params = []
37     for k, v in params.items():
38         k = k.rjust(18)  # 右对齐
39         # rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。
40         v = '{:<12}'.format(round(v, 6))[:12]  # 左对齐,并且保留6位小数
41         new_params.append([k, v])
42     return new_params
43 
44 word = 'agent'
45 print(word, '->', _plural(word))  # 输出:agents
46 word = 'policy'
47 print(word, '->', _plural(word))  # 输出:policies
48 word = 'lynx'
49 print(word, '->', _plural(word))  # 输出:lynxes
50 word = 'woman'
51 print(word, '->', _plural(word))  # 输出:women
52 print('-----------------------------------')
53 word = 'book_story'
54 print(word, '->', _under_score_to_camel(word))  # 输出:BookStory
55 word = 'activity'
56 print(word, '->', _under_score_to_camel(word))  # 输出:Activity
57 word = 'lynx_woman_hello'
58 print(word, '->', _under_score_to_camel(word))  # 输出:LynxWomanHello
59 print('-----------------------------------')
60 params={"name": 127.1234567587, "height": 185.123456789, "score": 10.123456852}
61 new_params = format_for_process(params)
62 print(new_params)

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
-----------------------------------
[['              name', '127.123457  '], ['            height', '185.123457  '], ['             score', '10.123457   ']]

Process finished with exit code 0

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

posted on 2023-04-06 08:49  凯鲁嘎吉  阅读(42)  评论(0编辑  收藏  举报