猿问

python字符串必须包含1位数字和1个字母

我做了一个需要在字符串中输入 2 个值的函数。我正在尝试使输入必须由 1 个数字和 1 个字母的组合组成。示例:3f 5h 我有以下代码,但我似乎无法让数字和字母的条件起作用。是因为 .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():

似乎工作。但他们没有在一起。


PIPIONE
浏览 380回答 3
3回答

一只甜甜圈

我假设您对我的回答不了解正则表达式,但是您可以执行类似的操作并编写一个函数来检查每个空格是否有效。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()只处理字符,所以你需要索引字符串中的每个字符来检查它是什么。

红糖糍粑

import redef 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(正则表达式,s)实施字符串返回None如果字符串s不匹配正则表达式

白衣非少年

检查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')
随时随地看视频慕课网APP

相关分类

Python
我要回答