python isX 字符串方法

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

  • isalpha()返回 True,如果字符串只包含字母,并且非空;
  • isalnum()返回 True,如果字符串只包含字母和数字,并且非空;
  • isdecimal()返回 True,如果字符串只包含数字字符,并且非空;
  • isspace()返回 True,如果字符串只包含空格、制表符和换行,并且非空;
  • istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。

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

>>> '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。

你可能感兴趣的:(python)