このコードを持っていて、その中にすべての素数を入れたタプルを印刷することになっています。しかし代わりに、それは空のタプルを印刷しているだけです...allPrimes空のタプルを印刷します。Python
誰かが私にその理由を教えてもらえますか? 私もタプルを使用する必要があります。ここで
def isPrime(number):
for i in range(2,int(number**(0.5))+1):
if number % i == 0:
return False
else:
return True
def allPrimes(number):
tup=()
for i in range(1,number):
if isPrime(i) == True:
tup += (i,)
print(tup)
allPrimes(26)
あなたisPrime機能が動作しないためです正しいコード
def isPrime(number):
if number < 2:
return False
for i in range(2, int(number ** (0.5)) + 1):
if number % i == 0:
return False
return True
def allPrimes(number):
tup=()
for i in range(1,number):
if isPrime(i) == True:
tup += (i,)
print(tup)
allPrimes(26)
out[1]: (2, 3, 5, 7, 11, 13, 17, 19, 23)
私は自分のコードを少し編集しましたが、それでも動作しません。 – drewteriyaki
タプルを使用する必要があります、それはassactionment用です – drewteriyaki
それを構築するために 'list'を使うのが普通です。最後に 'タプル'でなければならない場合でも、 'list'をビルドして、最後に一度' tuple'に変換する方が、新しい 'tuple'を1つ長く生成する方がずっと速いです。 'ret = []'を初期化し、 'tup + =(i、)'を 'ret.append(i)'に変更し、 'return' /' print'すると 'print(tuple(ret)) 'または' return tuple(ret) 'を返します。 – ShadowRanger