我有这个.py文件:
from sys import argv
script, filename = argv
print "We're going to erase %r." % filename
print "If you don't want that, hit CTRL-C (^C)."
print "If you do want that, hit RETURN."
raw_input("?")
print "Opening the file..."
target = open(filename, 'w')
print "Truncating the file. Goodbye!"
target.truncate()
print "Now I'm going to ask you for three lines."
line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
print "I'm going to write these to the file."
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")
print "And finally, we close it."
target.close()
我不明白:
a)为什么在解释器中,如果我写raw_input("?")
,然后键入f
并按Enter键,它会输出'f'
字符串,如果我运行.py文件则不会#&# 39;不要给我回复' f'字符串?
b)另外,python docs说:"然后,该函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。那么,为什么第7行打印在新行而不是第6行("?打开文件......")。 \n
来自哪里?
答案 0 :(得分:0)
a)默认情况下,解释器会打印命令的输出,但除非使用print
语句,否则您的脚本不会这样做。
print raw_input('?')
b)'\n'
不在raw_input
返回的字符串中,但是当您按Enter键时控制台无论如何都会捕获它,因此这是使用{{1}时产生的副作用}。
raw_input
答案 1 :(得分:0)
a)它确实返回字符串,但你没有将它保存在变量中。交互式翻译将在这种情况下回应价值。
b)\n
可能是输入的一部分(您的输入),但很难知道您究竟是什么意思。