python - 在 Python 的打印函数中使用分隔符参数时遇到问题
问题描述
我正在做一个练习程序,我设计了一个函数,该函数需要一张表格并正确打印出来。我的代码不是最好的,我还是一个初学者,所以我还不知道如何让我的代码更短。对于函数的实际打印部分,我在使用sep=''
print 函数中的参数时遇到了麻烦。我能够围绕它进行编码,但我想尝试了解我哪里出错了,它不起作用。
这是我的代码(它目前仅适用于 3x3 的列表):
table = [['Koda','Lucy','Sokka'],
['Red','Black','Grey'],
['Dog','Dog','Cat']]
lengths = [] # must make global variable so value will be added with each iteration of for loop
for d in range(len(table)): # 3 times
for a in range(len(table[d])):
x,y,z = table[d][0:3]
if len(x) > len(y):
if len(x) > len(z):
longest = len(x) # order here does matter. cannot assign function as variable
break
elif len(x) < len(z):
longest = len(z)
break
else:
longest = len(x)
break
elif len(x) < len(y):
if len(y) > len(z):
longest = len(y)
break
elif len(y) < len(z):
longest = len(z)
break
else:
longest = len(y)
break
else:
if len(x) == len(z):
longest = len(x)
break
elif len(x) < len(z):
longest = len(z)
break
else:
longest = len(x)
break
lengths.append(longest)
for i in range(len(table)):
a = table[0][i].rjust(lengths[0])
b = table[1][i].rjust(lengths[1])
c = table[2][i].rjust(lengths[2])
print(a+' '+b+' '+c)
最后一个打印行,我尝试输入:
print(a+b+c,sep=' ')
但它打印:
Koda RedDog
其中 a 变量是合理的,并且添加了一个看似空格,但在 b 和 c 之间没有添加空格。
我的语法是否略有偏差,还是与使用索引而不是直整数的流程有关?我能够找到解决方法,但我认为理解它为什么不起作用,特别是如果我做错了什么会非常有帮助。
此外,如果有人有任何提示可以帮助我的代码适用于任何大小的列表,我会欣然接受。
解决方案
我认为您想用逗号而不是加号分隔变量。+
连接,但,
将它们作为单独的参数print
,print
可以用空格分隔。
推荐阅读
- javascript - JavaScript 中的 JSON 解密 在 PHP 中加密
- python - Debian 上的 Python3:初始化时串行失败
- vba - VBA - 字典按值调用键?
- php - 用于从切换列表中提取基于域的电子邮件的 PHP 脚本
- javascript - 从本地路径读取视频
- google-cloud-platform - 澳大利亚地区数据集的云作曲家问题
- bash - 如何将查询结果传递给shell
- cookies - 未在 IE11 windows 7 上为 iframe 应用程序设置 Cookie
- javascript - Reactjs - 对象键 - 如何 ketrive?
- r - 使用 R 中的嵌套行子集创建新列