两个代码段输出之间的区别,Python3

时间:2018-06-20 07:57:05

标签: python python-3.x validation

我已经在hackerrank(基本python3)上开发了一些python3,并遇到了这个问题String Validators。我编写了两个代码段,第一个提供了错误答案,但是第二个被接受。即使它们都提供相同的输出。仅供参考,我的第一个代码片段甚至都没有通过示例测试用例。

代码段一:

if __name__ == '__main__':
    s = input()
    if str(s).isalnum():
        print(True)
    else:
        success = False
        for ch in s:
            if ch.isalnum():
                success = True
                print(True)
        if not success:
            print(False)

    if str(s).isalpha():
        print(True)
    else:
        success = False
        for ch in s:
            if ch.isalpha():
                success = True
                print(True)
        if not success:
            print(False)


    if str(s).isdigit():
        print(True)
    else:
        success = False
        for ch in s:
            if ch.isdigit():
                success = True
                print(True)
        if not success:
            print(False)

    if str(s).islower():
        print(True)
    else:
        success = False
        for ch in s:
            if ch.islower():
                success = True
                print(True)
        if not success:
            print(False)

    if str(s).isupper():
        print(True)
    else:
        success = False
        for ch in s:
            if ch.isupper():
                success = True
                print(True)
        if not success:
            print(False)

代码段二: [已接受的代码]

if __name__ == '__main__':
    s = input()
    print (any(c.isalnum() for c in s))
    print (any(c.isalpha() for c in s))
    print (any(c.isdigit() for c in s))
    print (any(c.islower() for c in s))
    print (any(c.isupper() for c in s))

这两个代码片段的答案都是相同的:在五行中有五个为True。第一个摘要出了什么问题? [我之前不了解pythons的任何功能] 提前致谢。

0 个答案:

没有答案