Skip to main content
 首页 » 编程设计

python之如何使用 while 收集结果值

2025年05月04日23insus

我有一个关于 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)