2017-08-10 5 views
0

として解釈することができない私は、コードを有する:フロート」オブジェクトは整数

a = int(input("Type a integer:")) 
    temp = [] 
    while a != 1: 
    ---> for i in range(2, a): 
      if a % i == 0: 
       temp.append(i) 
       a = a/i 
       break 
    print(temp) 

をI 60を入力し、それがエラーを与える: TypeError例外: 『フロート』の目的は、整数として解釈することはできません。

はしかし、私がチェック:

a = int(input("Type a integer")) 
type(a) 

それはint型の種類を示しています。

もしそうなら、フロートタイプはどこから来ますか?

+2

あなたは分けています! 'a'は' i'(小数部を作る)で割り切れないときは浮動小数点になります。 – Li357

+1

整数分割が必要な場合は 'a = a // i' –

答えて

0

あなたは数でそれを分割すると、それがフロートになり、あなたがで整数にそれを返すことができます。

a = a//i 
0

a = a/i 

以降に

a = int(a) 

floatは、float division a/iを使用しています。 intを使用する整数の除算を得るには//

0

aiで除算すると、それは多くの繰り返しの後に10進数になります。あなたは60で開始した場合、その後の操作は次のようにたどる:今

a = 60/2  (=30) 
a = 30/3  (=10) 
a = 10/4  (=2.5) 

、我々はaはあなたが整数であるためにそれを告げたフロートになろうとしていることがわかります。

関連する問題