2348 - Caracterul mediu 1
Cerința
Caracterul mediu a două sau al mai multor caractere este caracterul care are codul ASCII egal cu partea întreagă a mediei aritmetice a codurilor ASCII ale caracterelor date.
Un caracter se numeste bun daca nu este spatiu, nu este litera mare si nu este vocala .
Se citeste un sir de caractere (care poate contine si spatii). Să se determine caracterul mediu al caracterelor bune din sir .
Date de intrare
Programul citește de la tastatură un sir de caractere.
Date de ieșire
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următorul rând se va afișa caracterul mediu al caracterelor bune din sir.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări
2 ≤ numărul de caractere citite ≤ 200
- Caracterul mediu poate fi spatiu, litera mare sau vocala.
- Cel putin un caracter va fi bun
Exemplu 1
- Intrare
- fz
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- p
Exemplu 2
- Intrare
- FaZ QWaaP
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="1">
- 2348 Caracterul Mediu 1
import re
def caractere_bune(sir):
bune = []
for caracter in sir: if not re.match(r"([aeiouA-Z ])", caracter): bune.append(caracter)
return bune
def conditii(sir):
return all(( 2 <= len(sir) <= 200, len(caractere_bune(sir)) > 0 ))
def caracterul_mediu_1(sir):
caractere = [ord(c) for c in caractere_bune(sir)] medie = sum(caractere) // len(caractere)
print(chr(medie))
if __name__ == "__main__":
sir = input()
if not conditii(sir): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") caracterul_mediu_1(sir)
</syntaxhighlight>