だから私は初心者としてPythonを学んでいて、Python 3のコンピュータ科学者のように考える方法を使用しています.コピー/貼り付けの代わりに自分の脳からコーディングを行う反復についての章にいるので、覚えやすくなります. .
乗算表セクションの最後の部分を実行すると、レッスンで示したものと同じ出力が得られましたが、私のほうがきれいなようです (引数が少ない)。私はまだトレース プログラムのコツをつかもうとしているところなので、違いを理解するのに苦労しています。私のコードがテキストのバージョンよりも効率が悪いか、エラーが発生しやすいかどうかを誰かに知らせて、この頭痛の種を終わらせるのに役立つことを望んでいました;)。
def print_multiples(n, high): #This is the e-book version
for i in range(1, high+1):
print(n * i, end=' ')
print()
def print_mult_table(high):
for i in range(1, high+1):
print_multiples(i, i+1) #They changed high+1 to i+1 to halve output
i+1 が print_multiples で 'high' になり、print_multiples のループで +1 が再び追加されるため、結果に +1 が多すぎるようです。(私はまた、彼らが end='\t' の代わりに end=' ' を保持していることに気付きました。
def print_multiples(n): #n is the number of columns that will be made
'''Prints a line of multiples of factor 'n'.'''
for x in range(1, n+1): #prints n 2n 3n ... until x = n+1
print(n * x, end='\t') #(since x starts counting at 0,
print() #n*n will be the final entry)
def print_mult_table(n): #n is the final factor
'''Makes a table from a factor 'n' via print_multiples().
'''
for i in range(1, n+1): #call function to print rows with i
print_multiples(i) #as the multiplier.
これは私のものです。基本的なコメントは、トレースを頭の中でまっすぐに保つためのものでした。私の関数は私にとってより理にかなっていますが、いくつかの違いがあるかもしれません. なぜ本が print_multiples() の引数を 2 つにすることにしたのか、よくわかりません。私には 1 つで十分だと思われるからです。また、変数のほとんどを変更しました。対グローバル。ただし、どちらの場合も最終的な数値は同じになるため、n を再利用しました。
この種のことを行うためのより効率的な方法があるかもしれませんが、私はまだ反復中です。何が機能し、何が機能しないかを感じようとすることを望んでいるだけで、これは私を悩ませています。