0232 - Eliminare Numere

De la Universitas MediaWiki

Cerinţa

Să se scrie un program care citeşte de la tastatură un şir de cel mult 100 de caractere,format din cuvinte şi numere, separate prin unul sau mai multe spații. Cuvintele sunt formate numai din litere ale alfabetului englez. Toate numerele sunt reale, pozitive şi sunt formate numai din parte întreagă sau din parte întreagă şi parte fracționară, separate prin punctul zecimal (.).

Programul va elimina din şir toate numerele care au parte fracționară.

Date de intrare

Programul citeşte de la tastatură un şir de cel mult 100 caractere.

Date de ieșire

Programul afişează pe ecran şirul obţinut prin eliminarea numerelor care au parte fracționară.

Exemplul 1

Intrare
Reprezentat  cu 4 zecimale PI este 3.1415 si e este 2.7182
Iesire
Datele de intrare corespund restrictiilor impuse
Reprezentat  cu 4 zecimale PI este  si e este 


Exemplul 2

Intrare
Loremipsumdolorsitamet,consecteturadipiscingelit.Vestibulumeuismodnequeeumetusrhoncus,neciaculispurussollicitudin.Quisquecondimentum,lacusidsuscipitvestibulum,odiosemegestasnunc,velaliquetpuruseratnecelit.
Iesire
Datele de intrare nu corespund restrictiilor impuse


Rezolvare

import re


def main():
    # Citirea șirului de la tastatură
    sir = input().strip()

    # Verifică dacă șirul respectă restricțiile
    if len(sir) > 100:
        print("Datele de intrare nu corespund restrictiilor impuse")
        return

    print("Datele de intrare corespund restrictiilor impuse")

    # Crearea unui pattern regex pentru a găsi numerele cu parte fracționară
    pattern = r'\b\d+\.\d+\b'

    # Înlocuirea numerelor cu parte fracționară cu un șir gol
    sir_nou = re.sub(pattern, '', sir)

    # Afișarea noului șir
    print(sir_nou)


if __name__ == "__main__":
    main()