Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2019, 20:03   #1
Smolk
 
Регистрация: 23.02.2018
Сообщений: 8
По умолчанию Проблема с типами данных

Недавно начал изучать Python. Во время обычной практики обнаружил проблему с типами данных. В коде, который будет написан ниже, есть формула из функции b = (b*10) + (pal%10). Не могу понять в чём проблема. Данный код имеет простейший алгоритм проверки числа на палиндромность.
Двойным цикл while перебирает числа.Переменная i перебирается от 999 до 990 и переменная j перебирается от 999 до 990 (границы циклов я изменил для удобного дебага). Затем значения i и j перемножаются и передаются в качестве аргумента в функцию is_pal и там сравниваются число, которое было передано в функцию и число полученное при помощи формулы b = (b*10) + (pal%10). Но оказывается эта формула делает из целочисленного числа в действительные. Не могу понять в чём проблема.
Вот код
Код:
def is_pol(pal):
	a = pal
	b = 0
	while pal>0:
		b = (b*10) + (pal%10)
		pal /=10
		print(a, b, sep = "  ", end = "\n\n")
	return a == b

i=j=999
while i>990:
	while j>990:	
		if is_pol(i*j):
			print(i*j-1)
			break
		j-=1
	i-=1
На скриншоте слева переменная a, а слева переменная b, которые должны сравниваться и результатом операции return определяется палиндромность числа(это наверное было понятно
Безымянный.png

Последний раз редактировалось Smolk; 22.07.2019 в 20:11.
Smolk вне форума Ответить с цитированием
Старый 22.07.2019, 20:11   #2
Smolk
 
Регистрация: 23.02.2018
Сообщений: 8
По умолчанию

Можете пожалуйста дать совет, чтобы я не допускал в дальнейшем такие ошибки или поправить мой код.
Заранее спасибо.
Smolk вне форума Ответить с цитированием
Старый 22.07.2019, 20:36   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
pal //=10
p51x вне форума Ответить с цитированием
Старый 22.07.2019, 20:51   #4
Smolk
 
Регистрация: 23.02.2018
Сообщений: 8
По умолчанию

Боже, большое спасибо. Как я мог так протупить.
Smolk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с типами данных C# XXVI C# (си шарп) 4 27.04.2018 10:55
Python. Функция Input(), проблема с типами данных Cyboredis Python 8 25.06.2016 21:28
Pascal. Проблема с типами данных. vizi Помощь студентам 3 16.02.2013 18:09
Проблема с типами maziLa Помощь студентам 2 13.02.2010 13:23