在 Python 中接受用户输入时只允许字母

在 Python 中接受用户输入时只允许字母

Only allow letters when taking user Input in Python

在接受用户输入时只允许字母:

  1. 使用while循环迭代,直到用户只输入字母。
  2. 使用该str.isalpha()方法检查用户是否只输入了字母。
  3. 如果满足条件,则跳出循环。
主程序
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()
方法返回,否则
返回。
TrueFalse

主程序
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.

The 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).

main.py
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循环。

如果您在阅读或编写正则表达式时需要帮助,请参阅官方文档中的
正则表达式语法
副标题。

该页面包含所有特殊字符的列表以及许多有用的示例。