0807 - Inlocuire 1: Difference between revisions
Pagină nouă: == Cerinţa == Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se modifice șirul dat, astfel încât să se înlocuiască fiecare cuvânt cu exact trei litere din șir cu simbolul '''*'''. == Date de intrare == Programul va citi de la tastatură şirul dat. == Date de ieşire == Programul va afişa pe ecran şiru... |
No edit summary |
||
Line 7: | Line 7: | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații | * șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: bun este izvorul ce are apa rece | : bun este izvorul ce are apa rece | ||
; Ieşire | ; Ieşire | ||
: Datele introduse corespund restricțiilor impuse. | |||
: * este izvorul ce * * rece | : * este izvorul ce * * rece | ||
<br> | |||
== Exemplul 2 == | |||
; Intrare | |||
: 1235// | |||
; Ieşire | |||
: Datele introduse nu corespund restricțiilor impuse. | |||
<br> | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | # 0807 Inlocuire 1 | ||
def inlocuire( | def verificare(verificare_n): | ||
# Verificăm dacă șirul conține cel mult 255 de caractere | |||
cuvinte = | if len(verificare_n) <= 255: | ||
# Verificăm dacă șirul conține doar litere mici ale alfabetului englez și spații | |||
for | if not all(c.islower() or c.isspace() for c in verificare_n): | ||
# Dacă șirul conține alte caractere, ridicăm o excepție | |||
if len(cuvinte[ | raise ValueError | ||
# Dacă șirul este valid, îl returnăm | |||
cuvinte[ | return verificare_n | ||
else: | |||
# Dacă șirul nu este valid, ridicăm o excepție | |||
raise ValueError | |||
# Funcția inlocuire înlocuiește cuvintele cu trei litere din șir cu '*' | |||
def inlocuire(inlocuire_s): | |||
cuvinte = inlocuire_s.split() | |||
for index in range(len(cuvinte)): | |||
if len(cuvinte[index]) == 3: | |||
cuvinte[index] = '*' | |||
return ' '.join(cuvinte) | return ' '.join(cuvinte) | ||
# Citim șirul de la | |||
s = input() | if __name__ == "__main__": | ||
# | try: | ||
print(inlocuire(s)) | # Citim șirul de la utilizator | ||
s = input("Introduceti sirul de caractere: ") | |||
# Validăm șirul | |||
s = verificare(s) | |||
# Dacă șirul este valid, înlocuim cuvintele cu trei litere și afișăm rezultatul | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
print(inlocuire(s)) | |||
except ValueError: | |||
# Dacă șirul nu este valid, afișăm un singur mesaj de eroare | |||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 14:29, 12 November 2023
Cerinţa[edit | edit source]
Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații. Înaintea primului cuvânt nu există spații, și nici după ultimul. Să se modifice șirul dat, astfel încât să se înlocuiască fiecare cuvânt cu exact trei litere din șir cu simbolul *.
Date de intrare[edit | edit source]
Programul va citi de la tastatură şirul dat.
Date de ieşire[edit | edit source]
Programul va afişa pe ecran şirul transformat corespunzător.
Restricții și precizări[edit | edit source]
- șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații
Exemplul 1[edit | edit source]
- Intrare
- bun este izvorul ce are apa rece
- Ieşire
- Datele introduse corespund restricțiilor impuse.
- * este izvorul ce * * rece
Exemplul 2[edit | edit source]
- Intrare
- 1235//
- Ieşire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 0807 Inlocuire 1
def verificare(verificare_n):
# Verificăm dacă șirul conține cel mult 255 de caractere if len(verificare_n) <= 255: # Verificăm dacă șirul conține doar litere mici ale alfabetului englez și spații if not all(c.islower() or c.isspace() for c in verificare_n): # Dacă șirul conține alte caractere, ridicăm o excepție raise ValueError # Dacă șirul este valid, îl returnăm return verificare_n else: # Dacă șirul nu este valid, ridicăm o excepție raise ValueError
- Funcția inlocuire înlocuiește cuvintele cu trei litere din șir cu '*'
def inlocuire(inlocuire_s):
cuvinte = inlocuire_s.split() for index in range(len(cuvinte)): if len(cuvinte[index]) == 3: cuvinte[index] = '*' return ' '.join(cuvinte)
if __name__ == "__main__":
try: # Citim șirul de la utilizator s = input("Introduceti sirul de caractere: ") # Validăm șirul s = verificare(s) # Dacă șirul este valid, înlocuim cuvintele cu trei litere și afișăm rezultatul print("Datele introduse corespund restricțiilor impuse.") print(inlocuire(s)) except ValueError: # Dacă șirul nu este valid, afișăm un singur mesaj de eroare print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>