Până acum, am învățat să lucrăm cu trei comenzi de bază:

zona text folosind

declarația de atribuire creează sau modifică conținutul unei variabile

imprimați câteva valori în zona de text folosind print ()

citiți valoarea introdusă de tastatură folosind input ()

ar trebui să scriem:

Acesta este designul Python pentru ciclu

Pentru ciclu

Vă vom arăta treptat câteva tipuri de bază pentru utilizarea ciclului.

Ciclează cu un număr dat de repetări

Această construcție a programului are următoarea formă:

Să scriem un program care va tasta textul introdus de 5 ori:

Un bloc de comandă poate conține nu numai o comandă, ci și mai multe comenzi, de exemplu

Blocul de comenzi care poate fi repetat într-un ciclu dat se termină, de exemplu, atunci când apare o linie de comandă la nivelul liniei pentru linie. Astfel, ultima linie cu caracterele '===========' va fi tipărită numai după sfârșitul ciclului, adică o singură dată:

Nu știm încă la ce servește variabila de ciclu (în exemplul nostru, prem). Python setează automat valoarea acestei variabile în funcție de numărul de cicluri efectuate. Deci, recordul:

înseamnă de fapt:

Astfel, programul listează:

Resetăm numărul variabil înainte de începerea ciclului. Ieșirea poate fi, de exemplu, după cum urmează:

Dacă adăugăm valoarea variabilei de ciclu în loc de 1:

obținem un set de numere de la 0 la n-1, adică 0 + 1 + 2 + 3 +. + n-2 + n-1, de exemplu:

Vedem că 15 seturi de valori 0 + 1 + 2 + 3 + 4 + 5 .

Rețineți că, cu acest algoritm, adăugăm complet inutil 0 la variabila sucet la începutul ciclului.

Ciclul cu valori numite

Să arătăm următorul tip de ciclu pentru exemplul următor:

și chiar obținem:

După lansare obținem:

Următorul exemplu arată calculul numărului de zile dintr-un an ca sumă a numărului de zile din fiecare lună:

Evident, putem folosi acest tip de ciclu numai dacă avem o listă exactă de valori și nu orice număr pe care funcția range () o gestionează anterior. .

iar rezultatul este:

Modelul acumulatorului

și probabil va fi scris:

Am văzut că funcția range (n) înlocuiește enumerarea valorilor întregi de la 0 la n-1. Această funcție este de fapt puțin mai universală: vă permite să introduceți nu numai valoarea finală a secvenței generate, ci și valoarea inițială. În acest caz, numim funcția cu doi parametri:

primul parametru indică apoi valoarea inițială a secvenței

al doilea parametru indică valoarea la care se termină generarea secvenței, i. secvența va conține doar valori mai mici decât acest al doilea parametru

iar ieșirea este de exemplu:

Acum putem ajuta șablon suplimentar calculați, de asemenea, factorul pentru orice valoare introdusă:

Să alergăm cu valori diferite:

Dacă rulăm următorul program:

am primi o declarație de 100 de linii cu numere de la 100 la 199. Dar acum ar fi util dacă print () nu s-ar termina cu o linie nouă în unele situații, ci o altă print () ar continua. Vom folosi un nou tip de parametru al funcției print ():

print (., end = 'șir') В Parametri

end = 'șir' cu toate acestea, acest șir va înlocui standardul „\ n” opțional altele, cel mai adesea va fi un singur spațiu ”sau un șir gol” ”

Acest parametru trebuie să fie listat ultima dată în lista de parametri a funcției print () după toate valorile enumerate. Datorită acestuia, după introducerea acestor valori, șirul introdus va fi scris în loc să se mute pe o nouă linie.

Dar cu un șir gol pentru parametrul final:

Vom folosi o astfel de înregistrare în principal atunci când listăm un număr mare de valori, dar și atunci când trebuie să compunem o linie a raportului din mai multe părți din diferite părți ale programului, de exemplu:

range (stop) range (start, stop) range (start, stop, step) Parametri

start primul element al secvenței generate (dacă lipsește, se presupune că 0)

Stop • valoarea la care se va opri generarea următoarei valori a secvenței - această valoare nu va mai fi în secvență

Etapa в hodnota „valoare prin care fiecare dintre următoarele elemente de secvență este mărită, dacă acest parametru lipsește, se presupune că 1

Vom arăta acest lucru cel mai bine pe exemplele de secvențe de numere întregi generate diferit. Tabelul prezintă rezultatele pentru diferiți parametri:

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

Un caz special al parametrilor funcției range () este un pas negativ, adică o situație în care avem nevoie de o secvență descrescătoare de numere. De exemplu, intervalul de notare (15, 5, -1) indică faptul că primul membru al secvenței va fi 15, toți ceilalți vor fi cu 1 mai puțin (pasul parametrului este -1) și ultimul nu va fi mai mic sau egal cu ca 5 (parametrul de oprire este 5). Testăm:

și obținem secvența:

Acest lucru ne oferă aceeași secvență ca în exemplul anterior. Sa verificam:

Ceea ce este mult mai lizibil decât utilizarea intervalului (9, -1, -1) .

Module matematice și aleatorii

funcția type () returnează tipul valorii specificate

funcțiile int (), float () și str () aruncă (convertesc) valoarea specificată la un alt tip

Funcțiile range () și inversate () generează o secvență de numere, respectiv. o întreabă

Modul matematic¶

Ultimul mesaj de eroare afirmă că trebuie să apelăm funcția sin cu un singur parametru (apelurile fără parametri nu vor fi posibile în Python).

În mod similar, putem introduce:

Acest lucru indică faptul că funcția sin () din modulul matematic calculează într-adevăr sinusul, dar unghiul trebuie introdus în radiani. Prin urmare, de exemplu, pentru a calcula păcatul (45) trebuie să scriem una dintre opțiuni:

Al doilea și al treilea calcul utilizează fie pi constantă, fie funcția de conversie radiani (), care convertește grade în radiani. Probabil cel mai des vom folosi a treia variantă folosind radiani () .

Creați un tabel pentru a evalua funcțiile sinus și cosinus pentru unghiuri de la 0 la 90 de grade la pasul 5:

Să încercăm să desenăm (în zona de text folosind unele caractere) cursul funcției sinusoidale. Deoarece câmpul de valoare al acestei funcții este intervalul numerelor reale 1> și dorim să întindem aceste valori la lățimea declarației până la 80 de caractere, scriem:

Șirul din zona de text arată astfel:

O astfel de înregistrare este mai puțin transparentă și nu recomandăm utilizarea acesteia mai ales pentru începători.

Depinde de programator să folosească jurnalul. Unii preferă versiunea anterioară cu numele bibliotecii scris cu un punct, deoarece la citirea programului este mai clar de unde a venit funcția.

Modul aleatoriu

Acest modul conține, de asemenea, o bibliotecă de funcții, dar acestea permit generarea de numere aleatorii. Vom folosi cel puțin următoarele două funcții din această bibliotecă:

Pentru a lucra cu aceste funcții, nu trebuie să uităm să scriem:

A doua funcție, choice (), funcționează foarte similar. Acesta are un singur parametru, care este de a evalua o anumită secvență. Până în prezent, am întâlnit două secvențe de valori: gama (.) Funcția și șirurile de caractere. Dacă scriem:

Pentru noi, cea mai interesantă secvență de caractere de astăzi este șirul de caractere arbitrar. De exemplu, un apel:

alege Aleatoriu valoare dintr-o secvență de șase caractere - o secvență de vocale. În mod similar, am putea scrie:

Rețineți că există trei comenzi în corpul ciclului extern exterior (cu variabila de ciclu j): atribuire, apoi așa-numita. cuibărit apel de funcție pentru ciclu și sfârșitul tipăririi () .

În exemplele următoare, vom arăta câteva situații diferite în care este utilizat ciclul for cuibărit.

Să scriem mai întâi un program care listează numerele de la 0 la 99 la 10 linii, astfel încât în ​​prima coloană să existe numere de la 0 la 9, în a doua de la 10 la 19 și în ultimul număr al zecelea să existe numere de la 90 la 99:

După lansare obținem:

În acest program, ciclul interior are și variabile de ciclu j cu valori în pași de 10, dar se începe o valoare diferită în fiecare linie.

Vom folosi aceeași idee, chiar dacă vom crea un tabel de numere de la 0 la 99, dar organizat diferit: în prima linie sunt numere de la 0 la 9, în a doua de la 10 la 19, în ultimul număr al zecelea din 90 - 99:

Desigur, diferitele înregistrări ale soluției acestei sarcini sunt mai multe.

Rețineți cea mai mică dintre variabilele ciclului rând și număr, astfel încât să putem înțelege mai bine ce se întâmplă în ce ciclu. Să alergăm, de exemplu:

Folosim în această soluție variabilă auxiliară numărul, pe care l-am setat la 1 înainte de ciclu, în ciclul interior îi scriem valoarea (și nu variabila ciclului) și apoi o mărim cu 1 .