我在python中使用parameterized functions
。我传递一些字符串值并访问它的值。你知道吗
我的函数定义是这样的:
import constants
def print_error_table(self, header1, errormsg, icon):
# for header1
print(constants.GREEN)
print(constants.REPORT_HEADER_ERR)
print(constants.DATE_TIME)
print(constants.SPACE)
start = "| | "+constants.ICON_BOX
header1_count = len(header1)
available_space_for_first_part = 37 - (len(start) + header1_count)
s = ""
print(constants.REPORT_ROOF)
print(constants.REPORT_COLUMNS)
print(constants.REPORT_FLOOR)
print(constants.REPORT_MIDDLE)
print(start),
print(" "+constants.NC+header1+constants.GREEN),
for i in range(available_space_for_first_part):
s += " "
print(s),
print("|"),
# right part
end = " "
end2 = "| |"
s2 = ""
icon_count = len(icon)
available_space_for_second_part = 31 - (len(end) + icon_count)
print(end),
print(icon),
for i in range(available_space_for_second_part):
s2 += " "
print(s2),
print(end2)
print(constants.REPORT_SHORT_HORIZONTAL_LINE)
print(constants.REPORT_MIDDLE_NO_MIDDLE_SEPTUM)
# print(len(constants.SPACE)) # 84
# print first 40 characters
start = "| |"
print(start),
s3 = ""
for i in range(12):
print(" "),
print(constants.RED),
msg = "1.) " + errormsg,
print(""+msg), # this is where my error is getting
print(constants.GREEN),
# print(constants.RED+constants.ICON_CROSS+msg+constants.GREEN),
for i in range(12, 57 - len(msg)-1):
s3 += " "
print(s3),
print("| |"),
print("")
print(constants.REPORT_MIDDLE_NO_MIDDLE_SEPTUM)
print(constants.REPORT_MIDDLE)
print(constants.REPORT_FLOOR)
print(constants.REPORT_FOOTER)
这是我调用这个函数的另一个python文件。你知道吗
error_message = "\"etcd\" is impaired\n"
print_error_table(self, "ETCD", error_message, constants.ICON_CROSS)
我得到一个错误:
File "/home/jananath/Desktop/python-script/2/bitesizetrouble/report_error.py", line 57, in print_error_table print(""+msg), TypeError: cannot concatenate 'str' and 'tuple' objects
问题是我传递的值(即error_message
)不是作为string
传递的,因为某种原因它是一种修改过的文本。你知道吗
我这样说是因为,在上面的(第一个)命令中,它说的是print(""+str(msg))
,而不是这个,当我尝试print(msg),
时,它会给出一些奇怪的输出,比如这样。你知道吗
(`"etcd" is impaired\n',)
你可以看到两边各有两个parenthesis
。它来自哪里?为什么我不能将传递给函数的字符串与另一个字符串(即print(""+str(msg))
更新:我正在使用,停止print()打印新行。在python2.7.5中,我应该这样做
你的代码充满了逗号,你又把一个放错了地方。你知道吗
通过在字符串赋值的末尾添加逗号,可以创建一个包含一个元素的元组。请参见:
我建议您从python.org网站(https://docs.python.org/3/tutorial/index.html)。说真的。不要再学python2了。说真的。你知道吗
相关问题 更多 >
编程相关推荐