2012-10-19 32 views
0

我是Python編程新手。 我在其中一次練習中遇到了問題,無法想出辦法。 所以,我必須檢查一個輸入是「int」還是「float」,並返回它的絕對值。否則會出現錯誤消息。 我選擇使用'raw_input()'來接受來自用戶的輸入,但問題是它接受輸入作爲字符串。再次,我是Python新手,所以請原諒,如果這個問題似乎是愚蠢的,但我真的需要幫助。 我也添加了問題和我的代碼。 謝謝!Python:無法獲取正確的數據類型

問:

這是兩個舞伴:首先,定義一個函數,distance_from_zero,有一個參數(選擇你喜歡的任何參數的名稱)。 其次,該功能執行以下操作: 檢查它收到的輸入的類型。 如果類型是int或float,則函數應該返回函數輸入的絕對值。 如果類型是任何其他類型,函數應該返回「這不是一個整數或浮點數!」

代碼:

def distance_from_zero(n): 
    n=raw_input("Please enter a number:") 
    if type(n)==int or type(n)==float: 
     print abs(n) 
    else: 
     print "This isn't an integer or a float!" 

回答

2

基於分配的措辭,我不認爲你需要從用戶獲得輸入的。 n已經是該函數的一個參數,所以只需檢查傳入的值而不用n=raw_input("Please enter a number:")覆蓋它。然後用不同的參數類型調用函數。

1
try: 
    float(n) 
except Exception: 
    //not a float 

嘗試類似的東西,讓你開始。

3

這裏有一些問題可以讓你像程序員一樣思考這個問題。

  1. 當您嘗試將一串非數字轉換爲int時會發生什麼?
  2. 當您嘗試將整數類字符串轉換爲int時會發生什麼?
  3. 當您嘗試將float-like-string轉換爲int時會發生什麼?
  4. 當您嘗試將float-like-string轉換爲float時會發生什麼?
0

嘗試:

def distance_from_zero(n): 
    if type(n) == int or type(n) == float: 
     return abs(n) 
    else: 
     return "Nope" 
+0

'如果isinstance(N(整數,浮點)):' – phd

0

你需要使它返回,而不是打印您的最終聲明

+1

一些示例將有助於解釋你的答案 –

0
def distance_from_zero(n): 
if type(n) == int or type(n) == float: 
    return abs(n) 
else: 
    return("Nope") 
+0

'if isinstance(n,(int,float)):' – phd