【问题标题】:How to create 1-100 in 10 rows? [duplicate]如何在 10 行中创建 1-100? [复制]
【发布时间】:2018-04-27 21:44:05
【问题描述】:

我正在尝试进行以下练习:

"编写一个包含一对嵌套 while 循环的程序,显示整数值 1-100,每行十个数字,列对齐如下。

 1  2  3  4  5  6  7  8  9 10
11 12 13 14 15 16 17 18 19 20

到目前为止,我想出了这个:

lijst = list(range(1, 101))
i = 0

while i < 100:
    print(lijst[i],"\t", end=" ".format(">"))
    i = i+1
    if i % 10 == 0:
        print("")

虽然它产生了我需要的东西,但标签不起作用。每当我尝试添加空格而不是制表符时,第二行和后面的行都会发生太多变化。 此外,我似乎无法找出为什么 .format("&gt;") 不起作用。我尝试申请.format("&gt;3"),但根本没有做任何事情。

【问题讨论】:

  • 我建议您使用Format Specification Mini-Language 来格式化打印时看起来像您想要的字符串(它给您很多控制权)。它通常通过类似于print('&lt;format spec&gt;'.format(&lt;data items&gt;)) 的语句使用。

标签: python loops while-loop numbers rows


【解决方案1】:

您可以使用{:&gt;5d} 格式样式将整数右对齐5 个空格

lijst = list(range(1, 101))
i = 0

while i < 100:
    print("{:>5d}".format(lijst[i]), end=" ")
    i = i+1
    if i % 10 == 0:
        print("")

输出:

    1     2     3     4     5     6     7     8     9    10 
   11    12    13    14    15    16    17    18    19    20 
   21    22    23    24    25    26    27    28    29    30 
   31    32    33    34    35    36    37    38    39    40 
   41    42    43    44    45    46    47    48    49    50 
   51    52    53    54    55    56    57    58    59    60 
   61    62    63    64    65    66    67    68    69    70 
   71    72    73    74    75    76    77    78    79    80 
   81    82    83    84    85    86    87    88    89    90 
   91    92    93    94    95    96    97    98    99   100

【讨论】:

  • 我认为他想要'{&gt;5s}'.format(my_num)(看起来他想要右对齐而不是左对齐)
  • 好吧,在字符串中,我可以使用 format(">20") 将字符串以一定数量的字符右对齐(例如)。这就是为什么我也可以在整数上使用它。但不幸的是我做不到。输出看起来不错,但我如何正确对齐所有内容?
  • '{&gt;5s}'.format(my_num) ,表示将我的号码右对齐为 5 个空格......
  • 太好了,感谢您的帮助!解决了问题!
猜你喜欢
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-26
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
相关资源
最近更新 更多