我已经在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的任何功能] 提前致谢。