mardizhang 2022-02-23 22:54 采纳率: 100%
浏览 29
已结题

自学python从入门到实践第二版中,关于 练习题10-5 自己编写程序 无法运行成功

问题遇到的现象和发生背景

编写一个while循环,询问用户为何喜欢编程。每当用户输入一个原因后,都将其添加到一个存储所有原因的文件中

reason2_file ='reason2.txt'
reasons = []
while True:
reason = input('你为什么喜欢编程?\n')
reasons.append(reason)

controll_poll = input('你想让下一个人参与吗?(Y/N)')
if controll_poll != 'Y':
    break
else:
    with open(reason2_file,'a') as f:
        for reason in reasons:
            f.write(reason)

运行之后,无法将reasons写入到 txt中是为啥呢?整体逻辑感觉没啥问题啊

  • 写回答

3条回答 默认 最新

  • CSDN专家-HGJ 2022-02-23 23:22
    关注

    因为if else判断语句,在输入不等于Y时循环终止,不会执行else语句,也就不会写入文件。还有代码中也不需要append。参考如下修改代码:

    reason2_file ='reason2.txt'
    reasons = []
    while True:
        reason = input('你为什么喜欢编程?\n')
        with open(reason2_file,'a') as f:f.write(reason+'\n')    
        controll_poll = input('你想让下一个人参与吗?(Y/N)')
        if controll_poll == 'Y': 
            continue 
        else:
            break
            
    
    

    如对你有帮助,请点采纳按钮。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月24日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000