除了 islower()和 isupper(),还有几个字符串方法,它们的名字以 is 开始。这些方法返回一个布尔值,描述了字符串的特点。下面是一些常用的 isX 字符串方法:
在交互式环境中输入以下代码:
>>> 'hello'.isalpha()
True
>>> 'hello123'.isalpha()
False
>>> 'hello123'.isalnum()
True
>>> 'hello'.isalnum()
True
>>> '123'.isdecimal()
True
>>> ' '.isspace()
True
>>> 'This Is Title Case'.istitle()
True
>>> 'This Is Title Case 123'.istitle()
True
>>> 'This Is not Title Case'.istitle()
False
>>> 'This Is NOT Title Case Either'.istitle()
False
如果需要验证用户输入,isX 字符串方法是有用的。例如,下面的程序反复询问用户年龄和口令,直到他们提供有效的输入。打开一个新的文件编辑器窗口,输入以下程序,保存为 validateInput.py:
while True:
print('Enter your age:')
age = input()
if age.isdecimal():
break
print('Please enter a number for your age.')
while True:
print('Select a new password (letters and numbers only):')
password = input()
if password.isalnum():
break
print('Passwords can only have letters and numbers.')
在第一个 while 循环中,我们要求用户输入年龄,并将输入保存在 age 中。如果 age 是有效的值(数字),我们就跳出第一个 while 循环,转向第二个循环,询问口令。否则,我们告诉用户需要输入数字,并再次要求他们输入年龄。在第二个while 循环中,我们要求输入口令,客户的输入保存在 password 中。如果输入是字母或数字,就跳出循环。如果不是,我们并不满意,于是告诉用户口令必须是字母或数字,并再次要求他们输入口令。
如果运行,该程序的输出看起来如下:
Enter your age:
forty two
Please enter a number for your age.
Enter your age:
42
Select a new password (letters and numbers only):
secr3t!
Passwords can only have letters and numbers.
Select a new password (letters and numbers only):
secr3t
在变量上调用 isdecimal()和 isalnum(),我们就能够测试保存在这些变量中的值是否为数字,是否为字母或数字。这里,这些测试帮助我们拒绝输入 forty two,接受 42,拒绝 secr3t!,接受 secr3t。