Eddig három alapvető paranccsal tanultunk meg dolgozni:
a hozzárendelési utasítás létrehozza vagy megváltoztatja egy változó tartalmát
nyomtasson ki néhány értéket a szövegterületre a print () használatával
olvassa el a billentyűzet által beírt értéket az input () segítségével
írnunk kellene:
Ez a Python kialakítása for-ciklus
For-ciklus
Fokozatosan bemutatjuk a ciklus használatának néhány alapvető típusát.
Ciklus adott számú ismétléssel
Ez a programkonstrukció a következő alakú:
Írjunk egy programot, amely ötször írja be a beírt szöveget:
A parancsblokk nemcsak egy parancsot tartalmazhat, hanem például több parancsot is
Az adott ciklusban megismételhető parancsok blokkja akkor ér véget, amikor egy parancssor megjelenik a for-line vonal szintjén. Így az utolsó „============” karakterű sor csak a ciklus befejezése után, azaz csak egyszer kerül kinyomtatásra:
Még nem tudjuk, hogy mire szolgál a ciklusváltozó (példánkban prem). A Python automatikusan beállítja ennek a változónak az értékét a ciklus végrehajtásának száma alapján. Tehát a lemez:
valójában azt jelenti:
Így a program felsorolja:
A változó számát nullázzuk a ciklus kezdete előtt. A kimenet például a következő lehet:
Ha 1 helyett hozzáadjuk a ciklusváltozó értékét:
0 és n-1 közötti számkészletet kapunk, azaz 0 + 1 + 2 + 3 +. + n-2 + n-1, például:
Látjuk, hogy 15 készlet 0 + 1 + 2 + 3 + 4 + 5 értékű .
Megjegyezzük, hogy ezzel az algoritmussal teljesen feleslegesen adunk 0-t a ciklus elején a siket változóhoz.
Ciklus megnevezett értékekkel
Mutassuk meg a következő típusú for-ciklust a példán:
és valóban kapunk:
Indítás után kapjuk:
A következő példa az egy nap napszámának kiszámítását mutatja az egyes hónapok napszámának összegeként:
Nyilvánvaló, hogy csak akkor használhatjuk ezt a típusú ciklust, ha pontos értéklistánk van, és nem olyan szám, amelyet a range () függvény korábban kezel. .
és az eredmény:
Akkumulátor minta
és valószínűleg ezt fogják írni:
Láttuk, hogy a range (n) függvény helyettesíti az egész értékek felsorolását 0-tól n-1-ig. Ez a funkció valójában egy kicsit univerzálisabb: lehetővé teszi, hogy ne csak a létrehozott szekvencia végértékét adja meg, hanem a kezdeti értéket is. Ebben az esetben a függvényt két paraméterrel hívjuk meg:
az első paraméter ezután a szekvencia kezdeti értékét jelzi
a második paraméter azt az értéket jelöli, amelynél a sorozatgenerálás véget ér, azaz. a sorrend csak a második paraméternél kisebb értékeket tartalmaz
és a kimenet például:
Most segíthetünk további sablon számítsa ki a tényezőt bármely beírt értékre is:
Futtassunk különböző értékekkel:
Ha a következő programot futtatjuk:
kapnánk egy 100 soros kimutatást 100 és 199 közötti számokkal. De most hasznos lenne, ha a print () egyes helyzetekben nem új sorral zárulna, hanem egy másik nyomtatás () folytatódna. A print () függvény új típusú paramétereit fogjuk használni:
print (., end = 'string') ¶ Paraméterek
end = 'string' ez a karakterlánc azonban felváltja a szokásos '\ n' opcionális másokat, leggyakrabban egyetlen szóköz vagy üres karakterlánc lesz ''
Ezt a paramétert az összes felsorolt érték után utoljára kell feltüntetni a print () függvény paraméterlistájában. Ennek köszönhetően ezeknek az értékeknek a beírása után a beírt karakterlánc megírásra kerül, ahelyett, hogy új sorra lépne.
De egy üres karakterlánccal a végparaméterhez:
Ezt a rekordot főleg akkor fogjuk használni, ha nagyszámú értéket sorolunk fel, de akkor is, amikor a jelentés egy sorát össze kell állítanunk a program különböző részeiből, például:
tartomány (leállítás) В tartomány (indítás, leállítás) tartomány (indítás, leállítás, lépés) Paraméterek
Rajt a generált szekvencia első eleme (ha hiányzik, feltételezzük, hogy 0)
álljon meg olyan érték, amelynél a szekvencia következő értékének létrehozása leáll - ez az érték már nem lesz a sorozatban
lépés в hodnota “érték, amellyel a következő szekvenciaelemek mindegyike megnövekszik, ha ez a paraméter hiányzik, akkor feltételezzük, hogy 1
Ezt legjobban a különféle módon generált egész szekvenciák példáin mutatjuk be. A táblázat a különböző paraméterek eredményeit mutatja:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
10, 20, 30, 40, 50, 60, 70, 90
A tartomány () függvény paramétereinek speciális esete negatív lépés, azaz olyan helyzet, amikor csökkenő számsorra van szükségünk. Például a jelölési tartomány (15, 5, -1) azt jelzi, hogy a szekvencia első tagja 15 lesz, az összes többi 1-gyel kevesebb lesz (a paraméterlépés -1), és az utolsó nem lesz kisebb vagy egyenlő mint 5 (a stop paraméter 5). Teszteljük:
és megkapjuk a sorrendet:
Ez ugyanazt a sorrendet adja meg nekünk, mint az előző példában. Nézzük meg:
Mi sokkal olvashatóbb, mint a (9, -1, -1) tartomány használata .
Matematikai és véletlenszerű modulok
a type () függvény a megadott érték típusát adja vissza
Az int (), float () és str () függvények a megadott értéket egy másik típusba öntik (konvertálják)
A tartomány () és a fordított () függvény számok sorozatát hozza létre. kérdezik tőle
Matematikai modul
Az utolsó hibaüzenet azt állítja, hogy a sin függvényt csak egy paraméterrel kell meghívnunk (a paraméter nélküli hívások nem lesznek lehetségesek a Pythonban).
Hasonlóképpen megadhatjuk:
Ez azt jelzi, hogy a matematikai modulból származó sin () függvény valóban kiszámítja a szinuszt, de a szöget radiánban kell megadni. Ezért például a bűn (45) kiszámításához ki kell írnunk az egyik lehetőséget:
A második és a harmadik számítás vagy a konstans pi-t, vagy a radians () konverziós függvényt használja, amely a fokokat radiánokká konvertálja. Valószínűleg leggyakrabban a harmadik változatot fogjuk használni radiánokkal () .
Hozzon létre egy táblázatot a szinusz- és koszinusz-függvény 0 és 90 fokos szögek értékeléséhez az 5. lépésben:
Próbáljuk meg megrajzolni (a szövegterületen néhány karakter segítségével) a szinusz függvény menetét. Mivel ennek a függvénynek az értékterülete az 1> valós számok intervalluma, és ezeket az értékeket az utasítás szélességéig szeretnénk nyújtani 80 karakterig, ezért ezt írjuk:
A szövegmezőben lévő karakterlánc ekkor így néz ki:
Egy ilyen rekord kevésbé átlátszó, és nem javasoljuk annak használatát, különösen kezdőknek.
A napló használata a programozó feladata. Egyesek az előző verziót részesítik előnyben, a pont nevével megírva a könyvtár nevét, mert a program olvasása során egyértelműbb, hogy a függvény honnan jött.
Véletlenszerű modul
Ez a modul függvénykönyvtárat is tartalmaz, de ezek véletlen számok generálását teszik lehetővé. Legalább a következő két funkciót fogjuk használni ebből a könyvtárból:
Ezeknek a funkcióknak a működése érdekében nem szabad megfeledkeznünk az alábbiakról:
A második függvény, a választás (), nagyon hasonlóan működik. Ennek csak egyetlen paramétere van, amely valamilyen szekvencia kiértékelésére szolgál. Eddig két értéksorral találkoztunk: a tartomány (.) Funkció és a karakterláncok. Ha azt írjuk:
Számunkra a legérdekesebb karaktersorozat a tetszőleges karakterlánc. Például egy hívás:
választja Véletlen érték egy hat karakterből álló sorozatból - magánhangzók sorozata. Hasonlóképpen írhatnánk:
Vegye figyelembe, hogy a külső for-ciklus törzsében három parancs van (a j ciklusváltozóval): hozzárendelés, majd ún. beágyazott ciklus és a nyomtatás vége () függvényhívás .
A következő példákban számos különböző helyzetet mutatunk be, amelyekben a beágyazott for-ciklust használják.
Írjunk először egy programot, amely 0 és 99 és 10 sor közötti számokat sorol fel, úgy, hogy az első oszlopban 0 és 9, a másodikban 10 és 19 között, az utolsó tizedik számban pedig 90 és 99:
Indítás után kapjuk:
Ebben a programban a belső ciklusnak is vannak j ciklusváltozói a 10-es lépésekben szereplő értékekkel, de minden sorban más-más érték indul.
Ugyanazt az ötletet fogjuk használni, még akkor is, ha 0 és 99 közötti számtáblát készítünk, de másképp rendezve: az első sorban 0 és 9, a másodikban 10 és 19 között, az utolsó tizedikben pedig 90–99:
Természetesen a feladat megoldásának különféle különféle nyilvántartásai többek.
Figyelje meg mind a sor-, mind a számciklus-változó közül a kisebbet, így jobban megérthetjük, hogy melyik ciklusban mi történik. Fussunk például:
Ebben a megoldásban használjuk segédváltozó azt a számot, amelyet a ciklus előtt 1-re állítottunk, a belső ciklusban kinyomtatjuk az értékét (és nem a ciklusváltozót), majd növeljük 1-gyel .