如何检查 for 循环中数字字符后的下一个字符是否是字母?

问题描述 投票:0回答:1

我正处于我的编程课程(职业转变)的开始阶段,所以如果这很简单,请耐心等待。我试图检查用户输入的字符串中间是否包含数字,因为它们必须出现在末尾。例如 XXX55 有效,XXX5X 无效。

s = input("Plate: ").upper()

for i in s:
  if i.isdigit():
    if i+1.isalpha():
       print("Invalid")

这是我尝试过的,但它不起作用我希望它检查每个字符是否是数字,如果为真则检查下一个字符是否是字母表。

python cs50
1个回答
1
投票

这取决于“确切”的规则是什么。如果字符串必须包含一个或多个数字并且它们必须出现在末尾,那么你可以这样做: s = "XXX5" v = "Invalid" for i, c in enumerate(s): if c.isdecimal(): try: int(s[i:]) v = "Valid" except ValueError: break print(v)

它的作用是逐步遍历字符串寻找第一个数字。如果没有找到,则 
v

不会改变,因此状态无效。如果我们确实找到了一个数字,我们就会从该点开始对字符串进行切片并尝试转换为 int。例如,如果字符串是 XX5X,我们将尝试将 5X 转换为 int,这显然会失败。 您也可以使用正则表达式,但因为您才刚刚开始......

© www.soinside.com 2019 - 2024. All rights reserved.