当前位置:嗨网首页>书籍在线阅读

08-字符串方法upper()、lower()、isupper()和islower()

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.3.1 字符串方法upper()、lower()、isupper()和islower()

upper()lower() 字符串方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中的非字母字符保持不变。

在交互式环境中输入以下代码:

>>> spam = 'Hello, world!'
>>> spam = spam.upper()
>>> spam
'HELLO, WORLD!'
>>> spam = spam.lower()
>>> spam
'hello, world!'

请注意,这些方法没有改变字符串本身,而是返回一个新字符串。如果你希望改变原来的字符串,就必须在该字符串上调用 upper()lower() 方法,然后将这个新字符串赋给保存原来字符串的变量。这就是为什么必须使用 spam = spam.upper() ,才能改变 spam 变量中的字符串,而不是仅仅使用 spam.upper() (这就好比如果变量 eggs 中包含值10,写下 eggs + 3 并不会改变 eggs 变量的值,但是 eggs = eggs + 3 会改变 eggs 变量的值)。

如果需要进行与大小写无关的比较, upper()lower() 方法就很有用。字符串 'great''GREat' 彼此不相等。但在下面的小程序中,用户输入 GreatGREATgrEAT 都没关系,因为字符串首先被转换成小写:

print('How are you?')
feeling = input()
if feeling.lower() == 'great':
    print('I feel great too.')
else:
    print('I hope the rest of your day is good.')

在运行该程序时,先显示问题,然后输入变形的 great ,如 GREat ,程序将输出 I feel great too 。在程序中加入代码来处理多种用户输入或输入错误的情况,例如大小写不一致,这会让程序更容易使用,且更不容易失效:

How are you?
GREat
I feel great too.

可以在https://autbor.com/convertlowercase/上查看该程序的执行情况。如果字符串中含有字母,并且所有字母都是大写或小写,那么 isupper()islower() 方法就会相应地返回布尔值 True ;否则,该方法返回 False 。在交互式环境中输入以下代码,并注意每个方法调用的返回值:

>>> spam = 'Hello, world!'
>>> spam.islower()
False
>>> spam.isupper()
False
>>> 'HELLO'.isupper()
True
>>> 'abc12345'.islower()
True
>>> '12345'.islower()
False
>>> '12345'.isupper()
False

因为 upper()lower() 字符串方法本身返回字符串,所以也可以在那些返回的字符串上继续调用字符串方法。使用这种方式编写的表达式看起来就像方法调用链。在交互式环境中输入以下代码:

>>> 'Hello'.upper()
'HELLO'
>>> 'Hello'.upper().lower()
'hello'
>>> 'Hello'.upper().lower().upper()
'HELLO'
>>> 'HELLO'.lower()
'hello'
>>> 'HELLO'.lower().islower()
True