JT Tomato� 2019-04-11 10:31 采纳率: 20%
浏览 687
已采纳

简单的while 循环结果展示问题

各位高手大家好,因工作需要近期我在尝试写一个脚本: 想要实现以下功能:

从本机指定位置的TXT中读取信息,并存进一个列表numberL之中

逐个处理列表numberL的元素,并将每次处理的单个元素放到单一元素列表a 之中

将已经处理完的元素统统放到列表done 之中

循环2-3 直至numberL中的元素被全部处理完为止

代码如下:

file_path = "D:/PN_TXT/PN_test.txt." # 设置路径
with open(file_path) as file_PN: # 打开文件
lines = file_PN.readlines() #读取文件
PN = ''
for line in lines:
PN +=line.strip() # 将文件置入一行之中
print(PN)

done = []
number = ()
numberL = list(number)
numberL.append(PN)

while len(numberL) > 0:
a= numberL.pop()
done.append(a)
print(a)
print(done)
预计实现的效果类似这样:

图片说明

而最终实现的效果却是这样:

图片说明

  • 写回答

2条回答

  • 泡视界 2019-04-11 14:22
    关注

    朋友,看你的代码貌似跟你的中文描述不大一样。而且有点繁琐,很多变量根部不需要啊

    #从本机指定位置的TXT中读取信息,并存进一个列表numberL之中
    file_path = "D:/PN_TXT/PN_test.txt." 
    with open(file_path) as file_PN: 
    lines = file_PN.readlines() 
    numberL=[]
    done=[]
    for line in lines:
        PN =line.strip() #原来写的是PN +=line.strip() ,加等干嘛,不是只读一行吗?加等就一行接一行,所有行全写再PN里面了
        numberL.append(PN)
    
    #将每次处理的单个元素放到单一元素列表a 之中
    #while len(numberL) > 0:
        #a= numberL.pop()这写法是指numberL删除末尾元素,然后其余赋值给a,这样你的a就是会出现类似这样的情况,第一次a=。。。。。 第二次a=。。。。第三次a=。。。第四次a=。。(这样说你懂了吧?)
        #实际你只想让a的每一个元素记录一个numberL元素
        #那么a就可以不用了啊,因为你可以用numberL[i]来表示numberL当中的一个元素,为啥还要一个单一元素列表呢?
        #你要print(a)实际上可以写成print(numberL[指定第几个])
    
    #最终可以改成这样的循环
    for i in range(len(numberL)):
        #在这加上你对numberL的元素的处理操作,假设处理完存放在done里面就可以写 done[i].append(对numberL[i]的操作)
        #假设没有什么处理就写
        done.append[numberL[i]]
        print(done[i])#这里可以实现你的print(a)这句话
        print(done)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题