0807 - Inlocuire 1: Diferență între versiuni

De la Universitas MediaWiki
(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...)
 
Fără descriere a modificării
 
Linia 7: Linia 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
== Exemplu ==
== 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>
# Definim funcția care va înlocui cuvintele cu trei litere
# 0807 Inlocuire 1
def inlocuire(s):
def verificare(verificare_n):
    # Împărțim șirul în cuvinte
    # Verificăm dacă șirul conține cel mult 255 de caractere
     cuvinte = s.split()
    if len(verificare_n) <= 255:
    # Parcurgem fiecare cuvânt
        # Verificăm dacă șirul conține doar litere mici ale alfabetului englez și spații
     for i in range(len(cuvinte)):
        if not all(c.islower() or c.isspace() for c in verificare_n):
        # Dacă lungimea cuvântului este 3
            # Dacă șirul conține alte caractere, ridicăm o excepție
         if len(cuvinte[i]) == 3:
            raise ValueError
            # Înlocuim cuvântul cu '*'
        # Dacă șirul este valid, îl returnăm
             cuvinte[i] = '*'
        return verificare_n
    # Reunim cuvintele înapoi într-un șir și îl returnăm
    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 tastatură
 
s = input()
if __name__ == "__main__":
# Apelăm funcția și afișăm rezultatul
    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>

Versiunea curentă din 12 noiembrie 2023 14:29

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 şirul transformat corespunzător.

Restricții și precizări

  • șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații

Exemplul 1

Intrare
bun este izvorul ce are apa rece
Ieşire
Datele introduse corespund restricțiilor impuse.
* este izvorul ce * * rece


Exemplul 2

Intrare
1235//
Ieşire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare

# 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.")