【发布时间】:2015-12-01 18:21:19
【问题描述】:
在下面的这段代码中,当我为变量“x”输入多行输入时,连续的变量会自动为自己分配一个值(即使我希望用户输入它们(我也清楚地写了输入() 声明每个变量))(见下文)。这是怎么发生的?为什么为“x”输入的连续行会自动存储在“y”、“z”和其他变量中?
>>> x=input()
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
>>> print(x)
73167176531330624919225119674426574742355349194934
>>> y=input()
>>> print(y)
96983520312774506326239578318016984801869478851843
>>> z=input()
>>> print(z)
85861560789112949495459501737958331952853208805511
>>> a=input()
>>> print(a)
12540698747158523863050715693290963295227443043557
>>> b=input()
>>> print(b)
66896648950445244523161731856403098711121722383113
>>> c=input()
>>> print(c)
62229893423380308135336276614282806444486645238749
【问题讨论】:
-
这很不寻常...在我的 REPL 中,似乎不可能为一个
input提示输入多行。你在使用 IDLE 还是什么? -
@Kevin 我正在使用 IDLE。
-
如果您从剪贴板粘贴一行行,可能会出现这种情况。
-
@khelwood 我就是这么做的。但无法理解发生这种情况的机制。
-
我假设 input() 读取缓冲区直到下一个
\n,所以当你再次调用 input 时,缓冲区不是空的,它会继续从那里读取。
标签: python python-3.x input python-idle