0236 - Sort 2
Cerinţa[edit | edit source]
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[edit | edit source]
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[edit | edit source]
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[edit | edit source]
- 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[edit | edit source]
- sort2.in
- 86 18 7210 73 15 5
- 7989 825
- 562 732 5 911
- sort2.out
- 5 5 15 18 73 86
Rezolvare[edit | edit source]
<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>