【问题标题】:Python - Defining an integer variable over multiple linesPython - 在多行上定义一个整数变量
【发布时间】:2012-09-12 09:26:34
【问题描述】:

我想定义一个长度为 1000 位的变量,但我不愿意将其全部放在一行上。有没有办法将一个整数变量分成几行?

我尝试过使用不同的缩进和括号但无济于事。

我应该接受以下内容必须存储在一行上还是我只是遗漏了一些明显的东西?

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

【问题讨论】:

  • 您可以将其定义为字符串,然后使用适当的函数将其转换为整数 - 不确定int 是否有效。

标签: python python-2.7


【解决方案1】:
num = int("""
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450""".replace("\n", ""))

祝欧拉计划问题好运。 :)

【讨论】:

  • 天才!谢谢懒人。我简直无法忍受将所有内容都放在一条线上。
  • 我和你俩,海米。这是直接从我自己的解决方案中剪下来的,只是我只是将其保留为字符串。
  • 我明白了。其实这个问题没必要把1000位当成一个很大的整数来处理
  • 谢谢 gefei 我知道我需要它作为一个字符串,所以我可以迭代它......虽然没有更多提示;)
【解决方案2】:

为了清楚地呈现您的数据而不对其进行操作,隐式连接允许:

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

括号是必需的。请注意,没有逗号,这意味着 Python 将它们作为同一字符串的延续进行处理。

优点:

  • 一目了然。
  • 看起来很明确。
  • 很容易与第一行对齐。
  • 排成一列使得大多数 IDE 的代码折叠非常容易。
  • 它避免了转义结束线,这被认为是错误的形式。
  • 直接将其作为字符串处理一次,无需进一步操作,也不会浪费时钟周期。

Con:来自'() 的轻微噪音。


然后您可以使用

将数字强制转换为整数(Python 2 中的长整数)
number = int(number)

在python 3中,所有整数都是长整数。

【讨论】:

    【解决方案3】:

    尝试将其保存在字符串中:

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

    【讨论】:

    • 我不得不说 \ 杀了我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2012-06-19
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多