0133 - Nume Prenume

De la Universitas MediaWiki

Cerința

Scrieți un program care citește de la tastatură două șiruri formate fiecare din cel mult 20 de caractere. Primul șir reprezintă numele unei persoane, iar al doilea șir reprezintă prenumele aceleiași persoane. Atât numele, cât și prenumele sunt formate doar din litere ale alfabetului englez și fiecare conține cel puțin o consoană. Programul construiește în memorie și afișează pe ecran un al treilea șir de caractere, care va conține consoanele din prenumele citit dispuse în ordinea în care apar în prenume, urmate de exact un spațiu și de numele citit.

Date de intrare

Programul citeşte de la tastatură cele două șiruri.

Date de ieșire

Programul afişează pe ecran șirul construit după regula precizată.

Exemplul 1

Intrare
Popescu Vasile
Ieșire
Datele de intrare corespund restricțiilor impuse.
Vsl Popescu

Exemplul 2

Intrare
aaaaaa Vasile
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0133 - Nume Prenume
def verifica_sir(sir):
    # verificăm dacă șirul conține doar litere
    if not sir.isalpha():
        return False

    consoane = "bcdfghjklmnpqrstvwxyz"
    # verificăm dacă șirul conține cel puțin o consoană
    for litera in sir.lower():
        if litera in consoane:
            return True

    return False


def construieste_sir(nume, prenume):
    sir_final = ""

    # verificăm fiecare literă din prenume și adăugăm doar consoanele în șirul final
    for litera in prenume:
        if litera.lower() in "bcdfghjklmnpqrstvwxyz":
            sir_final += litera

    # adăugăm numele la finalul șirului
    sir_final += " " + nume

    return sir_final


if __name__ == '__main__':
    # citim numele și prenumele de la tastatură
    nume = input("Introduceți numele: ")
    prenume = input("Introduceți prenumele: ")

    # verificarea restricțiilor
    if verifica_sir(nume) and verifica_sir(prenume):
        # construim și afișăm șirul final
        sir_final = construieste_sir(nume, prenume)
        print(sir_final)
        print("Datele de intrare corespund restricțiilor impuse.")
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")