casefold()方法——所有大写字符转换为小写

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

语法参考

casefold()方法是Python3.3版本之后引入的,其效果和lower()方法非常相似,都可以转换字符串中所有大写字符为小写。

两者的区别是:lower()方法只对ASCII编码,也就是‘A-Z’有效,而casefold()方法对所有大写(包括非中英文的其他语言)都可以转换为小写。casefold()方法的语法格式如下:

str.casefold()

返回将字符串中所有大写字符转换为小写后生成的字符串。

    快用锦囊

锦囊1  将字符串中的大写字母转换为小写

下面使用casefold()方法对输入的大写字母进行转换,代码如下:

while 1:  #循环输入

    str1=input('请输入英文:')

    print(str1.casefold())

运行程序,输出结果为:

请输入英文:MRSOFT

mrsoft

请输入英文:WWW.mingrisoft.com

www.mingrisoft.com

锦囊2  对非中英文的其他语言字符串中的大写转换为小写

例如,德语中的“ß”分别使用lower()方法和casefold()方法转换为小写,代码如下:

a = 'ß  Fußball'  #德语

print(a.lower()) 

print(a.casefold())

运行程序,输出结果为:

ß  fußball

ss  fussball

从以上结果看:lower()方法没有进行转换,而casefold()方法将“ß”转换为小写字母“ss”。因此,在对非中英文的其他语言字符串中的大写转换为小写时,应使用casefold()方法。

锦囊3  判断英文短句是否为“回文”

首先科普下“回文”。在中文中,相同的词汇或句子调换位置或颠倒过来,产生首尾回环的情趣,叫做回文。例如,“客上天然居,居然天上客”;心清可品茶,茶品可清心。而在英语中,回文是一种英语修辞手法。英语中最著名的一个回文,是拿破仑被流放到Elba岛时说的一句话:Able was I ere I saw Elba(在我看到Elba岛之前,我曾所向无敌),这句话不论是从左向右看,还是从右向左看,内容都一样。下面我们就用Python来检测一下,首先需要将英文统一转换为小写,然后再进行判断,否则会影响判断结果。代码如下:

cn='在我看到Elba岛之前,我曾所向无敌'

en = 'Able was I ere I saw Elba'

#转换为小写

en = en.casefold()

#反转字符串

rev_en = reversed(en)

print(cn)

print(en)

print(list(en))

print(list(reversed(en)))

#判断字符串是否为“回文”

if list(en) == list(rev_en):

    print('此句是回文!')

else:

    print('此句不是回文!')

运行程序,输出结果为:

在我看到Elba岛之前,我曾所向无敌

able was i ere i saw elba

['a', 'b', 'l', 'e', ' ', 'w', 'a', 's', ' ', 'i', ' ', 'e', 'r', 'e', ' ', 'i', ' ', 's', 'a', 'w', ' ', 'e', 'l', 'b', 'a']

['a', 'b', 'l', 'e', ' ', 'w', 'a', 's', ' ', 'i', ' ', 'e', 'r', 'e', ' ', 'i', ' ', 's', 'a', 'w', ' ', 'e', 'l', 'b', 'a']

此句是回文!

还有一句是关于巴拿马运河的:A man, a plan, a canal, Panama,判断该句应不仅要转换为小写,还要去标点符号、去空格,感兴趣的读者可自行尝试。

锦囊4  判断小写字母在所在字符串中出现的次数

首先将字符串中的英文字母转换为小写,然后进行统计,代码如下:

import string

#26个小写英文字母

chars = string. ascii_lowercase

print('26个小写英文字母:',chars)

str = 'WWW.mingrisoft.COM mingribook.Com mrbccd.Com'

print('原字符串:',str)

str = str.casefold()

c = {}.fromkeys(chars,0)

#统计小写字母出现的次数

for char in str:

    if char in c:

       c[char] += 1

print(c)

运行程序,输出结果为:

26个小写英文字母: abcdefghijklmnopqrstuvwxyz

原字符串: WWW.mingrisoft.COM mingribook.Com mrbccd.Com

{'a': 0, 'b': 2, 'c': 5, 'd': 1, 'e': 0, 'f': 1, 'g': 2, 'h': 0, 'i': 4, 'j': 0, 'k': 1, 'l': 0, 'm': 6, 'n': 2, 'o': 6, 'p': 0, 'q': 0, 'r': 3, 's': 1, 't': 1, 'u': 0, 'v': 0, 'w': 3, 'x': 0, 'y': 0, 'z': 0}

 

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子味冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值