Kezdőoldal » Számítástechnika » Programozás » Pythonban for ciklus alakíthat...

Pythonban for ciklus alakítható while ciklussá?

Figyelt kérdés
Tegyük fel hogy, hogy van egy for ciklusom, ami valós számok sorozata (range, 1-től) szerint képez, aminek a felső határa egy változó, és a lépésköze is. Azt a lépésközt íratom ki, ami már nagyobb a range felső határánál. Lehetséges ezt a for ciklust while ciklussá alakítani? Ha igen, akkor hogyan? Remélem, érthetően írtam le! :)

2019. okt. 7. 22:13
1 2
 1/15 anonim ***** válasza:
Nem, nem sikerült.
2019. okt. 7. 22:22
Hasznos számodra ez a válasz?
 2/15 anonim ***** válasza:
Akkor azt mondod, hogy cikluson belül változtatod a lépésközt és ha nagyobb a range felső határánál kiíratod? Cikluson belül hogy éred a range felső határát, hogy összehasonlítsd?
2019. okt. 7. 22:58
Hasznos számodra ez a válasz?
 3/15 A kérdező kommentje:

#utolsó

Az első kérdésedre igen és igen.

Egyébként nekem is kicsit lehetetlennek tűnik, de valahogyan biztosan meg lehet csinálni, mert egyetemi programozás gyakorlaton egy ilyen feladatot kaptam. Már csak az a kérdés, hogy mégis hogyan lehetne ezt megvalósítani. :D

2019. okt. 7. 23:20
 4/15 A kérdező kommentje:

#még mindig utolsónak

A range felső határa egy változó, amit a felhasználótól kérek be (vagy standard bemenetről, ez esetben).

2019. okt. 7. 23:22
 5/15 anonim ***** válasza:

Szerintem simán meglehet.


for x in range(1, n, step):

...


helyett


x=1

while (x<range):

...

x=x+step

2019. okt. 8. 00:15
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:

while (x<n):


akart lenni

2019. okt. 8. 00:15
Hasznos számodra ez a válasz?
 7/15 anonim ***** válasza:
100%
Definíció szerint minden nyelvben át lehet alakítani, mivel a for ciklus csak egy rövidítés. Ha eltörölnék a föld színéről, akkor a programozók kicsit többet gépelnének, és kicsit nehezebb lenne átlátni a ciklus szerkezetét, de menne tovább az élet.
2019. okt. 8. 09:03
Hasznos számodra ez a válasz?
 8/15 anonim ***** válasza:

[link]

Csak arra kell figyelni, hogy a python "for" egy collection-ön vagy iterable objektumon, generátor objektumon, stb. megy végig, szóval néha csak akkor lehet while ciklussá alakítani, ha az elemek indexelhetők. Más esetben át kell gondolni az adatokat, amin a ciklus végigszalad.

De ha a for egy range objektum értékein megy végig (ami egész számok sorozatát generálja), akkor igen, az könnyen átalakítható. És igen, a while cilus magjában már szabadon tudod módosítani a ciklusváltozó értékét is.

2019. okt. 10. 16:45
Hasznos számodra ez a válasz?
 9/15 anonim ***** válasza:

Utolsó, kicsit kísérleteztem, de átalakítottam a generátort is. A bevezető szóközöket aláhúzásra cseréltem, futtatáshoz csere vissza. (Habár ez a fajta használat nem a klasszikus for ciklus, de erre is működik.)


def gen():

____for i in range(20):

________yield i



g = gen()

while True:

____try:

________print(next(g))

____except StopIteration:

________break

print('OK')

2019. okt. 12. 10:35
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:

Igen, teljesen igazad van, de ezért is fogalmaztam úgy, hogy "__néha__ csak akkor lehet while ciklussá alakítani.."

Általában használhatók az iterátor interfész metódusai, de például egy halmazon (set) már macerásabb while-al végigszaladni anélkül, hogy előtte explicit módon iterátort hoznánk hozzá létre. Szóval persze minden megoldható, csak arra akartam utalni, hogy a python for ciklusa egy picit más megközelítést használ, mint mondjuk egy C for ciklus.

2019. okt. 12. 22:46
Hasznos számodra ez a válasz?
1 2

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!