在一个inpu中对字母和数字进行Python输入验证

2024-06-09 17:12:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何对既有数字又有字母的NRIC号码进行输入验证? NRIC编号示例:S9738275G、S8937231H、S7402343B ic=输入('输入NRIC编号:')


Tags: 示例字母数字编号号码icnrics9738275g
3条回答

这可以用很多不同的方法来实现。根据应用程序的规模,您可能需要更简单或更复杂的内容。在

如果你想要一些坚如磐石的东西,你可以使用像Pygood这样的库。在

如果您在寻找中间的东西,也可以使用regex,请参阅这里的an example。在

如果您想让它尽可能简单,您可以执行如下简单的验证:

str = "B123"
if str[0].isalpha() and not str[1:].isalpha():
    # is valid

对于您的用例,这就足够了:

>>> a = 'A12345678B'
>>> if a[0].isalpha() and a[-1].isalpha() and a[1:-1].isdigit(): print True
... 
True
>>> a = 'A12345678'
>>> if a[0].isalpha() and a[-1].isalpha() and a[1:-1].isdigit(): print True
... 
>>> 

[0]第一个字符,[-1]最后一个字符,[1:-1]第二个字符到最后一个字符

编辑:看看pm2ring的评论,NRIC号码有一个特定的结构和创建校验位/字符的特定方法,所以我将遵循提供的链接中给出的代码。假设您的NRIC号码显然是相同的,因为您没有说明它是什么。
有趣的是:“计算NRIC校验和的算法并不是公开的”维基百科

试试这个

string = 'S9738275G';

if string.isalnum():
    print('It\'s alphanumeric string')
else:
    print('It\'s not an alphanumeric string')

相关问题 更多 >