-1

こんにちは、これは私の最初の投稿です。コードの書き方を学んでいるので、技術的には初心者です。

私は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()
4

2 に答える 2

1

関数定義は関数呼び出しの上に配置する必要がありますが、関数定義と関数呼び出しの間の距離は問題ではありません (関数コードは既に読み込まれているため)。

プログラムを高速化する 1 つの方法は、同じ結果を生成する計算の繰り返しを避けることです。計算を 1 回実行し、結果を変数に格納し、結果が必要なときはいつでもその変数を使用します。

たとえば、プログラムが非常に大きなタプルを処理するとします。コード内len(veryLargeTuple)で何度も発生すると、Python は非常に大きなタプルの長さを繰り返し決定しようとします。タプルは不変で長さが変わらないため、これは時間の無駄であり、非常に大きなタプルの長さを見つけるには時間がかかる場合があります。len(veryLargeTuple)の結果を変数に格納し、非常に大きなタプルの長さが必要なときにいつでもveryLargeTupleLength使用する方が高速です (変数の値の検索は非常に高速な操作です)。veryLargeTupleLength

于 2013-09-01T03:35:07.867 に答える
0

少しの違いもありません。最も読みやすいものを実行します。

于 2013-09-01T02:57:39.627 に答える