0032 - EliminareCifre
Cerinţa
Să se scrie definiția completă a funcției Python P care primește prin intermediul parametrului n un număr natural cu cel mult 9 cifre, iar prin intermediul parametrului c o cifră. Funcția întoarce tot prin intermediul parametrului n numărul obținut prin eliminarea tuturor aparițiilor cifrei c.
Restricţii şi precizări
- numele funcției va fi P
- funcția va avea doi parametri: primul parametru este n, iar al doilea este c
- dacă după eliminare numărul obținut nu mai conține nici o cifră sau conține doar cifre 0, rezultatul va fi 0
Exemplu
Dacă n=2524722 și c=2, după apelul funcției P(n,c), n va avea valoarea 547
Explicație
Funcția P(n, c) primește un număr natural n și o cifră c și elimină toate aparițiile cifrei c din n. Pentru a realiza aceasta, funcția va converti n într-un șir de caractere și va itera prin fiecare cifră din șirul respectiv. Dacă cifra respectivă este diferită de c, ea va fi adăugată la un șir rezultat result. La final, funcția va returna șirul result convertit înapoi la număr întreg. În cazul în care numărul rezultat este 0 sau conține doar cifre 0, funcția va returna 0.
Rezolvare
<syntaxhighlight lang="python"> def validare_P(n, c):
if not isinstance(n, int) or n < 0: raise ValueError("n trebuie să fie un număr natural") if not isinstance(c, int) or not 0 <= c <= 9: raise ValueError("c trebuie să fie o cifră între 0 și 9")
def P(n, c):
validare_P(n, c) n_str = str(n) n_fara_c = "".join([cifra for cifra in n_str if cifra != str(c)]) if len(n_fara_c) == 0 or all(cifra == "0" for cifra in n_fara_c): return 0 return int(n_fara_c)
def main_P():
try: n = int(input("Introduceți un număr natural cu cel mult 9 cifre: ")) c = int(input("Introduceți o cifră între 0 și 9: ")) validare_P(n, c) rezultat = P(n, c) print(f"Numărul obținut prin eliminarea cifrei {c} din {n} este: {rezultat}") except Exception as ex: print(f"O eroare a survenit: {ex}")
</syntaxhighlight>