两个代码的目的相同: - Pig Latin是一种语言游戏,你可以将单词的第一个字母移到最后并添加" ay。"所以" Python"成为" ythonpay。"
pyg = 'ay'
original = raw_input('Enter a word:')
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)]
print new_word
else:
print 'empty'
或者
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!"
答案 0 :(得分:1)
在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_input()
并将其替换为默认字符串("垃圾邮件"在这种情况下) 。而不是print
,我暂时将其保存在名为s
的变量中。两种修改都是必要的,否则结果会有所不同。