为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PIPIONE 2021-06-14 15:01:35
我做了一个需要在字符串中输入 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():似乎工作。但他们没有在一起。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我假设您对我的回答不了解正则表达式,但是您可以执行类似的操作并编写一个函数来检查每个空格是否有效。


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()只处理字符,所以你需要索引字符串中的每个字符来检查它是什么。


查看完整回答
反对 回复 2021-06-16
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-06-16
?
白衣非少年

TA贡献1155条经验 获得超0个赞

检查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')


查看完整回答
反对 回复 2021-06-16
  • 3 回答
  • 0 关注
  • 379 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号