鱼C论坛

 找回密码
 立即注册
查看: 1359|回复: 4

[已解决]课后题:文件:一个任务

[复制链接]
发表于 2020-7-14 19:53:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def filewrite(file_name):
    print('请输入内容【单独输入‘:w’保存退出】:')   ####请问这句中为什么输入':w'就会暂停啊?
    f = open(file_name, 'w')
    while True:
        a = input()
        if a != ':w':
            f.write('%s\n' % a)  # 注意这里有换行符
        else:
            break

    f.close()
最佳答案
2020-7-14 20:21:57


请问这句中为什么输入':w'就会暂停啊?


因为你 while 条件循环的 循环中的 if 条件是 当 a 不等于 :w 时候 就将 a 的内容写入文件中去

反之当 a 等于 :w 的时候 , 那么 if 条件就不成立 , 执行 else 的代码块  

而 else 下的代码是 break 退出 while 循环 , 所以此时就达到你你输入 :w 就退出循环的效果

当然 , 这里的 :w 是你自己设置的 , 你可以设置为 'Esc' , '退出' 再或者 '10086' 都完全没毛病, 就是判断 if 条件是否成立而已哈~


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-14 19:57:28 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-7-14 19:58 编辑
if a != ':w':
        f.write('%s\n' % a)  # 注意这里有换行符
else:
        break
这里人为的判断,else 中使用 break 退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 20:00:01 | 显示全部楼层
        if a != ':w':
            f.write('%s\n' % a)  # 注意这里有换行符
        else:
            break

这一部分进行判断,如果用户输入的内容不为 ':w' ,则将用户输入的内容写入文件;否则退出循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 20:05:51 | 显示全部楼层
这是自己设定的。
只要和后面的if对应上,你设定什么都行。
你的程序,在后面if判断条件是
if a != ':w':
也就是输入内容为 :w 的时候,就停止了。
若把这个条件改为:
if a != '我不写了!':
那么,当你输入“我不写了!”,就停止了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 20:21:57 | 显示全部楼层    本楼为最佳答案   


请问这句中为什么输入':w'就会暂停啊?


因为你 while 条件循环的 循环中的 if 条件是 当 a 不等于 :w 时候 就将 a 的内容写入文件中去

反之当 a 等于 :w 的时候 , 那么 if 条件就不成立 , 执行 else 的代码块  

而 else 下的代码是 break 退出 while 循环 , 所以此时就达到你你输入 :w 就退出循环的效果

当然 , 这里的 :w 是你自己设置的 , 你可以设置为 'Esc' , '退出' 再或者 '10086' 都完全没毛病, 就是判断 if 条件是否成立而已哈~


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 11:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表