目录
Only accept a single character from user Input in Python
在 Python 中只接受来自用户输入的单个字符
只接受用户输入的单个字符:
- 使用
while
循环迭代,直到用户输入单个字符。 - 如果用户输入单个字符,则使用该
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 # 👇️ 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 ()方法返回,否则返回。True
False
print('a'.isalpha()) # 👉️ True print('1'.isalpha()) # 👉️ False
如果用户输入一个字母,if
块运行,我们退出循环
while
,否则,我们再次提示用户。
在 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
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.
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.
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
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: