2659 - Split Text
Cerința[edit | edit source]
Să se scrie funcția cu următorul antet:
SplitText(propozitie)
Funcția primește ca parametri:
- un șir de caractere
propozitie
de lungime maximă200
.
Șirul propozitie
memorează un text format din cuvinte și separatori. Cuvintele sunt formate din litere, iar restul caracterelor din text sunt separatori. Funcția va returna propoziția introdusă de la tastatură despărțită in cuvinte sau va afișa un mesaj corespunzător în cazul în care nu sunt respectate restricțiile impuse.
!!!Atenție: Problema este modificată față de cea de pe PbInfo ca să corespundă limbajului de programare Python.
Restricții și precizări[edit | edit source]
- Lungimea maximă a șirului
propozitie
este200
- Șirul va conține cel puțin un cuvânt
- Numărul maxim de cuvinte din text este
100
- Cuvintele textului au lungimea maximă
29
Exemplul 1[edit | edit source]
Input:
O suta de ani ... de Romania!
Output consola:
['O', 'suta', 'de', 'ani', 'de', 'Romania']
Va furniza rezultatul: cuv[0]="O"
, cuv[1]="suta"
, cuv[2]="de"
, cuv[3]="ani"
, cuv[4]="de"
, cuv[5]="Romania"
.
Exemplul 2[edit | edit source]
Input:
O suta de ani ... de Romaniaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
Output consola:
Propoziția nu respectă toate condițiile.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def verifica_conditii(propozitie):
# Verificăm dacă lungimea șirului este mai mică sau egală cu 200 if len(propozitie) > 200: return False # Despartim șirul în cuvinte cuvinte = propozitie.split() # Verificăm dacă există cel puțin un cuvânt în șir if not cuvinte: return False # Verificăm numărul maxim de cuvinte în șir if len(cuvinte) > 100: return False # Verificăm lungimea maximă a cuvintelor if any(len(cuvant) > 29 for cuvant in cuvinte): return False # Dacă toate condițiile sunt îndeplinite, returnăm True return True
def SplitText(propozitie):
# Verificăm condițiile if verifica_conditii(propozitie): # Filtram caracterele care nu sunt alfanumerice propozitie_filtrata = .join(caracter if caracter.isalnum() or caracter.isspace() else ' ' for caracter in propozitie) # Folosim metoda split() pentru a desparti propoziția filtrată în cuvinte cuvinte = propozitie_filtrata.split() # Afisăm rezultatul print("Cuvintele din propoziție sunt:", cuvinte) else: print("Propoziția nu respectă toate condițiile.")
SplitText(input("Introduceti propozitia: ")) </syntaxhighlight>