2015-10-21 92 views
1

輸入我想修改此代碼,以便它反覆詢問不同的值的x,並輸出該相應的值y的。重複線性插值

x1 = input("x1 = ") 
x2 = input("x2 = ") 
y1 = input("y1 = ") 
y2 = input("y2 = ") 

x = input("x = ") 

y = y1 * ((x-x2)/(x1-x2)) + y2 * ((x-x1)/(x2-x1)) 
print y 

我知道我需要創建圍繞x輸入和功能本身,然後可在鍵入一個單詞創建一個突破,例如無限循環'Stop',但似乎無法讓它正常工作。

+0

你是問「我怎麼做這個站時,有人類型'停'「?我們不清楚你需要什麼幫助或你的代碼是「錯誤的」。 – AlG

+0

嘿遺物,看看這個鏈接:https://wiki.python.org/moin/WhileLoop 它使用停止字打出來的一個無限循環的一個很好的例子。不要被@jonrsharpe拖延,Stack Overflow主要用於回答特定的技術問題,而不是設計或「怎麼樣」的問題。 – Symmitchry

+0

感謝您的答覆,我想我可以對我的問題更具體,也許這不是問的正確的地方。我可以創建一個循環,提示用戶輸入一個無限的輸入,直到使用「關鍵詞」來分解它,但我不確定如何將循環放入我現有的代碼中,以便在出現重複的y值之前將其重複。將繼續閱讀更多! – Relic

回答

0

print y線,它看起來像你使用Python 2.7或更早版本,所以input("x = ")將很可能給你 應對進入stop與例外NameError: name 'stop' is not defined。我建議使用raw_input,它以字符串形式返回用戶的輸入 ;您可以在嘗試將其變成浮動狀態之前檢查該字符串是否與字符串 "stop"相等。

強制輸入爲花車也意味着你不必擔心整數除法混亂的東西(谷歌爲from __future__ import division更多)。

這裏有一個例子:使用Python 2.7我的Ubuntu 14.04系統上

x1 = float(raw_input("x1 = ")) 
x2 = float(raw_input("x2 = ")) 
y1 = float(raw_input("y1 = ")) 
y2 = float(raw_input("y2 = ")) 

print 'enter "stop" to end' 

while True: 
    rawx = raw_input("x = ") 
    if 'stop' == rawx: 
     print "stopping..." 
     break 

    x = float(rawx) 

    y = y1 * ((x-x2)/(x1-x2)) + y2 * ((x-x1)/(x2-x1)) 
    print y 

運行,我得到這個:

$ python q33264238.py 
x1 = 1 
x2 = 2 
y1 = -1 
y2 = 1 
enter "stop" to end 
x = 1 
-1.0 
x = 2 
1.0 
x = 1.5 
0.0 
x = stop 
stopping...