簡體   English   中英

理解Python中的raw_input函數

[英]Understanding raw_input function in Python

我有以下代碼:

age = raw_input("How old are you? ")
height = raw_input("How tall are you? ")
weight = raw_input("How much do you weigh? ")
print " So, you're %r old, %r tall and %r heavy." %(age, height, weight)

好的,所以raw_input函數可以是標准輸出而沒有尾隨換行符。 然后,該函數從輸入中讀取一行,將其轉換為字符串(剝離尾部換行符),然后返回該行。

我不明白的是為什么每個提示消息都顯示在一個新行上,因為raw_input只返回一個字符串。 它沒有添加換行符,我在代碼中沒有任何\\n

當您輸入對raw_input()的響應時,通過輸入換行符完成。 由於您輸入的每個字符也會在您鍵入時顯示,因此新行也會顯示。

如果您修改了python內置並更改了raw_input,則可以將其終止於'。' 而不是'\\ n'。 互動可能看起來像: How old are you? 12.How tall are you? 12.How much do you weigh? 12. So you're ... How old are you? 12.How tall are you? 12.How much do you weigh? 12. So you're ...

這是一種使用msvcrt在Windows中執行此操作的方法。 您可以使用curses庫在Mac或unix上執行類似的操作。

import msvcrt
import string

print("How old are you? "),
age = ''
key = ''
while key != '\r':
    key = msvcrt.getch()
    age += key
print("How tall are you? "),
key = ''
height = ''
while key != '\r':
    key = msvcrt.getch()
    height += key
print("How much do you weigh? "),
key = ''
weight = ''
while key != '\r':
    key = msvcrt.getch()
    weight += key
print "\n So, you're %r old, %r tall and %r heavy." %(string.strip(age), string.strip(height), string.strip(weight))

示例輸出如下所示:

How old are you?  How tall are you?  How much do you weigh?
 So, you're '37' old, "6'" tall and '200' heavy.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM