2016-07-07 67 views
1

我想創建一個計算銷售稅的程序。我首先詢問用戶他們的膳食總成本是多少。然後我問他們什麼是他們的區域的形式銷售稅:Python:如何使用輸入函數在句子中間輸入用戶輸入(填空式樣)?

y = input('What is the sales tax of your area? ') 

我想有在問題結束百分號「%」,使用戶看到的問題是:

您所在地區的銷售稅是多少?_%,用戶可以在問題和百分號之間輸入數字(用下劃線表示)。

這是我曾嘗試:

x = float(input("What is the cost of your meal? ")) 
y = input("What is the sales tax in your area? "+"%") 

float(y) 
y = y/100 
cost = (x+(x*y)) 

print("The cost of your food is " + cost) 
+0

當你嘗試時發生了什麼?它與你的期望有什麼不同? –

+0

@DanielRoseman然後輸入在''%''符號後面。他希望之前擁有它。 –

+0

它可能可以做到,但對於我來說,對於基於CLI的應用程序級別來說,這似乎過於複雜。 –

回答

0

你不能做到這一點與輸入()不知道的投入將持續多久。你可以讓用戶回答百分比。您可以使用ANSI轉義碼將百分號放在輸入的位置後面,但如果鍵入直到達到百分號,它將被覆蓋。如果你真的需要這個,那麼你可以使用curses作爲整個事情。

0

你可以做這樣的事情

x=input("What is the sales tax in your area? % \x1B[5D") 

它先打印行,然後\x1B[5D向後移動光標5處的轉義序列。但是第一個回答說,如果事先不知道輸入將會持續多久,你就無法做到這一點。如果時間更長,則會覆蓋百分比符號。你可以在這裏獲得more such escape sequence

此外,如果你不想讓這個非常迫切,那麼我會建議你問百分比的形式的用戶輸入,而不是把一個%標誌在inpur

+0

最終建議的問題在於用戶的輸入不能再轉換爲浮點數,因爲「%」符號不是整數......除非您知道可以刪除用戶輸入的最終字符的函數嗎?因此,如果他們輸入「6%」作爲答案,可以取消百分比符號,然後我上面的代碼可以繼續正常運行。 –

+0

也許像y = len(y)-1這樣的東西可以工作嗎? –

+0

不,我會問這樣的問題:'y = input(「你所在地區的銷售稅是多少(以百分比表示)」)'如果你想按照你所說的去做'y = y [: - 1]' – Eular

1

結束我有你的解決方案。只是一個竅門,即使經過漫長的搜索,也找不到直接的解決方案。但有一點是肯定的,你需要知道輸入的長度,否則對於很長的輸入!將被覆蓋。代碼如下:

x = float(input("What is the cost of your meal? ")) 
y = input("What is the sales tax in your area? %\rWhat is the sales tax in your area?") 

y = float(y)/100 
cost = (x+(x*y)) 

print("The cost of your food is ", cost) 
+0

不幸的是,您的解決方案會產生如下結果: 「您所在地區的銷售稅是多少?% 您所在地區的銷售稅是多少?」,第二次提問後會提示用戶輸入。 –

+0

ahhh ...你可能會使用一些編輯器....在編輯器中它不會工作...你可以嘗試任何記事本並從命令行運行,編輯器如eclise,光標甚至在儀式中閃爍多次地點!我相信一些日食也會作爲新生產線 – Deca

+0

Wats the editor u r using? – Deca