5

1000 桁の長さの変数を定義したいのですが、すべてを 1 行にまとめるのが苦手です。整数変数を複数の行に分割する方法はありますか?

さまざまなインデントと括弧を使用してみましたが、まだ役に立ちません。

以下を1行に保存する必要があることを受け入れる必要がありますか、それとも明らかな何かが欠けているだけですか?

num = 73167176531330624919225119674426574742355349194934
  96983520312774506326239578318016984801869478851843
  85861560789112949495459501737958331952853208805511
  12540698747158523863050715693290963295227443043557
  66896648950445244523161731856403098711121722383113
  62229893423380308135336276614282806444486645238749
  30358907296290491560440772390713810515859307960866
  70172427121883998797908792274921901699720888093776
  65727333001053367881220235421809751254540594752243
  52584907711670556013604839586446706324415722155397
  53697817977846174064955149290862569321978468622482
  83972241375657056057490261407972968652414535100474
  82166370484403199890008895243450658541227588666881
  16427171479924442928230863465674813919123162824586
  17866458359124566529476545682848912883142607690042
  24219022671055626321111109370544217506941658960408
  07198403850962455444362981230987879927244284909188
  84580156166097919133875499200524063689912560717606
  05886116467109405077541002256983155200055935729725
  71636269561882670428252483600823257530420752963450
4

3 に答える 3

19
num = int("""
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450""".replace("\n", ""))

Project Euler問題で頑張ってください。:)

于 2012-09-12T09:32:05.310 に答える
6

データを操作せずに明確に表示するために、暗黙的な連結により次のことが可能になります。

number = ('73167176531330624919225119674426574742355349194934'
          '96983520312774506326239578318016984801869478851843'
          '85861560789112949495459501737958331952853208805511'
          #...
          )

括弧が必要です。コンマがないことに注意してください。これは、Python がコンマを同じ文字列の継続として処理することを意味します。

長所:

  • 読むのは明らかです。
  • それは非常に明確に見えます。
  • 一行目と並びやすいです。
  • 整列されていると、ほとんどの IDE でコードを折りたたむのが非常に簡単になります。
  • 悪いフォームと見なされるエンドラインのエスケープを回避します。
  • それ以上の操作や無駄なクロック サイクルなしで、一度文字列として直接処理されます。

'短所:とからのマイナー ノイズ()


次に、数値を整数 (Python 2 では長整数) に変換できます。

number = int(number)

Python 3 では、すべての整数は長整数です。

于 2014-03-09T17:20:17.587 に答える
3

文字列に保持してみてください:

numbers = "73167176531330624919225119674426574742355349194934\
96983520312774506326239578318016984801869478851843\
85861560789112949495459501737958331952853208805511\
12540698747158523863050715693290963295227443043557\
66896648950445244523161731856403098711121722383113\
62229893423380308135336276614282806444486645238749\
30358907296290491560440772390713810515859307960866\
70172427121883998797908792274921901699720888093776\
65727333001053367881220235421809751254540594752243\
52584907711670556013604839586446706324415722155397\
53697817977846174064955149290862569321978468622482\
83972241375657056057490261407972968652414535100474\
82166370484403199890008895243450658541227588666881\
16427171479924442928230863465674813919123162824586\
17866458359124566529476545682848912883142607690042\
24219022671055626321111109370544217506941658960408\
07198403850962455444362981230987879927244284909188\
84580156166097919133875499200524063689912560717606\
05886116467109405077541002256983155200055935729725\
71636269561882670428252483600823257530420752963450"
于 2013-02-20T08:49:22.383 に答える