Python自定义文件追加函数运行时输入区出现None如何解决
问题原因
- Python中
print()函数的作用是向控制台输出指定内容,它没有定义返回值,所有无显式返回值的函数运行后都会默认返回None。 - 原代码里
x=input(print('Enter Text to Append in File....... '))的执行逻辑是:先执行内层的print()把提示语打印到控制台,再把print()的返回值None作为参数传给外层的input()。 input()函数的特性是会把传入的参数值作为输入提示,打印在等待用户输入的光标前,因此就出现了多余的None字样。- 这个
None是input()自行输出的提示内容,不属于用户实际输入的字符串,因此不会被写入目标txt文件。
修复方法
input()原生支持传入提示文本参数,不需要在其内部嵌套print(),直接把要展示的提示字符串作为参数传入input()即可。
修正后的完整代码:
# 原函数名file_apend存在拼写疏漏,补全为标准拼写file_append,不修改也不会影响核心逻辑运行 def file_append(fa, x): fa.write(x) fa.close() fa = open('whd.txt', 'a') # 移除嵌套的print,直接传入提示文本 x = input('Enter Text to Append in File....... ') file_append(fa, x)
修复后运行程序,提示文本会正常展示,输入光标直接跟在提示文本末尾,不会再出现多余的None。
内容的提问来源于stack exchange,提问作者Abdul Wahid
相关产品推荐
相关产品推荐

