0236 - Sort 2
Cerinţa
Fişierul text sort2.in conţine, dispuse pe mai multe linii, cel mult 100 de numere naturale, cu cel mult 4 cifre fiecare. Să se afişeze în fişierul sort2.out, în ordine crescătoare, toate numerele din fişierul sort2.in care au cel mult 2 cifre.
Date de intrare
Fişierul de intrare sort2.in conţine, dispuse pe mai multe linii, cel mult 100 de numere naturale, cu cel mult 4 cifre fiecare.
Date de ieşire
Fişierul de ieşire sort2.out va conţine, pe prima linie, în ordine crescătoare, separate prin exact un spaţiu, toate numerele din fişierul sort2.in care au cel mult 2 cifre.
Restricții și precizări
- dacă în fişierul de intrare nu există numere cu cel mult 2 cifre, se va afişa în fişierul de ieşire, pe prima linie, mesajul “NU EXISTA”.
Exemplu
- sort2.in
- 86 18 7210 73 15 5
- 7989 825
- 562 732 5 911
- sort2.out
- 5 5 15 18 73 86
Rezolvare
<syntaxhighlight lang="python" line> def sorteaza_numere(fisier_intrare, fisier_iesire):
# Deschidem fișierul de intrare și citim numerele with open(fisier_intrare, 'r') as fisier: # Creăm o listă cu numerele care au cel mult două cifre numere = [int(numar) for linie in fisier for numar in linie.split() if len(numar) <= 2]
# Deschidem fișierul de ieșire pentru a scrie rezultatul with open(fisier_iesire, 'w') as fisier: # Dacă există numere cu cel mult două cifre, le sortăm și le scriem în fișier if numere: fisier.write(' '.join(str(numar) for numar in sorted(numere))) # Dacă nu există numere cu cel mult două cifre, scriem mesajul "NU EXISTA" else: fisier.write('NU EXISTA')
- Acest cod va fi executat doar dacă scriptul este rulat direct
if __name__ == "__main__":
# Apelăm funcția cu numele fișierelor de intrare și de ieșire sorteaza_numere('sort2.in', 'sort2.out')
</syntaxhighlight>