首頁 >後端開發 >Python教學 >如何防止Python輸入函數中插入換行符號?

如何防止Python輸入函數中插入換行符號?

Susan Sarandon
Susan Sarandon原創
2024-10-26 15:50:30962瀏覽

How to Prevent Newline Insertion in Python's Input Functions?

如何避免在輸入函數中插入換行

在Python中使用輸入函數時,通常希望阻止它自動添加用戶輸入後的換行符。這允許在某些場景中實現更無縫的流程。

為了實現這一點,許多 Python 使用者都熟悉使用尾隨逗號抑制 print 語句中換行符的方法。但是,在處理 Python 2.x 中的 raw_input 或 Python 3.x 中的 input 等輸入函數時,同樣的技術並不適用。

理解問題

使用 raw_input(或 input)時,新行字元(表示為「n」)總是附加在使用者輸入之後。在提示需要與輸入位於同一行的情況下,這可能會出現問題,如下例所示:

print "Hello, "
name = raw_input()
print ", how do you do?"

結果:

Hello, Tomas
, how do you do?

期望結果:

Hello, Tomas, how do you do?

克服限制

方法1:使用自定義方法

正如Ferdinand Beyer 所提到的,從根本上不可能直接從raw_input 或input 中消除換行符。但是,有一種涉及自訂方法的解決方法。

透過利用終端控制序列' 33[{}C 33[1A'.format(len(x) y),其中x 是使用者的長度input 並且y 是raw_input 字串的長度,可以將遊標移回到輸入輸入之前的行。

方法 2:輸入函數的替代方法

或者,還有其他方法可以收集使用者輸入而不會遇到換行問題。其中一種方法是使用 getpass 模組:

import getpass

name = getpass.getpass("Hello, ")
print ", how do you do?"

此方法顯示提示,不帶尾隨換行符,並直接返回輸入,避免額外的換行符。但是,它也會停用回顯輸入,這可能不適合所有情況。

總之,雖然不可能阻止 raw_input 或 input 附加換行符,但使用具有終端控制序列的自訂方法或探索像 getpass 這樣的替代輸入方法可以提供符合特定要求的解決方案。

以上是如何防止Python輸入函數中插入換行符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn