Python进阶之路 is开头的字符串方法

is开头的字符串方法(可用来检测用户输入验证是否符合要求)

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

  • isalpha()返回True,如果字符串只包含字母,并且非空;
  • isalnum()返回True,如果字符串只包含字母或数字,并且非空;
  • isdecimal()返回True,如果字符串只包含数字字符,并且非空;
  • isspace()返回True,如果字符串只包含空格、制表符和换行,并且非空;
  • istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
spam = ['hello','hello123','123',' ','Hello','HeLlo','Hello123','Hello world']

print(spam[0].isalpha())    #True
print(spam[1].isalpha())    #False
print(spam[1].isalnum())    #True
print(spam[0].isalnum())    #True
print(spam[2].isdecimal())  #True
print(spam[3].isspace())    #True
print(spam[-1].istitle())   #False
print(spam[-2].istitle())   #True
print(spam[4].istitle())    #True
print(spam[-3].istitle())   #False

如果需要验证用户输入,这个字符串方法是非常有用的。例如,下面的程序反复询问用户年龄和密码,直到用户提供有效的输入。

while True: # 创建一个无限循环
    print('今年你多少岁:')
    age = input()
    if age.isdecimal(): # 验证用户输入的值是否只包含数字
        print('你今年的年龄是:' + age + '岁.')  # 如果只包含数字,就输出这段代码
        break
    print('对不起,你输入的年龄格式有误,请重新输入。')  # 如果包含的不是数字,就输出这段代码


while True: # 创建一个无限循环
    print('请输入你的密码(密码以字母或数字输入):')
    password = input()
    if password.isalnum():  # 验证用户输入的值是否只包含字母或数字
        print('登录成功')   # 如果只包含字母或数字,输出这段代码
        break
    else:
        print('你输入的密码有误,请重新输入。')    # 如果包含的不是字母或数字,就输出这段代码

在第一个while循环中,我们要求用户输入年龄,并将输入保存在age中。如果age的有效值是(数字),我们就跳出第一个while循环,转向第二个循环,让用户输入密码。如果用户在第一个while循环输入的不是数字,那么会继续让用户输入年龄(数字),直到用户输入对的年龄(数字)才会结束循环。否则将永远执行第一个循环。

在变量上调用isdecimal()和isalnum()方法,我们就能够让用户按我们指定的类型来进行输入,例如,年龄,用户只能输入数字(而且必须为正整数),输入的不是数字,将提示输入的年龄格式有误,重新输入。

你可能感兴趣的:(Python,Python进阶之路,Python,is开头的字符串方法,教程)