在 Python 中只接受来自用户输入的单个字符

目录

Only accept a single character from user Input in Python

  1. 在 Python 中只接受来自用户输入的单个字符
  2. 在 Python 中接受用户输入时只有字母

在 Python 中只接受来自用户输入的单个字符

只接受用户输入的单个字符:

  1. 使用while循环迭代,直到用户输入单个字符。
  2. 如果用户输入单个字符,则使用该break语句跳出循环。
  3. 如果不满足条件,则再次提示用户。
主程序
user_input = '' while True: user_input = input('Enter a single character: ') if len(user_input) == 1: print(user_input) break else: print('Enter a single character to continue.') continue # 👇️ if you need to convert the character to lower or uppercase print(user_input.lower()) print(user_input.upper())

输入只接受一个字符

我们使用while循环进行迭代,直到用户输入单个字符。

if语句使用该len()函数来检查用户是否输入了单个字符。

len ()函数返回对象的长度(项目数)。

主程序
print(len('a')) # 👉️ 1 print(len('ab')) # 👉️ 2
该函数采用的参数可以是序列(字符串、元组、列表、范围或字节)或集合(字典、集合或冻结集合)。

如果用户输入单个字符,我们使用break语句退出循环。

主程序
user_input = '' while True: user_input = input('Enter a single character: ') if len(user_input) == 1: print(user_input) break else: print('Enter a single character to continue.') continue

break语句跳出最内层的for 或 while循环

如果用户输入零个或多于 1 个字符,我们会再次提示他们。

continue 语句继续
循环的下一次迭代。

在循环中验证用户
输入while时,我们使用
continue输入无效时的语句。

如果输入有效,我们使用break语句退出循环while

只接受来自用户输入的单个字母

str.isalpha()如果您只想允许用户输入单个字母,请使用该方法。

主程序
user_input = '' while True: user_input = input('Enter a single letter: ') if len(user_input) == 1 and user_input.isalpha(): print(user_input) break else: print('Enter a single letter to continue.') continue

输入只接受一个字母

我们使用了布尔 AND
运算符,因此要
if运行该块,必须同时满足这两个条件。

如果字符串中的所有字符都是字母且至少有一个字符,则str.isalpha ()方法返回,否则返回。TrueFalse

主程序
print('a'.isalpha()) # 👉️ True print('1'.isalpha()) # 👉️ False

如果用户输入一个字母,if块运行,我们退出循环
while,否则,我们再次提示用户。

在 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
如果您还想允许空格,请向下滚动到最后一个代码片段。

If the user entered only letters, we print the input value and break out of the
loop.

The break statement breaks out of the
innermost enclosing for or while loop.

The input function takes an optional prompt
argument and writes it to standard output without a trailing newline.

# Only allow letters when taking user Input using regex

Alternatively, you can use a regular expression.

main.py
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

The code snippet achieves the same result but uses a regular expression to
validate the user input.

# Only allowing letters and spaces when taking user input

If you also want to allow spaces, use the following regular expression instead.

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

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

The \s character matches Unicode whitespace characters like [ \t\n\r\f\v].

If the user didn’t enter only letters, we use the continue statement to prompt
them for input again.

Otherwise, we use the break statement to break out of the while loop.

If you ever need help reading or writing a regular expression, consult the
regular expression syntax
subheading in the official docs.

The page contains a list of all of the special characters with many useful
examples.

# Additional Resources

You can learn more about the related topics by checking out the following
tutorials: