python - 在 Python 中将整数放在没有空格的表格形式中
问题描述
抱歉,我在这里问这个问题,因为这看起来很基础,而且很可能是以前问过的。但是,我已经搜索和尝试了几个小时,但找不到任何可以帮助我的东西。我想编写一个程序,它要求一个上限并返回一个带有数字对(m,n)的表,使得 n(不包括 n)的除数之和等于 m,反之亦然。
现在我写了以下
bound = int(input('upper bound = '))
l = len(str(bound))
for x in range(1,l):
print(' ', end='')
print('m', end=' ')
for y in range(1,l):
print(' ', end='')
print('n', end='')
for i in range(1,bound):
for j in range (1, bound):
if j == i:
break
som_i = 0
som_j = 0
for k in range(1,i):
if i % k == 0:
som_i += k
for l in range(1,j):
if j % l == 0:
som_j += l
if som_i == j and som_j == i:
print('{:{prec}d}'.format(j, prec = l).rstrip(''), end="")
print('{:{prec}d}'.format(i, prec = l+2).lstrip(''), end="")
问题是我希望这对以表格形式并排显示并具有正确的缩进,具体取决于数字的长度。无论我尝试了什么(我已经阅读了很多类似问题的线索)Python 不断添加空格。
谁能帮我解决这个问题?我对 Python 真的很陌生,我自己也搞不清楚。如果相关,我使用的是 3.6 版。
编辑:
例如,当我运行程序时,我得到:
upper bound = 300
m n
220
284
虽然我想得到
upper bound = 300
m n
220 284
对于较大的输入也类似。
EDIT2我的问题不是重复的,因为我已经尝试添加
end=""
这没有用。
解决方案
第一个问题是您end=''
在打印j
值后没有使用,但您显然已经知道这一点。您也在打印标题后使用它n
,这是您不想要的。
您编辑的版本在打印end=''
后修复了缺失的部分j
,但在打印后添加了一个i
,这也是您不想要的。
我不确定你理解什么end=''
意思,所以你只是将它随机放入你的代码中。这不会让你走得太远。您可以阅读 文档print
,但简短的版本是:end=''
在打印不应该是行尾的内容时使用,例如m
标题和j
值,但不要在打印时使用它应该是行尾的东西,比如标题和n
值i
。
第二个问题是l
太大了。之后for l in range(1,j):
,它的值将与 相同j
,这意味着它将是 219,因此您将打印220
填充到 219 个字符,并且284
填充到 221 个字符。因此,除非您的终端的宽度超过 446 个字符,否则它将滚动到多行并且看起来一团糟。我认为您可能想要在这里使用3
and 5
。
或者,也许,您有一些其他变量应该是 3,并且您想使用(我们称之为变量x
)x
而x+2
不是l
and l+2
。但我在您的代码中看不到任何明显的候选人。
所以:
# ... unchanged lines
print('n') # no end='' here
# ... more unchanged lines
# using 3 and 5 instead of l and l+2, and adding end=''
print(('{:{prec}d}'.format(j, prec = 3)).rstrip(''), end='')
print(('{:{prec}d}'.format(i, prec = 5)).lstrip(''))
现在,输出是:
upper bound = 300
m n
220 284
推荐阅读
- c# - IQueryable 与 ICollection(列表)
- postgresql - 使用 NULL 参数在 postgresql 函数中编写字符串查询
- python-3.x - Python: read a string and use it to rename the file
- javascript - 如何使用嵌套类更改 web 元素列表中每个项目的 innerHTML
- c# - DataTable checkbox cell does not return null but throws exception when attempting to cast value
- c# - Access windows forms controls from external DLLs in C#
- spring-boot - Liquibase- 为现有数据库生成 changelogFile
- python - 第二次写入文件的问题,Python3
- android - 如何在 LiveData 中懒惰地计算转换?
- mysql - 如何在 MySQL 5.7 中更新嵌套的 JSON 数据类型