2013-01-17 75 views
2

從我的閱讀的一個問題學習Python困難的方法的raw_input()在Python

y = raw_input("Name? ") 

,並將結果置於變量y。

然後在下面的代碼,的raw_input( 「?」)線9,哪裏,結果去了?

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') 

... 

回答

3

簡單地說,它不會存儲 - 控制-C(^C)得到解釋停止做它在做什麼,然後退出。如果您在問號處輸入其他內容(當然也可以按Enter),程序將運行。 raw_input是隻有等待用戶輸入。

+1

需要注意的是「什麼」不一定會導致程序繼續;程序只會在輸入以「Enter」終止時重新獲得控制權。 –

1

輸入未被存儲。這裏使用raw_input是爲了確認,所以輸入的值是不相關的;該程序只關心等待,直到輸入Ctrlc被按下。

1

在你的情況raw_input("?")代表像Press any key to continue

在非交互模式_沒有特殊的意義。

Python解釋明白「_」,以它 計算的最後一個值的引用,輸入被存儲在一個特殊的變量_

In [83]: raw_input("Enter : ") 
Enter : Hi There 
Out[83]: 'Hi There' 

In [84]: _ 
Out[84]: 'Hi There' 
+1

提及'_'的+1。儘管它從未真正用於該程序。 – Volatility

+6

只有在解釋器交互運行時纔是如此。通常情況並非如此,如果OP向其代碼添加「print _」並運行它,結果將是一個「NameError」。 – DSM

+0

@DSM和正常的警告適用於'_',當它是'gettext'和co通用時... –