我在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">
你能告诉我哪个部分错了吗?
答案 0 :(得分:4)
您可以按照Blank_text = ""
之前移动while loop
的位置以及print(Blank_text)
之后调用loop
来修复代码。
(注意:自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)
答案 1 :(得分:1)
尝试将其附加到我创建的l
新列表中,然后执行''.join(l)
将其输出到一行:
l = []
ColumnCount_int = 3
while ColumnCount_int > 0 :
ColumnCount_text = str('<colspec colnum="'+ str(ColumnCount_int) +'"' ' ' 'colname="'+ str(ColumnCount_int) + '">')
Blank_text = ColumnCount_text
ColumnCount_int = ColumnCount_int - 1
l.append(Blank_text)
print(''.join(l))
输出:
<colspec colnum="3" colname="3"><colspec colnum="2" colname="2"><colspec colnum="1" colname="1">
也试试这个:
l = []
ColumnCount_int = 3
while ColumnCount_int > 0 :
l.append(str('<colspec colnum="'+str(ColumnCount_int)+'"'' ''colname="'+str(ColumnCount_int)+'">'))
ColumnCount_int-=1
print(''.join(l))
输出:
<colspec colnum="3" colname="3"><colspec colnum="2" colname="2"><colspec colnum="1" colname="1">