题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。
程序分析
要实现从键盘输入一些字符,逐个把它们送到磁盘上,直到输入一个#
为止,可以使用多种方法。基本思路是不断从键盘获取输入的字符,然后将这些字符逐个写入磁盘文件,直到遇到#
字符为止。
方法1: 使用循环遍历实现
思路
- 打开一个文件用于写入(可以指定文件名)。
- 使用无限循环来获取用户的输入字符。
- 在每次循环中,获取用户输入的字符。
- 如果输入的字符是
#
,则退出循环。 - 否则,将输入的字符写入文件。
- 最终关闭文件。
代码
filename = input("请输入文件名:")
with open(filename, 'w') as file:
while True:
char = input("请输入字符:")
if char == '#':
break
file.write(char)
优点
- 简单直观,易于理解。
- 可以指定文件名。
- 适用于小量的字符输入。
缺点
- 没有错误处理机制,用户输入不合法字符可能导致程序崩溃。
- 对于大量字符输入,性能可能会下降,因为每个字符都要写入磁盘。
方法2: 使用缓冲写入实现
思路
- 打开一个文件用于写入(可以指定文件名)。
- 使用缓冲区来积累用户输入的字符。
- 在每次循环中,获取用户输入的字符。
- 如果输入的字符是
#
,则将缓冲区中的字符写入文件并退出循环。 - 否则,将输入的字符添加到缓冲区中。
- 最终关闭文件。
代码
filename = input("请输入文件名:")
with open(filename, 'w') as file:
buffer = ""
while True:
char = input("请输入字符:")
if char == '#':
file.write(buffer)
break
buffer += char
优点
- 使用缓冲区可以减少文件写入次数,提高性能。
- 可以指定文件名。
- 适用于中等数量的字符输入。
缺点
- 仍然没有错误处理机制,用户输入不合法字符可能导致程序崩溃。
方法3: 使用异常处理实现
思路
- 打开一个文件用于写入(可以指定文件名)。
- 使用异常处理机制来捕获用户输入字符时可能出现的异常。
- 在每次循环中,尝试获取用户输入的字符。
- 如果输入的字符是
#
,则退出循环。 - 否则,将输入的字符写入文件。
- 添加异常处理,捕获可能的异常并继续循环。
- 最终关闭文件。
代码
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简单直观,适用于小量的字符输入,但没有错误处理机制。