1. ホーム
  2. Python

TypeError: 'float' オブジェクトが for ループ内で整数として解釈できない どうすればよいですか?

2022-02-18 05:32:41

Python 3.7

私のforループは割り算もしないのに、浮動小数点数が存在するのは本当に理解できません

というエラーメッセージが表示されます。
  ファイル "C:/Users/stars/Desktop/temp.py", 行 34, in aisprime
    for i in range(2,abs(number)):

TypeError: 'float'オブジェクトは整数として解釈できません。

私のforループ。

def isprime(number):
    for i in range(2,number):
        if number%i==0:
           # print('no')
            ブレーク
    さもなければ
       # print('yes')
        戻り 1

解決策:数値(浮動小数点数だと思っているもの)に強制的にint制限をかける。直接int型(数値)にできない場合は、int型の制限を追加する ああ、また、意図的に計算を遠回りさせて、結果をint型にする必要がある

def aisprime(number):
    for i in range(2,int(np.sqrt(number))):
        if number%i==0:
           # print('no')
            ブレーク
    さもなければ
       # print('yes')
        戻り 1

まだ理由がはっきりしないので、わかったらまた追記します?