代码的顺序可以使这个程序更快吗?

时间:2013-09-01 02:44:24

标签: python performance optimization

嗨,这是我的第一篇文章,我正在学习如何编写代码,所以从技术上讲,我是新手。

我正在学习python我仍处于非常基础,我开始了解if语句,并尝试将其与其他概念(函数定义,输入,变量)混合以获得更广泛的python视图,我写了一些代码而没有具体想法我想做什么我只想混合到目前为止学到的所有东西,所以可能我做了它并且它不实用,当我运行时它“有效”。

我的问题不在于如何更有效率或更少的代码,而是关于所有编程中的代码顺序。在这里,我将展示2个不同的代码顺序,它们使用完全相同的代码(但顺序不同)给出相同的结果。

on(1)我在第一行定义了一个函数 on(2)我在第5行使用它时更接近定义相同的函数。

哪一个更快?正在定义一个“更接近”的函数,当我需要它时,它对于较大程序的复杂性是不切实际的(但是它会使它更快),或者在我需要的地方定义一个“远”的函数会使运行时程序更慢(但也会更实际)。

(1)

def t(n1,n2):
    v=n1-n2
    return abs(v)
a = int(input('how old are you? \n'))
b = int(input('how old is your best friend? \n'))

c=t(a,b)

if a==b:
    print ('you are both the same age')

else:
    print('you are not the same age\nthe difference of years is %s year(s)' % c)

input()

(2)

a = int(input('how old are you? \n'))
b = int(input('how old is your best friend? \n'))

def t(n1,n2):
    v=n1-n2
    return abs(v)

c=t(a,b)

if a==b:
    print ('you are both the same age')

else:
    print('you are not the same age\nthe difference of years is %s year(s)' % c)

input()

2 个答案:

答案 0 :(得分:1)

函数定义必须位于函数调用之上,但函数定义和函数调用之间的距离无关紧要(因为函数代码已经加载)。

使程序更快的一种方法是避免重复计算产生相同的结果,方法是执行一次计算,将结果存储在变量中,并在需要结果时使用该变量。

例如,假设您的程序处理一个非常大的元组。如果len(veryLargeTuple)在代码中多次出现,Python将反复尝试确定非常大的元组的长度。这是浪费时间,因为元组是不可变的,所以它的长度不会改变,找到一个非常大的元组的长度可能需要一些时间。将len(veryLargeTuple)的结果存储在变量veryLargeTupleLength中并在需要非常大的元组长度时使用veryLargeTupleLength会更快(查找变量的值非常大)快速操作)。

答案 1 :(得分:0)

它没有丝毫差别。做任何最可读的事情。