Program Python care testeaza daca un numar este palindrom. Cod sursa

Salutare,

Astazi va propun un programel Python care verifica daca un numar este sau nu palindrom. Mai intai sa aflam ce este un palindrom:

„Un palindrom este un șir de caractere (de obicei cuvinte, fraze sau numere) care citit de la stânga la dreapta sau de la dreapta la stânga rămâne neschimbat. Termenul „palindrom” a fost introdus de scriitorul englez Ben Jonson (1572-1637) și provine de la cuvintele grecești palin (πάλιν; „înapoi”) și dromos (δρóμος; „drum, direcție”).” Sursa: wikipedia

Exemple de numere palindrom: 12321, 76899867, 2222, 1001 😉

Am decis sa pun programul in varianta completa in care testam ce se introduce de la tastatura:

  1. Verificam daca se introduce un numar si nu alte caractere
  2. La intrebarea daca se doreste testarea unui alt numar programul accepta doar „d” (da)  sau „n” (nu).

Iată codul scris de mine (*Free to copy and use for educational purposes):

# Copyright 2021 by Sebastian Chetroni - ZCoder.ro
# Free to copy and use for educational purposes
from random import choice as c
print("Salutare!")

def repeat():
    # Repetam functia pana se introduce de la tastatura litera "d" sau litera "n"
    r = 0
    while r != "d" and r != "n":
        r = input('Mai ai un numar de verificat (d/n)? ')
    if r == 'd':
        return 'd'
    if r == 'n':
        return 'n'

def check_palindrome():
    # Functia asteapta introducerea de la tastatura a unui numar pentru a fi testat daca este palindrom
    try:
        num = int(input('Introdu numarul pe care vrei sa-l verific daca este palindrom: '))
    except ValueError:
        while True:
            num = input('Te rog sa introduci un numar intreg: ')
            if str(num).isnumeric():
                num = int(num)
                break
            else: continue
    temp = num
    rev = 0
    while num > 0:
        dig = num % 10
        rev = rev * 10 + dig
        num = num // 10
    num = temp
    return num == rev

while True:
    if check_palindrome():
        print('Numarul introdus este palindrom. Ole!')
    else:
        print('Numarul introdus nu e palindrom. Pacat.')
    rep = repeat()
    if rep == 'd':
        continue
    elif rep == 'n':
        break

# Afisam un mesaj de incheiere
print(c(['Ciao!', 'Pa pa!', 'La revedere!']))
Ma numesc Sebastian, am 10 ani si sunt pasionat de: programare in Python, C++, Raspberry Pi, citit, astronomie, astrofizica, chimie, sport, fotografie si Xbox. Ma gasesti si pe: Instagram, Youtube, Facebook
Comments

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *