Dígits d’un nombre enter (strings)

Resol aquests exercicis usant les funcions de conversió entre enters i strings (int, str) així com les funcions (len, max, …) i mètodes (count, replace, …) sobre strings.

  1. Dissenya la funció nombre_de_dígits que, donat un enter positiu, retorni el seu nombre de dígits.

  2. Dissenya la funció dígit_gran_petit que, donat un nombre enter positiu, obtingui i retorni el seu dígit més gran i el més petit (strings).

  3. Dissenya la funció conté_dígit que, donat un enter positiu i un altre enter positiu d’un sol dígit, comprovi si la representació decimal del primer enter conté el dígit donat. La funció ha de retornat True en aquest cas i False en cas contrari.

  4. Dissenya la funció compta_dígits que, donat un enter positiu i un altre enter positiu d’un sol dígit, retorni el nombre de dígits del primer enter que són iguals al segon enter.

  5. Dissenya la funció conté_dígit_n que, donat un enter positiu, nombre, un altre enter positiu d’un sol dígit, dígit i un tercer enter, n, comprovi si la representació decimal de nombre conté dígit com a mínim n vegades. La funció ha de retornar True en aquest cas i False en cas contrari.

  6. Dissenya la funció capicua que, donat un nombre enter positiu, retorni True si el nombre és cap-i-cua i False en cas contrari.

Desa les funcions al fitxer digits_str.py. Les funcions han de passar el següent doctest:


>>> nombre_de_dígits (1045)
4

>>> dígit_gran_petit (23726)
('7', '2')
>>> dígit_gran_petit (999214)
('9', '1')

>>> conté_dígit (23726, 3)
True
>>> conté_dígit (999214, 5)
False

>>> compta_dígits (23726, 2)
2
>>> compta_dígits (999214, 9)
3

>>> conté_dígit_n (23726, 3, 2)
False
>>> conté_dígit_n (999214, 9, 3)
True

>>> capicua (23726)
False
>>> capicua (921129)
True
>>> capicua (923429)
False
>>> capicua (3456543)
True

Nota

Pots descarregar el fitxer amb tests digits_str.txt

Solució

Disposeu de solucions al fitxer digits_str.py