首页 > 解决方案 > 是否有什么我遗漏的东西,因为在 JupyterLab 中工作时我在 HackerRank 上遇到错误?

问题描述

我正在制作一个简单的程序来检查 UID 是否有效。
它必须包含至少 2 个大写英文字母字符。
它必须至少包含 3 个数字 (0 - 9)。
它应该只包含字母数字字符(az、AZ 和 0-9)。
任何字符都不应重复。
有效的 UID 中必须有确切的字符。

这是我正在使用的代码。它在我的 JupyterLab 中运行良好,但它给了我 Hackerrank 上的类型错误。

    if __name__ == '__main__':
        n = int(input("Enter the number of test cases: "))
        q = str(input("Enter the UID: "))
    
    cap_count = 0
    num_count = 0
        
    for x in q:
        if x.isupper():
            cap_count = cap_count+1
        if cap_count > 1 and x.isnumeric():
            num_count = num_count+1
                
    if (len(q) == 10) and (q.isalnum()) and (len(q) == len(set(q))) and (cap_count > 1) and (num_count > 2):
        print("Valid")
    else:
        print("Invalid")

它应该返回有效或无效 这是完整的 Traceback

Traceback(最近一次调用最后):文件“Solution.py”,第 17 行,在 if (len(q) == 10) and (q.isalnum()) and (len(q) == len(set(q ))) (cap_count > 1) 和 (num_count > 2): TypeError: 'bool' object is not callable

我知道这不是你们见过的最干净的代码。但是真的可以使用关于为什么它在 Jupiterlab 而不是在hackerrank 上运行良好的洞察力,即使两者都使用 python3。

另外,我正在输入 n ,因为它需要作为输入之一,但没有用。

标签: python

解决方案


推荐阅读