【问题标题】:code prints True only in alphanumeric case but it was supposed to print True in all the cases代码仅在字母数字情况下打印 True 但它应该在所有情况下都打印 True
【发布时间】:2019-10-27 19:40:06
【问题描述】:

所以,问题是,当我们输入任何字符串时,如果对于下面给出的情况,输出为 True,则输出必须返回 True,否则返回 False。 情况是:检查输入字符串是否为字母数字、有字母、有数字、有小写字母、有大写字母。

我尝试将qA2 作为输入字符串。

def anum(string):
    if s.isalnum():
        return 'True'
    else:
        return 'False'
def alpha(string):
    if s.isalpha():
        return 'True'
    else:
        return 'False'
def digi(string):
    if s.isdigit():
        return 'True'
    else:
        return "False"
def lcase(string):
    if s.islower():
        return 'True'
    else:
        return 'False'
def ucase(string):
    if s.isupper():
        return 'True'
    else:
        return 'False'

实际输出:true,false,false,false,false.

预期输出:true,true,true,true,true.

【问题讨论】:

    标签: python python-3.x string


    【解决方案1】:

    使用any() 运算符和for 来检查上述条件对您的字符串是否有效。

    for 循环检查字母是否满足字符串中的条件并创建一个生成器。

    在您的情况下,if any(i.isalpha() for i in string) 行将首先评估(i.isalpha() for i in string) 并创建一个生成器(如果将其转换为列表,它将类似于[True, True, False])。

    any 运算符将检查列表中是否有任何值,如果为真,则将if 条件评估为True

    def anum(string):
        if any(i.isalnum() for i in string):
            return 'True'
        else:
            return 'False'
    def alpha(string):
        if any(i.isalpha() for i in string):
            return 'True'
        else:
            return 'False'
    def digi(string):
        if any(i.isdigit() for i in string):
            return 'True'
        else:
            return "False"
    def lcase(string):
        if any(i.islower() for i in string):
            return 'True'
        else:
            return 'False'
    def ucase(string):
        if any(i.isupper() for i in string):
            return 'True'
        else:
            return 'False'
    

    【讨论】:

    • @lok​​eshbihani 我已经添加了解释。如果它有助于接受答案
    【解决方案2】:

    由于它检查整个字符串以确定输入的类型,因此它说给定的输入是字母数字

    try giving 
    s[1].isupper()
    output:
    true
    
    s[2].isdigit()
    output:
    true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2011-04-05
      • 2010-12-16
      • 2020-09-13
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多