Kezdőoldal » Számítástechnika » Programozás » Egyszerű Python-program?

Egyszerű Python-program?

Figyelt kérdés

Ki szeretném íratni a háromjegyű, páratlan négyzetszámokat.


szamok=[]

while i^2 < 1000 and i^2 > 99 and i^2 % 2 ==1:

szamok.append(i^2)

print(szamok)


Ezt a kódot írtam, viszont a kimenet az csak ennyi:

[]


Tudja valaki, hogy mi lehet a hiba?



2021. nov. 23. 11:35
1 2 3
 11/23 anonim ***** válasza:
100%

@9 "if (num % 2 == 0):"

Éppen, hogy a páratlanokat kell összeszedni, vagyishogy kiírni. :D

2021. nov. 23. 12:22
Hasznos számodra ez a válasz?
 12/23 anonim ***** válasza:
0%

A helyes kód a következő:


------------------------------------------

szamok=[]

i=1

limit = 1000



for i in range(limit):

num = i*i

if (num < 1000 and num > 99):

if (num % 2 == 1):

szamok.append(num)


print(szamok)

------------------------------------------

2021. nov. 23. 12:41
Hasznos számodra ez a válasz?
 13/23 anonim ***** válasza:
0%

Az egyszerűsített kód a következő:


-------------------------------------------------------------------

szamok=[]

i=1

limit = 1000



for i in range(limit):

num = i*i

if (num < 1000 and num > 99 and (num % 2 == 1)):

szamok.append(num)


print(szamok)

-------------------------------------------------------------------

2021. nov. 23. 12:46
Hasznos számodra ez a válasz?
 14/23 anonim ***** válasza:
0%

Íme a tovább egyszerűsített kód, már csak a páratlan számokat vizsgálja.


------------------------------------------------------------------

szamok=[]

i=1

limit = 1000



for i in range(1,limit,2):

num = i*i

if (num < 1000 and num > 99 and (num % 2 == 1)):

szamok.append(num)


print(szamok)

------------------------------------------------------------------

2021. nov. 23. 13:07
Hasznos számodra ez a válasz?
 15/23 anonim ***** válasza:
0%

Remélem a következő kód véleges.


-------------------------------------------------------------------

szamok=[]

limit = 1000


for i in range(1,limit,2):

num = i*i

if (num < 1000 and num > 99 and (num % 2 == 1)):

szamok.append(num)


print(szamok)

-------------------------------------------------------------------

2021. nov. 23. 13:14
Hasznos számodra ez a válasz?
 16/23 anonim ***** válasza:
100%
minek mész el 1000-ig, mikor úgyis négyzetre emeled?
2021. nov. 23. 13:43
Hasznos számodra ez a válasz?
 17/23 anonim ***** válasza:
0%
#16 Igazad van, korrigálom.
2021. nov. 23. 14:14
Hasznos számodra ez a válasz?
 18/23 anonim ***** válasza:
0%

Íme a javított kód:


-------------------------------------------------------------------

import math

szamok=[]

limit = 1000


for i in range(1,int(math.sqrt(limit)),2):

num = i*i

if (num < 1000 and num > 99 and (num % 2 == 1)):

szamok.append(num)


print(szamok)

-------------------------------------------------------------------

2021. nov. 23. 14:18
Hasznos számodra ez a válasz?
 19/23 anonim ***** válasza:
100%

Mondja mar meg valaki, hogy minek van ez a teszt: (num % 2 == 1)

Ha csak a paratlan szamok negyzetet vizsgalod eleve, akkor rohadtul felesleges.

2021. nov. 23. 14:24
Hasznos számodra ez a válasz?
 20/23 anonim ***** válasza:
32%
#19 Már megint iagazd van, javítom a kódot.
2021. nov. 23. 14:25
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!