2013-10-09 37 views
0

我應該寫轉換米,腳和腳在Python 3使用定義的函數米的模塊功能方面它應該像這樣顯示:印花兩大高清並排的Python 3

Feet  Meters  | Meters  Feet 

1.0   .305  | 20.0   65.574 
2.0   .610  | 26.0   81.967 
... 
9.0   2.745  | 60.0   196.721 
10.0  3.050  | 66.0   213.115 

我「M應該是使用兩個功能:

def footToMeters(foot): 

def meterToFoot(meter): 

的代碼,我有鑽機現在是這樣的:

foot = 1 
meter = 20 

def footToMeter(foot): 
    meters = foot * .305 
    print("Feet \t Meters") 
    for foot in range(1,11): 
     print(foot, "\t", meters) 
     foot +=1 
     meters = foot * .305 


print() 

def meterToFoot(meter): 
    feet = round((meter/.305),3) 
    print("Meters \t Feet") 
    for meter in range(20,69,6): 
     print(meter, "\t", feet) 
     meter += 6 
     feet = round((meter/.305),3) 


print(footToMeter(foot)) 
print(meterToFoot(meter)) 

顯然,最後兩個打印語句只是一個接一個地打印這兩個函數。

我的問題是我怎麼並排拿到兩個功能兩個打印的一面呢?

任何幫助非常感謝!謝謝!

+1

歡迎堆棧溢出!請看看stackoverflow.com/questions/how-to-ask。請考慮縮短您的問題,看看[這裏](http://forums.udacity.com/questions/2019688/python-101-unit-2-formatted-printing-and-function-documentation)和[這裏]( http://docs.python.org/3.3/tutorial/inputoutput.html)。 – arturomp

回答

3

反轉代碼:函數應該簡單地採取輸入和返回輸出,然後可以從一個循環,打印值調用。

例如:

def footToMeter(foot): 
    return foot * .305 

print("Feet \t Meters") 
for foot in range(1,11): 
    print(foot, "\t", footToMeter(foot)) 
+0

這真的很有道理哈哈!萬分感謝。但我仍然困惑於如何讓他們並排 –

+0

打印第二面你的循環只會有一個像線'打印(I,footToMeter(I),I + 25,footToMeter(1 + 25))'。也就是說,您需要確定要在每列中放置哪些值:沒有預定義的函數可以幫您實現。 – chepner

1

下面的代碼,但你需要確保兩個兩個表具有相同的行數。

通知我改變米的範圍從range(20, 69, 6)range(20, 75, 6)

順便說一句,我沒有python3,所以嘗試改變它,除非你使用特殊的轉義序列像ANSI的到python3自己:)

foot = 1 
meter = 20 


def footToMeter(foot): 
    return foot * .305 


def meterToFoot(meter): 
    return round((meter/.305),3) 


print "Feet \t Meters |\t Meters \t Feet" 
for foot, meter in zip(range(1, 11), range(20, 75, 6)): 
    print ("%s \t %s \t|\t %s \t %s" 
      % (foot, footToMeter(foot), meter, meterToFoot(meter))) 
+0

謝謝shengy。你能解釋一下%s在做什麼嗎? –

+0

可以說平等python3聲明將是'打印(腳,footToMeter(腳), 「\ t | \ t」 的,儀表,meterToFoot(米))'希望有沒有錯別字:)。關於'%s',你可以谷歌'python字符串格式化表達式' – shengy

0

打印語句(如舊的打字機)從左至右在控制檯上寫入文本,在最後一個字符後或最後一個屏幕列處打開下一行。

爲了工作的事情,只要你想,你必須分開處理單位換算和打印問題。您的轉換函數只應返回轉換後的值。然後,您可以處理另一個代碼塊或功能上的打印和格式。

下面是應該工作,你期望的那樣,使用字符串格式化爲一個更好的結果代碼:

def footToMeter(foot): 
    return foot * .305 

def meterToFoot(meter): 
    return meter/.305 

# printing the header 
print "Feet\tMeters\t|\tMeters\tFeet\n" 

# printing the values 
feet, meters = 1, 20 
for i in range(1, 11): 
    print "%0.3f\t%0.3f\t|\t%0.3f\t%0.3f" % (feet, footToMeter(feet), meters, meterToFoot(meters)) 
    feet += 1 
    meters += 4 + i % 2 * 2