我試圖從用戶那裏讀取一個\n
字符,但它不工作。 這裏是我的代碼:閱讀Python中的「 n」字符失敗
op = raw_input("Hit enter to continue!")
if op == '\n':
#run code
然而,當我打進入if condition
裏面的代碼不會運行。這就像op不是\n
,雖然我剛剛進入。
我試圖從用戶那裏讀取一個\n
字符,但它不工作。 這裏是我的代碼:閱讀Python中的「 n」字符失敗
op = raw_input("Hit enter to continue!")
if op == '\n':
#run code
然而,當我打進入if condition
裏面的代碼不會運行。這就像op不是\n
,雖然我剛剛進入。
來自raw_input docstring:「從標準輸入讀取一個字符串,尾隨的換行符被刪除。
所以才改爲
if op == '':
#run code
raw_input
從輸入端去除\n
。如果你想檢查一個字符串的空白,即:用戶剛剛使用輸入...只需使用if not op
。
您還可以在此調試自己很容易,比如:
op = raw_input('enter something: ') # hit only enter
print repr(op) # it's a blank string
+1顯示如何進行調試。教一個人釣魚... – SethMMorton
不,raw_input
(Python的2.X)或input
(Python 3.x都有)不返回的最後一個換行符(\n
)字符因爲這是它如何知道你已經完成輸入輸入。
如果你想檢查空用戶輸入(簡單的輸入),你可以做
if not op:
# code
或
if op == "":
# code
的if not op:
版本是因爲從not
布爾評估通用聲明返回True
所有這些 -
''
,[]
,{}
,()
False
,0
,0.0
,檢查是否有空白的輸入的最佳方法是對第一條帶然後測試感實性:
if not op.strip():
#code
您需要調用帶(),因爲空格仍然True
:
>>> s
' '
>>> bool(s)
True
如果你想,直到用戶點擊進入,你可以只使用暫停的Python 2.x的腳本:
raw_input("Hit enter to continue!")
那麼不管是輸入腳本會繼續使用任何代碼遵循什麼。我傾向於做它的功能(一個稱爲例如「提示」),所以,如果我想要編輯的提示或行爲,我可以編輯的功能,所以:你什麼時候
def prompt():
raw_input("Hit enter to continue!")
然後在您的腳本想暫停直到用戶輸入任何東西使用:
prompt()
'raw_input'不返回新的行字符。 – Tim