Проблемы для начинающих на Python

#python

Вопрос:

Поэтому я написал следующий код, чтобы изменить число на python :

 def intreverse(n):  m= 0  while ngt;0:  (d,n)= (n,n/10)  m= 10*m   d   return(m) print(intreverse(45))  

Я получил свои результаты, но мне было интересно, так как в python мы получаем число с плавающей точкой.Но почему бы и нет в приведенном выше случае. Например , если я возьму n=45, то обновлю n:=4.5 но python рассматривает это как 4. почему?

Комментарии:

1. Чего вы ожидаете от этого?

2. Вы можете поменять int местами в одной строке: int(str(n)[::-1])

Ответ №1:

В Python 2 деление между двумя целыми числами интерпретируется как целочисленное деление, которое возвращает целое число (как // и в случае ). Однако если одно из двух чисел, участвующих в делении, является плавающим, то оператор интерпретируется как деление с плавающей точкой, которое возвращает значение с плавающей точкой.

В Python 3 поведение / было одинаковым независимо от типа используемых чисел, поэтому вы получите значение с плавающей точкой, несмотря ни на что, а целочисленное деление остается // неизменным .

Например, в Python 3 у вас есть:

 gt;gt;gt; 45/10 4.5 gt;gt;gt; 40/10 4.0 gt;gt;gt; 45//10 4  

Но в Python 2 у вас есть:

 gt;gt;gt; 45/10 4 gt;gt;gt; 40/10 4 gt;gt;gt; 45.0/10 4.5 gt;gt;gt; 45//10 4