9

Pythonを使い始めたばかりです。次のコードスニペットの2行目を誰かが解釈できますか?少しわかりません`num`。バッククォートの文字を1つのクォートに置き換えようとしました'が、壊れました。その行の詳細な説明があれば素晴らしいでしょう。

loop_count = 1000000
irn = ''.join([`num` for num in range(loop_count)])
number = int(irn[1]) * int(irn[10]) * int(irn[100]) * int(irn[1000]) * int(irn[10000]) * int(irn[100000]) * int(irn[1000000])
print number
4

2 に答える 2

12

repr()バックティックは組み込み関数の非推奨のエイリアスであるため、2行目は次のようになります。

irn = ''.join([repr(num) for num in range(loop_count)])

これは、リスト内包表記を使用して数値を表す文字列のリストを作成し、次に''.join()その文字列のリストを1つの文字列に結合するために使用するため、これは次のようになります。

irn = ''
for num in range(loop_count):
    irn += repr(num)

ここではバックティックと一貫性を保つために使用repr()しましたが、通常はintの文字列表現を取得することがわかりますstr(num)(これらはたまたま同等です)。

于 2012-12-12T20:35:21.093 に答える
2
  1. for num in range(loop_count)ゼロから1,000,000までのすべての数値を繰り返します
  2. numin backticksは、repr()関数を使用して各数値を文字列に変換します。
  3. ''.join(...)これらすべての文字列を、間に区切り文字なしで1つにマージします。
  4. irn = ...結果をに格納しirnます。
于 2012-12-12T20:34:29.230 に答える