0

作为 codeacademy 在线练习的一部分,我创建了以下代码

print "Welcome to the English to Pig Latin translator!"
original = raw_input("what's you name?")

if original != "" and original.isalpha():
    print original
else:
    print "empty"

但后来在课程中看到它把 original != "" 换成使用 len(original) > 0

它们与python中的解释器是否相同?

4

1 回答 1

5

在您的具体示例中,original != ""并且len(original) > 0总是会返回相同的结果,因为我们知道original将始终是一个字符串。后一种变体会慢一点,但你不会注意到。

但在这种情况下,整个条件是不必要的,因为

>>> "".isalpha()
False

因此,你会得到相同的逻辑

if original.isalpha():
    print original
else:
    print "empty"

但是,结果将不正确,因为

>>> "1".isalpha()
False

最好使用类似的东西

if original.isalpha():
    print original
elif not original:
    print "empty"
else:
    print "not alpha"
于 2013-05-13T15:02:16.367 回答