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