鱼C论坛

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

[已解决]Python 入门学习 第29课课后题 0 题

[复制链接]
发表于 2021-1-22 09:33:47 | 显示全部楼层 |阅读模式

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

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

x
学友们好,    跟甲鱼老师学了这么久,我还是保持着一听就会,一做就废的属性,  小甲鱼老师用心编写的课后题都成了我的梦魇了,好在 有各位学长热心指教每次还能进步一点点,
说说这个 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:
    if  key not in content:
        f.write(content)
    else:
        break
f.close()

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

还有一个扩展问题,如果我想 自己设定文件保存路径,   
那么   在第二行   f =open('d:\file_name', 'w')  这样可行吗,  加了 单引号 还会给带入 input  后面输入的值吗?   (因为认知里,带‘’  就是字符串了,  所以这个open()中需要带‘’总觉得别扭)谢谢。
最佳答案
2021-1-23 08:57:47
可以通过字符串的拼接来完成你的目的
以D盘为例
简单修改了一下你的代码
如果是D盘下文件夹,filepath需要写D://文件夹//,或者用r''的形式来表示

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

题干

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

使用道具 举报

发表于 2021-1-22 10:10:43 | 显示全部楼层
1.content要写在while里面,输入后每次都判断,你写在外面了

2.file_name是变量名,代表一个字符串。f =open('d:\file_name', 'w')肯定是错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-22 18:19:57 | 显示全部楼层
逃兵 发表于 2021-1-22 10:10
1.content要写在while里面,输入后每次都判断,你写在外面了

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

万分感谢啊,  你们让论坛永恒精彩,   多问一句,如果我需要给 file_name 带上指定路径, 该怎么弄呢,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-23 08:57:47 | 显示全部楼层    本楼为最佳答案   
可以通过字符串的拼接来完成你的目的
以D盘为例
简单修改了一下你的代码
如果是D盘下文件夹,filepath需要写D://文件夹//,或者用r''的形式来表示

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

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

使用道具 举报

 楼主| 发表于 2021-1-23 18:56:23 | 显示全部楼层
非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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