2015-12-21 45 views

回答

0

userEuro是一個字符串。您應該使用float(raw_input())將其轉換爲浮點數。

FYI,字符串可以相乘,而是僅由一個整數。這導致在一個字符串連接:

print 'a' * 2 
>> 'aa 
0

更改第二行:

USD = float(userEuro) * 1.3667 

的raw_input接受用戶輸入作爲String。 在執行上述數學運算之前,您需要將其轉換爲浮點數。

1

哪個用戶在輸入raw_input()返回值的string

所以userEuro變量的類型爲字符串,您可以通過type()方法檢查

>>> userEuro = raw_input("What amount in Euro do you wish to convert?") 
What amount in Euro do you wish to convert?1.2 
>>> type(userEuro) 
<type 'str'> 
>>> userEuro 
'1.2' 

型鑄造從字符串轉換浮。

>>> float(userEuro) 
1.2 
>>> 

異常類型的鑄造過程中的處理,因爲用戶可以輸入錯誤的值作爲輸入。

>>> userEuro = raw_input("What amount in Euro do you wish to convert?") 
What amount in Euro do you wish to convert?ab 
>>> userEuro 
'ab' 
>>> float(userEuro) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: could not convert string to float: ab 

>>> try: 
... float(userEuro) 
... except ValueError: 
... print "Wrong value for type casting: ", userEuro 
... 
Wrong value for type casting: ab 
>>> 

什麼是TypeError: can't multiply sequence by non-int of type 'float'例外:

當我們通過浮點值乘以字符串,則該異常來。

>>> "1.2" * 1.3667 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can't multiply sequence by non-int of type 'float' 

字符串是多個由整數值

>>> "test" * 2 
'testtest' 

但是字符串多個由整數或浮點值

>>> "test" * '2' 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can't multiply sequence by non-int of type 'str' 
>>> 

的Python 3.X

raw_input()方法是從Python 3.x的除去,

raw_input()用於Python 2.x的

input()用於Python 3.x的

相關問題