初识Python之字符串操作之有用的字符串方法

关注公众号:Python互助小组
一起学习,共同进步
里面有不定期的赠书活动哦
公众号:Python互助小组 或者搜索python_group

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

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

spam = 'Hello world!'
spam = spam.upper()
print(spam)
spam = spam.lower()
print(spam)

输出

HELLO WORLD!
hello world!

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

如果字符串至少有一个字母,并且所有字母都是大写或小写,isupper()和islower()方法就会相应地返回布尔值 True。否则,该方法返回 False。

spam = 'Hello world!'
print(spam.islower())
print(spam.isupper())
print('HELLO'.isupper())
print('abc12345'.islower())
print('12345'.islower())
print('12345'.isupper())
False
False
True
True
False
False
isX 字符串方法

除了 islower()和 isupper(),还有几个字符串方法,它们的名字以 is 开始。这些方法返回一个布尔值,描述了字符串的特点。下面是一些常用的 isX 字符串方法:

isalpha()返回 True,如果字符串只包含字母,并且非空

  • isalnum()返回 True,如果字符串只包含字母和数字,并且非空

  • isdecimal()返回 True,如果字符串只包含数字字符,并且非空

  • isspace()返回 True,如果字符串只包含空格、制表符和换行,并且非空

  • istitle()返回 True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词

      # 字符串只包含字母,并且非空;
      print('hello'.isalpha())
      print('hello123'.isalpha())
      
      # 只包含字母和数字,并且非空
      print('hello123'.isalnum())
      print('hello'.isalnum())
      
      # 只包含数字字符,并且非空;
      print('123'.isdecimal())
      
      # 只包含空格、制表符和换行,并且非空
      print(' '.isspace())
      
      # 仅包含以大写字母开头、后面都是小写字母的单词。
      print('This Is Title Case'.istitle())
      print('This Is Title Case 123'.istitle())
      print('This Is not Title Case'.istitle())
      print('This Is NOT Title Case Either'.istitle())
    

输出结果为:

True
False
True
True
True
True
True
True
False
False

之前的一个简单的小程序 初识Python之面向对象编程之使用类和实例 就可以使用str来进行改造一下

class Student():

    def __init__(self, name, age, classes, grade):
        self.name = name
        self.age = age
        self.classes = classes
        self.grade = grade

    # 升学
    def up(self):
        print('恭喜你', self.name, '你上学期的分数为', self.grade, '你可以升学了')
        print('姓名:', self.name)
        print('年龄:', self.age)
        print('年级:', self.classes)
        print('成绩:', self.grade)

    # 考试
    def test(self):
        if int(self.grade) < 60:
            print('分数小于60分, 不能升学')
            print('姓名:', self.name)
            print('年龄:', self.age)
            print('年级:', self.classes)
            print('成绩:', self.grade)
        else:
            if int(self.classes) >= 6:
                self.classes = '初中'
            else:
                self.classes = int(self.classes) + 1
            self.up()

while True:
    print('简单的升学小程序, 输入名字为exit 则退出, 否则会一直进行')
    a = input('你叫什么名字:')
    if a == 'exit':
        print('拜拜')
        break
    while True:
        b = input('今年多大了:')
        if b.isdecimal():
            break
        print('年龄不支持数字以外的字符, 请重新输入')

    while True:
        c = input('你现在几年级:')
        if c.isdecimal():
            break
        print('请输入纯数字文本, 请重新输入')

    while True:
        d = input('你考了多少分?')
        if d.isdecimal():
            break
        print('成绩不支持数字以外的字符, 请重新输入')

    student = Student(a, b, c, d)
    student.test()

因为input输入的字符都为默认的字符串类型,尽管是纯数字的也是字符串类型的。

所以在判断的时候需要用int转义一下

运行结果大致为:

简单的升学小程序, 输入名字为exit 则退出, 否则会一直进行
你叫什么名字:hcf
今年多大了:w
年龄不支持数字以外的字符, 请重新输入
今年多大了:12
你现在几年级:e
请输入纯数字文本, 请重新输入
你现在几年级:5
你考了多少分?r
成绩不支持数字以外的字符, 请重新输入
你考了多少分?88
恭喜你 hcf 你上学期的分数为 88 你可以升学了
姓名: hcf
年龄: 12
年级: 6
成绩: 88
简单的升学小程序, 输入名字为exit 则退出, 否则会一直进行
你叫什么名字:hcf
今年多大了:12
你现在几年级:6
你考了多少分?90
恭喜你 hcf 你上学期的分数为 90 你可以升学了
姓名: hcf
年龄: 12
年级: 初中
成绩: 90
简单的升学小程序, 输入名字为exit 则退出, 否则会一直进行
你叫什么名字:exit
拜拜
用 strip()、rstrip()和 lstrip()删除空白字符

在字符串的章节有过介绍不在介绍


关注公众号:Python互助小组
一起学习,共同进步
里面有不定期的赠书活动哦
公众号:Python互助小组 或者搜索python_group

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值