fazerse 发表于 2021-1-22 09:33:47

Python 入门学习 第29课课后题 0 题

学友们好,    跟甲鱼老师学了这么久,我还是保持着一听就会,一做就废的属性,小甲鱼老师用心编写的课后题都成了我的梦魇了,好在 有各位学长热心指教每次还能进步一点点,
说说这个 0 号题
要求   输入:w是能退出 文件编辑并报错,说白了考点就是.close()
file_name = input('请输入文件名:')
f = open(file_name, 'w')
print('请输入内容【单独输入\':w\'保存退出】:')

while True:
    write_some = input()
    if write_some != ':w':
      f.write('%s\n' % write_some)
    else:
      break

f.close()
这是老师的答案运行没有问题
=============================================================
file_name =input ('请输入文件名:')
f=open (file_name,'w')
content=input ('请输入文件内容【单独输入’:w‘保存退出】:')
key=':w'
while True:
    ifkey not in content:
      f.write(content)
    else:
      break
f.close()

这是我的编码, 我发现问题是除非我一开始就输入:W能够按设计 退出并保存,如果是我输入多行后,再输入:w,系统并没有结束循环还是要我输入。 看了几圈,我没发现错误所在,望前辈们不吝赐教。

还有一个扩展问题,如果我想 自己设定文件保存路径,   
那么   在第二行   f =open('d:\file_name', 'w')这样可行吗,加了 单引号 还会给带入 input后面输入的值吗?   (因为认知里,带‘’就是字符串了,所以这个open()中需要带‘’总觉得别扭)谢谢。

逃兵 发表于 2021-1-22 10:10:43

1.content要写在while里面,输入后每次都判断,你写在外面了

2.file_name是变量名,代表一个字符串。f =open('d:\file_name', 'w')肯定是错的

fazerse 发表于 2021-1-22 18:19:57

逃兵 发表于 2021-1-22 10:10
1.content要写在while里面,输入后每次都判断,你写在外面了

2.file_name是变量名,代表一个字符串。f = ...

万分感谢啊,你们让论坛永恒精彩,   多问一句,如果我需要给 file_name 带上指定路径, 该怎么弄呢,

逃兵 发表于 2021-1-23 08:57:47

可以通过字符串的拼接来完成你的目的
以D盘为例
简单修改了一下你的代码
如果是D盘下文件夹,filepath需要写D://文件夹//,或者用r''的形式来表示

filepath = 'D://' #指定路径为D盘,二级文件需加'//'
file_name =filepath+input ('请输入文件名:') #直接输入D盘下的文件名,二级文件名需要加'//'
f=open (file_name,'w') #打开文件
print('请输入文件内容【单独输入":w"保存退出】:') #打印文字
key=':w' #设定关键字
while True:
    content=input () #输入文字
    ifkey not in content: #判断关键字是否不在文字内
      f.write(content) #写入数据
      f.write('\n') #写入回车
    else:
      break
f.close() #关闭并保存

fazerse 发表于 2021-1-23 18:56:23

非常感谢
页: [1]
查看完整版本: Python 入门学习 第29课课后题 0 题