我有一个关于 while in python 的问题。 如何使用 while 收集结果值?
ColumnCount_int = 3
while ColumnCount_int > 0 :
ColumnCount_text = str('<colspec colnum="'+ str(ColumnCount_int) +'"' ' ' 'colname="'+ str(ColumnCount_int) + '">')
Blank_text = ""
Blank_text = Blank_text + ColumnCount_text
ColumnCount_int = ColumnCount_int - 1
print(Blank_text)
结果如下图
<colspec colnum="3" colname="3">
<colspec colnum="2" colname="2">
<colspec colnum="1" colname="1">
但我想像下面这样收集所有结果
<colspec colnum="3" colname="3"><colspec colnum="2" colname="2"><colspec colnum="1" colname="1">
你能告诉我哪里错了吗?
请您参考如下方法:
您可以按照 Blank_text = "" 移动到 while 循环 之前和 print(Blank_text) 被调用的位置来修复代码循环。
(注意:由于 Blank_text 累积,变量名称更改为 accumulated_text,如评论中所建议的):
ColumnCount_int = 3
accumulated_text = "" # variable name changed, used instead of Blank_text
while ColumnCount_int > 0 :
ColumnCount_text = str('<colspec colnum="'+ str(ColumnCount_int) +'"' ' ' 'colname="'+ str(ColumnCount_int) + '">')
accumulated_text = accumulated_text + ColumnCount_text
ColumnCount_int = ColumnCount_int - 1
print(accumulated_text)
结果:
<colspec colnum="3" colname="3"><colspec colnum="2" colname="2"><colspec colnum="1" colname="1">
更新:
但是,同样的结果可以通过 .join 的紧凑方式实现:
result = ''.join('<colspec colnum="{0}" colname="{1}">'.format(i,i) for i in range(3,0,-1))
print(result)
