Learn python with socratica [My notes] - part 3 - Numbers_py_2

Lesson 4

python2的数据类型与python3有一些不同,本节课使用python2做一做实验:

Whole numbers: int, long

1
2
3
4
5
6
7
8
9
10
11
# Types of numbers in python2: int, long, float, complex

# python 2.7
# Whole numbers: int, long

a = 28 # This is a perfect number

# use type function to get a's type
type(a)

int

‘a’ 是一个整型数据,不是长整型。如果输入a,python会怎么输出呢?

1
2
3
a

28

python直接输出a的值。当然,python也可以使用print function把a的值打印出来:

1
2
3
print(a)

28

如果你想知道数据类型的边界,可以调用sys包:

1
2
3
4
import sys
sys.maxint

9223372036854775807

下面,我们做一个有趣的实验。如果我们输入这个MaxInt边界会是什么数据类型,如果越界会是什么类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
b = 9223372036854775807
print('type of b:')
type(b)

type of b:

int

c = 9223372036854775808
print('type of c:')
type(c)

type of c:

long

如果输入‘c’,python会如何输出c的值呢?试一下:

1
2
3
c

9223372036854775808L

可以发现python在c值的后面加上了L,表示c是一个是长整型。这帮助python去区分整型和长整型的Numbers,但是print function不会对其进行区分,该函数都是将输入处理成字符串输出。

1
2
3
print(c)

9223372036854775808

下面我们来看看int的下界:

1
2
3
4
5
6
7
8
d = - sys.maxint -1
type(d)

int

d

-9223372036854775808

当然如果学过C++或者java,这部分应该是了解的。

e = -9223372036854775809
type(e)

long

如果想要直接创建一个Long型的数据,直接赋值的时候在后面加上L,python就可以识别出来:

f = 1L
type(f)

long

Next: Floats

下面接着介绍python的下一个数据类型 Floats,也就是我们常说的浮点型。

得到浮点数的最简单方式就是直接输入:

e = 2.718281828
# get the type
type(e)

float

Another: Complex Numbers

python复数形式的表达,复数有两个部分,python的表达与数学上有些许的不同:

# python way to create a complex number
z = 3 + 5.7j
# you can check the number z using type function
type(z)

complex


# the display is complex, and then
# you can get z's real part and imag part
print("z's real part:")
z.real

z's real part:

3.0

print("z's imag part:")
z.imag

z's imag part:

5.7

以上就是python2所有数据类型的讲解,下节课我们来看看python3在这个方面有那些不同。

Youtube source:
https://www.youtube.com/watch?v=bY6m6_IIN94&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-