正如标题所说,我如何检查一个输入字符串在Python中是否有另一个字符串中的字母?
字符串指定只能在输入字符串中使用字母A到G ('ABCDEFG')。然而,我的尝试并没有得到我想要的结果。相反,按顺序输入的字符串如'ABC'和'ABCD'可以工作,而按顺序输入的字符串如'BADD'和'EFEG'则不行。
请参考我下面的尝试。
ID = 'ABCDEFG'
addcode=input('Enter new product code: ')
Code = []
if addcode in ID:
Code.append(addcode)
print(Code)
else:
print("Product code is invalid")
理想情况下,只要输入字符串包含从A到G的字母,它应该被附加到'Code',而不管顺序如何。我如何修改我的代码,以便我可以得到我想要的结果?谢谢你。
您可以使用RegEx:
re.search('[a-zA-Z]', string)
您可以尝试将您的输入字符串(addcode)转换为一个集合,然后看看它是否是ID的子集。我没有将ID转换为一个集合,因为它包含唯一的元素,如您的代码:
ID = 'ABCDEFG'
addcode = input('Enter new product code: ')
Code = []
if set(addcode).issubset(ID):
Code.append(addcode)
print(Code)
else:
print("Product code is invalid")
如果你想使用基于RegEx的方法,你可以这样做:
import re
pattern = re.compile("^[A-G]+$")
addcode = input('Enter new product code: ')
Code = []
if pattern.findall(addcode):
Code.append(addcode)
print(Code)
else:
print("Product code is invalid")
检查输入字符串是否只包含A-G之间的字符A,B,C,D,E,F,G。如果存在匹配,则追加输入字符串并输出。
字符串不可变。您应该检查ID中是否存在每个产品代码字母。
为了达到这个目的,你可以使用ID作为元组而不是单个字符串。
ID = ('A','B','C','D','E','F','G')
addcode=input('Enter new product code: ')
Code = []
for l in range(0,len(addcode)):
if addcode[l] in ID:
Code.append(addcode[l])
else:
print("Product code is invalid")
print(Code)