2015-05-05 4 views
1

Мое назначение состоит в том, чтобы использовать две функции для (a) обратного числа и (b), чтобы проверить, является ли число, которое только что было отменено, является палиндром самого себя.Изменение сигнатуры функции

number = eval(input("enter number: ")) 
reverse(number) 



def reverse(number): 
    reversed = int(str(number)[::-1]) 
    isPalindrome(number,reversed) 

def isPalindrome(number,reversed): 
    if reversed == number: 
    print("the number",number,"is a palindrome.") 

else: 
    print("the number",number,"is NOT a palindrome.") 

Этот код прекрасно работает, но мой профессор хочет обе функции принимают только «номер» в качестве параметра, а не число и обращенно как я. Я не уверен, как бы я это сделал. Любая помощь будет оценена по достоинству. Спасибо всем.

+4

[DONT USE 'eval'] (http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html) Используйте' int' там. Кроме того, здесь есть серьезные проблемы с углублением. Попробуйте исправить их. –

+0

И наоборот, и 'isPalindrome' могут также взять строку в качестве аргумента. Не имеет смысла спрашивать, является ли число палиндром, только если его представление в конкретной базе. Сто девяносто пять не являются палиндром в базе 10 (195) или базовой 16 (C3), но он является двоичным числом без знака (11000011). – chepner

ответ

0

Вы можете использовать аргументы, передаваемые входы функций и использовать return ключевое слово, чтобы получить выходы из функций

def reverse(number): 
    return ''.join(str(number)[::-1]) 

def isPalindrome(number): 
    return str(number) == reverse(number) 

Пример

>>> isPalindrome(100) 
False 
>>> isPalindrome(5005) 
True 
+0

в обратной функции 'str (number) [:: - 1]' достаточно, не нужно использовать join – Hackaholic

0

Вам не нужно бросить в целое на всех , вы звоните reverse в isPalindrome, все, что вам нужно передать, это входная строка:

def reverse(number): 
    return number[::-1] # return string reversed 

def isPalindrome(number): 
    if reverse(number) == number: # compare reversed string to original 
     print("the number", number, "is a palindrome.") 
    else: 
     print("the number", number, "is NOT a palindrome.") 


number = input("enter number: ") 
isPalindrome(number) 
Смежные вопросы