在 Python 中接受用户输入时只允许字母
Only allow letters when taking user Input in Python
在接受用户输入时只允许字母:
- 使用
while
循环迭代,直到用户只输入字母。 - 使用该
str.isalpha()
方法检查用户是否只输入了字母。 - 如果满足条件,则跳出循环。
user_input = '' while True: user_input = input('Enter letters only: ') if not user_input.isalpha(): print('Enter only letters') continue else: print(user_input) break
我们使用while
循环进行迭代,直到用户只输入字母。
continue
该continue
语句继续循环的下一次迭代。
如果字符串中的所有字符都是字母且至少有一个字符,则str.isalpha()
方法返回,否则返回。True
False
print('avocado'.isalpha()) # 👉️ True # 👇️ contains space print('one two'.isalpha()) # 👉️ False
如果用户只输入字母,我们打印输入值并跳出循环。
break
语句跳出最内层的封闭或
for
循环while
。
输入函数接受一个可选prompt
参数并将其写入标准输出而没有尾随换行符。
或者,您可以使用正则表达式。
import re user_input = '' while True: user_input = input('Enter letters only: ') if not re.match(r'^[a-zA-Z]+$', user_input): print('Enter only letters') continue else: print(user_input) break
该代码片段实现了相同的结果,但使用了正则表达式来验证用户输入。
如果您还想允许空格,请改用以下正则表达式。
import re user_input = '' while True: user_input = input('Enter letters only: ') # 👇️ also allows spaces if not re.match(r'^[a-zA-Z\s]+$', user_input): print('Enter only letters') continue else: print(user_input) break
The re.match method
returns a match
object if the provided regular expression is matched in the
string.
The match
method returns None
if the string does not match the regex
pattern.
The first argument we passed to the re.match
method is a regular expression.
The square brackets []
are used to indicate a set of characters.
a-z
and A-Z
characters represent lowercase and uppercase ranges of letters.The caret ^
matches the start of the string and the dollar sign $
matches
the end of the string.
The plus +
causes the regular expression to match 1 or more repetitions of the
preceding character (the letter ranges).
import re user_input = '' while True: user_input = input('Enter letters only: ') # 👇️ also allows spaces if not re.match(r'^[a-zA-Z\s]+$', user_input): print('Enter only letters') continue else: print(user_input) break
该\s
字符匹配 unicode 空白字符,如 [ \t\n\r\f\v]
.
如果用户不只输入字母,我们使用continue
语句提示他们再次输入。
否则,我们使用break
语句跳出while
循环。
如果您在阅读或编写正则表达式时需要帮助,请参阅官方文档中的
正则表达式语法
副标题。
该页面包含所有特殊字符的列表以及许多有用的示例。