我有一个列表a = ['type1','type2','type3']
,我有一个功能。在函数中我想返回列表,但没有' '
。这可能吗?当我回来时,我得到了" "
。
答案 0 :(得分:4)
Python在容器中显示值,例如列表为值表示;对于字符串,这意味着您将显示带有引号的文字字符串值。
不表示字符串值包含实际引号。
您当然可以在终端上打印一些只显示字符串值的内容,用逗号连接并用方括号括起来:
print '[{0}]'.format(', '.join(yourlist))
但这不会改变列表对象,也不应该改变。
至于您的代码,这里的错误是您正在模块中修改全局列表。导入模块后,make_table(tresort_liste, sla_liste, wb)
行会改变table_liste
和lbmer
:
>>> import yourmodule
[['b\xc3\xb8k', 155.73786516665265], ['eik', 200.23439807141054], ['rogn', 149.1107219680717], ['poppel', 152.3522594021602], ['furu', 876.0254915624212], ['gran', 350.4101966249685], ['douglasgran', 778.6893258332633]]
>>> yourmodule.table_liste
[['b\xc3\xb8k', 155.73786516665265], ['eik', 200.23439807141054], ['rogn', 149.1107219680717], ['poppel', 152.3522594021602], ['furu', 876.0254915624212], ['gran', 350.4101966249685], ['douglasgran', 778.6893258332633]]
>>> yourmodule.lbmer
[155.73786516665265, 200.23439807141054, 149.1107219680717, 152.3522594021602, 876.0254915624212, 350.4101966249685, 778.6893258332633]
然后,您的测试再次运行make_table
函数 ,并将测试参数附加到这些全局列表中。因此,该方法返回的数据超出预期,并且测试失败:
>>> names = ['abc', 'def', 'ghi']
>>> sla = [1, 2, 4]
>>> lbm = [15.3, 7.65, 3.825]
>>> zip(*yourmodule.make_table(names, sla, 50000))
[('b\xc3\xb8k', 'eik', 'rogn', 'poppel', 'furu', 'gran', 'douglasgran', 'abc', 'def', 'ghi'), (155.73786516665265, 200.23439807141054, 149.1107219680717, 152.3522594021602, 876.0254915624212, 350.4101966249685, 778.6893258332633, 155.73786516665265, 200.23439807141054, 149.1107219680717)]
故事的道德:不要使用全局变量。
您的代码可以简化为:
import math
def compute_lbm(sla, wb):
return (0.3 + math.sqrt(0.0045 * wb)) / sla
def make_table(tresorter, slaer, wb):
return [[sort, compute_lbm(sla, wb)] for sort, sla in zip(tresorter, slaer)]
if __name__ == '__main__':
sla_liste = [0.045, 0.035, 0.047, 0.046, 0.008, 0.020, 0.009]
tresort_liste = ["bøk", "eik", "rogn", "poppel", "furu", "gran", "douglasgran"]
wb = 10000
print make_table(tresort_liste, sla_liste, wb)
顺便说一下,不会使用全局变量。当用作模块时,最后print make_table()
调用将不会执行,只有当您直接将此文件作为主脚本运行时才会执行。
您使用assertAlmostEqual()
缺少places
或delta
参数,您需要指定输出需要匹配的距离。
你追逐的报价绝对不是问题。