#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