残酷月光 发表于 2020-7-14 19:53:15

课后题:文件:一个任务

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()

liuzhengyuan 发表于 2020-7-14 19:57:28

本帖最后由 liuzhengyuan 于 2020-7-14 19:58 编辑

if a != ':w':
      f.write('%s\n' % a)# 注意这里有换行符
else:
      break
这里人为的判断,else 中使用 break 退出

zltzlt 发表于 2020-7-14 20:00:01

      if a != ':w':
            f.write('%s\n' % a)# 注意这里有换行符
      else:
            break

这一部分进行判断,如果用户输入的内容不为 ':w' ,则将用户输入的内容写入文件;否则退出循环。

sunrise085 发表于 2020-7-14 20:05:51

这是自己设定的。
只要和后面的if对应上,你设定什么都行。
你的程序,在后面if判断条件是
if a != ':w':
也就是输入内容为 :w 的时候,就停止了。
若把这个条件改为:
if a != '我不写了!':
那么,当你输入“我不写了!”,就停止了

Twilight6 发表于 2020-7-14 20:21:57



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

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

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

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

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


页: [1]
查看完整版本: 课后题:文件:一个任务