如何使用while收集结果值?

时间:2018-05-30 02:01:01

标签: python

我在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">

你能告诉我哪个部分错了吗?

2 个答案:

答案 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">