python 字符串必须包含 1 个数字和 1 个字母
python string must contain 1 digit and 1 letter
我做了一个函数,需要在一个字符串中输入 2 个值。我正在尝试使输入必须包含 1 个数字和 1 个字母的组合。示例:3f 5h
我有以下代码,但我似乎无法让数字和 alpha 的条件正常工作。是不是因为.isdigit和.isalpha是关于所有字符的?
def chess(value1, value2):
if len(value1) == 2 and len(value2) == 2:
for char in value1, value2:
if char.isalpha() and char.isdigit():
print("Input is right format.")
else:
print("Input is NOT right format.")
else:
print("Input is NOT right format.")
value1, value2 = input('values: ') .split()
chess(value1, value2)
仅使用
if char.isalpha():
或
if char.isdigit():
似乎有效。但他们在一起没有。
检查 input
的长度是否为 2 的简单方法。
if len(a) == 2:
if (a[0].isdigit() and a[1].isalpha()) or ((a[1].isdigit() and a[0].isalpha())):
print('yes')
else:
print('no')
BrightOne 的回答非常有效:
您或许可以为此使用正则表达式。现在,您可以执行 value1[0].isalpha() 和 value1[1].isdigit() 等操作。
import re
def chess(value1, value2):
regex = "^\d[a-h]$"
return all([re.match(regex, s) for s in (value1, value2)])
\d[a-h]
将仅匹配 "abcfefgh" 中一位数字后跟一个字符。 ^
和 $
确保它只匹配长度为 2 的字符串。 re.match(regex, s) returns None 如果字符串 s 不匹配正则表达式
我假设你对我的回答一无所知,但你可以做这样的事情并编写一个函数来检查每个 space 是否有效。
def validSpaceFormat(space):
if len(space) == 2:
if space[0].isalpha() and space[1].isdigit():
return True
return False
def chess(value1, value2):
if validSpaceFormat(value1) and validSpaceFormat(value2):
print("Input correct.")
else:
print("Input wrong.")
value1, value2 = input('values: ').split()
chess(value1, value2)
这是假设人们总是输入动作 "X1 Y2"
isalpha()
和 isdigit()
仅适用于字符,因此您需要索引字符串中的每个字符以检查它是什么。
我做了一个函数,需要在一个字符串中输入 2 个值。我正在尝试使输入必须包含 1 个数字和 1 个字母的组合。示例:3f 5h 我有以下代码,但我似乎无法让数字和 alpha 的条件正常工作。是不是因为.isdigit和.isalpha是关于所有字符的?
def chess(value1, value2):
if len(value1) == 2 and len(value2) == 2:
for char in value1, value2:
if char.isalpha() and char.isdigit():
print("Input is right format.")
else:
print("Input is NOT right format.")
else:
print("Input is NOT right format.")
value1, value2 = input('values: ') .split()
chess(value1, value2)
仅使用
if char.isalpha():
或
if char.isdigit():
似乎有效。但他们在一起没有。
检查 input
的长度是否为 2 的简单方法。
if len(a) == 2:
if (a[0].isdigit() and a[1].isalpha()) or ((a[1].isdigit() and a[0].isalpha())):
print('yes')
else:
print('no')
BrightOne 的回答非常有效:
您或许可以为此使用正则表达式。现在,您可以执行 value1[0].isalpha() 和 value1[1].isdigit() 等操作。
import re
def chess(value1, value2):
regex = "^\d[a-h]$"
return all([re.match(regex, s) for s in (value1, value2)])
\d[a-h]
将仅匹配 "abcfefgh" 中一位数字后跟一个字符。 ^
和 $
确保它只匹配长度为 2 的字符串。 re.match(regex, s) returns None 如果字符串 s 不匹配正则表达式
我假设你对我的回答一无所知,但你可以做这样的事情并编写一个函数来检查每个 space 是否有效。
def validSpaceFormat(space):
if len(space) == 2:
if space[0].isalpha() and space[1].isdigit():
return True
return False
def chess(value1, value2):
if validSpaceFormat(value1) and validSpaceFormat(value2):
print("Input correct.")
else:
print("Input wrong.")
value1, value2 = input('values: ').split()
chess(value1, value2)
这是假设人们总是输入动作 "X1 Y2"
isalpha()
和 isdigit()
仅适用于字符,因此您需要索引字符串中的每个字符以检查它是什么。