python经典百题之逐字写文件

题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

程序分析

要实现从键盘输入一些字符,逐个把它们送到磁盘上,直到输入一个#为止,可以使用多种方法。基本思路是不断从键盘获取输入的字符,然后将这些字符逐个写入磁盘文件,直到遇到#字符为止。

方法1: 使用循环遍历实现

思路

  1. 打开一个文件用于写入(可以指定文件名)。
  2. 使用无限循环来获取用户的输入字符。
  3. 在每次循环中,获取用户输入的字符。
  4. 如果输入的字符是#,则退出循环。
  5. 否则,将输入的字符写入文件。
  6. 最终关闭文件。

代码

filename = input("请输入文件名:")
with open(filename, 'w') as file:
    while True:
        char = input("请输入字符:")
        if char == '#':
            break
        file.write(char)

优点

  • 简单直观,易于理解。
  • 可以指定文件名。
  • 适用于小量的字符输入。

缺点

  • 没有错误处理机制,用户输入不合法字符可能导致程序崩溃。
  • 对于大量字符输入,性能可能会下降,因为每个字符都要写入磁盘。

方法2: 使用缓冲写入实现

思路

  1. 打开一个文件用于写入(可以指定文件名)。
  2. 使用缓冲区来积累用户输入的字符。
  3. 在每次循环中,获取用户输入的字符。
  4. 如果输入的字符是#,则将缓冲区中的字符写入文件并退出循环。
  5. 否则,将输入的字符添加到缓冲区中。
  6. 最终关闭文件。

代码

filename = input("请输入文件名:")
with open(filename, 'w') as file:
    buffer = ""
    while True:
        char = input("请输入字符:")
        if char == '#':
            file.write(buffer)
            break
        buffer += char

优点

  • 使用缓冲区可以减少文件写入次数,提高性能。
  • 可以指定文件名。
  • 适用于中等数量的字符输入。

缺点

  • 仍然没有错误处理机制,用户输入不合法字符可能导致程序崩溃。

方法3: 使用异常处理实现

思路

  1. 打开一个文件用于写入(可以指定文件名)。
  2. 使用异常处理机制来捕获用户输入字符时可能出现的异常。
  3. 在每次循环中,尝试获取用户输入的字符。
  4. 如果输入的字符是#,则退出循环。
  5. 否则,将输入的字符写入文件。
  6. 添加异常处理,捕获可能的异常并继续循环。
  7. 最终关闭文件。

代码

filename = input("请输入文件名:")
with open(filename, 'w') as file:
    while True:
        try:
            char = input("请输入字符:")
            if char == '#':
                break
            file.write(char)
        except Exception as e:
            print(f"发生异常:{e}")

优点

  • 具备基本的错误处理机制,可以处理用户输入不合法字符导致的异常。
  • 可以指定文件名。
  • 适用于大量字符输入。

缺点

  • 使用异常处理会稍微增加代码复杂度。

总结和推荐

  • 方法3使用异常处理机制是最好的选择,因为它具备错误处理机制,可以处理用户输入不合法字符导致的异常,同时适用于大量字符输入。
  • 方法2使用缓冲写入也是一种不错的选择,可以提高性能,适用于中等数量的字符输入。
  • 方法1简单直观,适用于小量的字符输入,但没有错误处理机制。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忧伤的玩不起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值