Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
A efectuat:
st.gr IA-151
Gheorghia Pavel
A verificat:
lect.superior
Lazu Victoria
Chiinu 2016
Cerine:
I Probleme
1. Scriei un program care s citeasc un fiier ce conine un text. Programul va crea i va
afia pe ecran un dicionar n care vor fi stocate cuvintele i numrul de apariii ale acestora n
textul din fiier. mbuntete programul prin imprimarea cuvintele n ordinea descresctoare
a numrului de apariii.
def problema1():
file=open("text.txt","r+")
wordcount={}
for word in file.read().split():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1
print (sorted(wordcount.items()))
2. Scriei un program care adaug dou numere primite de la utilizator (de la consol) cu
verificare de erori. Scriei codul astfel nct s ceara utilizatorului un numr ntreg i apoi
verific dac ce a introdus utilizatorul e un numr valid. Afieaz un mesaj de eroare n caz c
numrul nu e valid i continu afiarea mesajului ce prompteaz utilizatorul s introduc un
numr pn cnd introduce unul valid. Sfat: Folosii raw_input pentru a citi numrul ca un ir
de caractere i apoi folosii o bucl while pentru a verifica c fiecare caracter este o cifr.
Realizai acelai lucru i pentru al doilea numr i apoi adunai-le.
def problema2():
numere=['0','1','2','3','4','5','6','7','8','9']
while 1:
k=0
3. Scriei un program pentru a gsi anagrame ntr-o anumit list de cuvinte. Dou cuvinte
sunt numite anagrame dac un cuvnt poate fi format prin rearanjarea literelor primului cuvnt.
De exemplu, A, C, E, S, T: ACEST = ASCET = CASET = CASTE = CESTA = CETAS =
SECAT = SECTA = SETCA = TEASC = TESAC sunt anagrame.
def anagrama(s):
if s== "":
return[s]
else:
ang=[]
for w in anagrama(s[1:]):
for pos in range(len(w)+1):
ang.append(w[:pos]+s[0]+w[pos:])
return ang
4. Scriei o funcie invertdict care ar interschimba cheile i valorile ntr-un dicionar. Pentru
simplificare, presupunem c toate valorile sunt unice.
def problema4():
d1={"Pavel":1, "Iulian":2, "Timur":3}
d2={}
for x in d1:
d2[d1[x]]=x
print(d2)
5. Scriei un program split.py, care are un numr ntreg n i un nume de fi ier ca argumente n
linia de comand i mparte fiierul n mai multe fiiere mici, cu fiecare avnd n linii.
def problema5():
file=open("text.txt","r+")
s=""
n=int(input("Introduceti numarul de linii"))
j=0
i=0
for line in file:
f=open("text"+str(j)+".txt","w+")
s=s+line
i=i+1
if i==n:
f.write(s)
j=j+1
i=0
s=""
6. Scriei o funcie care ar face liniarizarea unei liste. Aveti o list imbricat (adic list n
list) i creai o list nou.
De ex. liniarizare([ [1, 2, [3, 4] ], [5, 6], 7])
[1, 2, 3, 4, 5, 6, 7]
def problema6():
import itertools
lista = [[1,2,3],[4,5,6], [7], [8,9]]
listafinal = list(itertools.chain.from_iterable(lista))
print(listafinal)
7. Scriei o funcie vectorizati care ia o funcie f i returneaz o nou funcie, care ia o list ca
argument i solicit (cheam) f pentru fiecare element i returneaz rezultatul ca o list.
De exemplu:
import math
def lapatrat(a):
return a*a
def vectorizati(func):
def vec(lista):
n=0
for i in lista:
lista[n]=func(i)
n+=1
print(lista)
return vec
fnt.mainloop()
Concluzie:
Pe parcursul acestei lucrri de laborator m-am familiarizat cu instruciunile de baza ale
limbajului Python. De asemenea am utilizat pachetul de funcii Time i Random.
Lucrarea dat mi-a oferit o nelegere mai bun a structurii programelor n Python i eficien ei
lui n faa altor limbaje.