Iată acest exercițiu de tastare din acest capitol (numiți-l cal.py (import
caută de fapt un fișier numit calendar.py și îl citește. Dacă fișierul este numit calendar.py și vede un „calendar de import”, încearcă să citească în sine , funcționând prost în cel mai bun caz.)):
import calendar
year = int(input("Type in the year number: "))
calendar.prcal(year)
Și iată o parte din rezultatul pe care l-am primit:
Type in the year number: 2001 2001 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 29 30 31 26 27 28 26 27 28 29 30 31
(Am sărit o parte din rezultate, dar cred că ați înțeles ideea.) Deci, ce face programul? Prima linie import calendar
folosește o nouă comandă import
. Comanda import
încarcă un modul (în acest caz modulul calendar
). Pentru a vedea comenzile disponibile în modulele standard, fie căutați în bibliotecă referința pentru python (dacă l-ați descărcat), fie accesați http://docs.python.org/3/library/. Dacă te uiți la documentația pentru modulul de calendar, acesta listează o funcție numită prcal
care tipărește un calendar pentru un an. Linia calendar.prcal(year)
folosește această funcție. În rezumat, pentru a utiliza un modul, importați-l și apoi utilizați module_name.function
pentru funcțiile din modul. O altă modalitate de a scrie programul este:
from calendar import prcal
year = int(input("Type in the year number: "))
prcal(year)
Această versiune importă o funcție specifică dintr-un modul. Iată un alt program care folosește Biblioteca Python (numiți-o ceva gen clock.py) (apăsați Ctrl și tasta „c” în același timp pentru a încheia programul):
from time import time, ctime
prev_time = ""
while True:
the_time = ctime(time())
if prev_time != the_time:
print("The time is:", ctime(time()))
prev_time = the_time
Cu unele ieșiri fiind:
The time is: Sun Aug 20 13:40:04 2000 The time is: Sun Aug 20 13:40:05 2000 The time is: Sun Aug 20 13:40:06 2000 The time is: Sun Aug 20 13:40:07 2000 Traceback (innermost last): File "clock.py", line 5, in ? the_time = ctime(time()) KeyboardInterrupt
Ieșirea este infinită, desigur, așa că am anulat-o (sau cel puțin ieșirea continuă până când este apăsat Ctrl+C). Programul face doar o buclă infinită (True
este întotdeauna adevărat, deci while True:
merge pentru totdeauna) și de fiecare dată verifică dacă timpul s-a schimbat și îl tipărește dacă s-a schimbat. Observați cum sunt folosite mai multe nume după instrucțiunea de import în linia from time import time, ctime
.
Biblioteca Python conține multe funcții utile. Aceste funcții oferă programelor tale mai multe abilități și multe dintre ele pot simplifica programarea în Python.
Exerciții
Rescrieți programul high_low.py
din secțiunea Decizii pentru a utiliza un număr întreg aleatoriu între 0 și 99 în loc de codul hard 7. Folosiți documentația Python pentru a găsi un modul și o funcție adecvată pentru a face acest lucru.
Soluție
Rescrieți programul high_low.py
din secțiunea Decizii pentru a utiliza un număr întreg aleatoriu între 0 și 99 în loc de codul hard 7. Folosiți documentația Python pentru a găsi un modul și o funcție adecvată pentru a face acest lucru.
from random import randint
number = randint(0, 99)
guess = -1
while guess != number:
guess = int(input ("Guess a number: "))
if guess > number:
print("Too high")
elif guess < number:
print("Too low")
print("Just right")
Alte module
Uneori doriți să utilizați un modul Python care nu vine cu instalarea Python. De asemenea, le puteți importa, dar trebuie să le aveți instalate pe computer.
Crearea propriului modul
Când python citește comanda de import, mai întâi verifică fișierele din directorul tău, apoi pachetele de site sau modulele preinstalate. Pentru a vă crea propriul modul, trebuie doar să creați un fișier .py în directorul curent și să utilizați comanda:
import module
Acesta va încerca să importe fișierul module.py din directorul dvs. curent și, dacă nu este găsit, din pachete de site și module preinstalate. Schimbarea modulului cu numele fișierului .py pe care l-ați creat va importa acel fișier.
Cu toate acestea, atunci când importă modulul, practic va porni fișierul ca program, astfel încât orice cod de acolo va fi rulat. Doriți să grupați tot codul în funcții.
__name__ == __main__
În python, variabila __name__
vă va oferi numele curent al programului. Dacă un modul pe care îl importați tipărește variabila __name__
, atunci va tipări numele modulului. Dacă fișierul curent tipărește variabila __name__
, va tipări __name__
, pentru a arăta că este programul principal.
Dacă o instrucțiune if verifică variabila name și rulează codul dacă programul este principal, poate ocoli problema de rulare neintenționată creată atunci când un modul este importat. Să spunem, de exemplu, că aveți un fișier, care rulează un cod. De asemenea, are o funcție pe care doriți să o utilizați într-un alt program. Cu toate acestea, doriți doar funcția, nu să rulați codul. Prin configurarea codului de mai jos, acesta va rula codul numai dacă este fișierul pe care s-a făcut clic sau a fost pornit, nu dacă a fost importat.
if __name__ == '__main__':
pass
În acest caz, dacă fișierul este rulat, dar nu este importat, va rula comanda pass. Puteți înlocui comanda pass cu codul pe care doriți să îl rulați atunci când nu este importat. Nu uitați să indentați codul.
Modulul pip
Modulul pip este un modul care vine odată cu instalarea Python și acționează ca un program de descărcare/manager de module. Puteți descărca alte module de pe internet cu pip.
Modulul pip nu este utilizat în interpretul Python, ci este rulat prin linia de comandă. Pentru a-l folosi, deschideți interpretul de linie de comandă (pentru Windows este Command Prompt, pentru Mac/Linux este Terminal) și introduceți următorul cod:
py3 -m pip install module
sau codul alternativ
pip install module
Acesta va încerca să descarce și să instaleze modulul din baza de date a modulelor Python trimisă de utilizator. Modulul poate fi schimbat cu numele modulului.
(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)
Lasă un răspuns