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简单直观,适用于小量的字符输入,但没有错误处理机制。

你可能感兴趣的:(python经典百题,python,服务器,java)