Python 哪种代码在速度和处理方面更好?

Python 哪种代码在速度和处理方面更好?,python,Python,两种代码的用途相同:- Pig Latin是一种语言游戏,你把单词的第一个字母移到末尾,然后加上“ay”,所以“Python”变成了“ythonpay” 还是这个 user = raw_input("what is the word you want to play with:").lower() if user.isalpha() and len(user) > 0: print user[1:] + user[0:1] + "ay" else: print

两种代码的用途相同:- Pig Latin是一种语言游戏,你把单词的第一个字母移到末尾,然后加上“ay”,所以“Python”变成了“ythonpay”

还是这个

 user = raw_input("what is the word you want to play with:").lower()

 if user.isalpha() and len(user) > 0:
    print user[1:] + user[0:1] + "ay"
 else:
      print "please enter valid name!"    

timeit
库的帮助下,我得出了第二种方法更快的结论(在注释中也建议了它将代码运行数千次)。这两个代码非常相似,而第二个代码更简洁。为了进一步参考,如果您想测试哪种代码在速度方面更好。以下是您应该如何做到这一点:

import timeit

def func1():
    original = 'spam'
    pyg = 'ay'
    if len(original) > 0 and original.isalpha():
        word= original.lower()
        first= word[0]
        new_word= word +first +  pyg
        new_word= new_word[1:len(new_word)]
        s= new_word

    else:
        s= ('empty') 

def func2():
    user = 'spam'.lower()

    if user.isalpha() and len(user) > 0:
        s = user[1:] + user[0:1] + "ay"
    else:
        s = "please enter valid name!" 

a=timeit.timeit(func1)
b=timeit.timeit(func2)
print "function 1: {0}\nfunction 2:{1}".format(a,b)

如您所见,这与您的代码不完全相同,我去掉了
raw\u input()
,并用默认字符串替换它(在本例中为“垃圾邮件”)。我暂时将它保存在一个名为
s
的变量中,而不是
print
。这两种修改都是必要的,否则结果会有所不同

将它们分别运行10000次并比较它们所用的时间。函数1:0.57210997668函数2:0.469521999359是代码性能中的一个小差异。谢谢,你能帮我写一个好的简单的代码吗。。。我是编程新手如果你想要更短,你可以去掉
和len(user)>0
,因为isalpha也会检查它。我相信,这是最短的版本。我忘了。伊莎法只接受阿尔帕佩特谢谢
import timeit

def func1():
    original = 'spam'
    pyg = 'ay'
    if len(original) > 0 and original.isalpha():
        word= original.lower()
        first= word[0]
        new_word= word +first +  pyg
        new_word= new_word[1:len(new_word)]
        s= new_word

    else:
        s= ('empty') 

def func2():
    user = 'spam'.lower()

    if user.isalpha() and len(user) > 0:
        s = user[1:] + user[0:1] + "ay"
    else:
        s = "please enter valid name!" 

a=timeit.timeit(func1)
b=timeit.timeit(func2)
print "function 1: {0}\nfunction 2:{1}".format(a,b)