Python有两个典型特征:一个是变量无需声明即可直接赋值,赋的值的类型就是变量的类型;另一个是对一个不存在的变量赋值就相当于定义了一个新变量。
内存是计算机的重要组成部分,主要是暂时存储运行程序和数据。
假设我们定义了一个变量,其属性如下:
- 变量名:a
- 变量值:3
- 变量类型:整型
- 变量地址:140736055927656(由内存自动生成的,不是指定的)
变量地址是由内存自动分配的,所以往往不需要给a指定内存,a的值决定了a的类型。
如:
>>> a=3
>>> type(a) # 返回变量的类型
<class 'int'>
>>> id(a) # 返回变量的地址
140736055927656
Python中的 同步赋值 :
>>> a=5
>>> b=6
>>> c=7
>>> a,b,c=c,a,b
>>> a
7
>>> b
5
>>> c
6
在Python程序设计中,整形可以采用二进制、八进制、十进制及十六进制等,不同进制间用不同的引导符号来区分,详见下表:
所以,变量a的值可以采用不同的进制进行表示,但并不影响a是int类型,实践如下:
>>> a=5
>>> type(a)
<class 'int'>
>>> a=0b0101
>>> type(a)
<class 'int'>
>>> a=0o05
>>> type(a)
<class 'int'>
>>> a=0x05
>>> type(a)
<class 'int'>
浮点数类型又称浮点型,可以理解为数学中的实数,表示带有小数的数值。在 Python
中,浮点型用 float 表示。
>>> b=3.1
>>> type(b)
<class 'float'>
浮点数不像整数可以用 4 种进制表示,它只能用小数或者科学计数法表示。例如,230.5
是小数形式,也可以用科学计数法表示为2.305e2或者2.305E2,其中e或者E是以10为
基数的幂。因为E2或者e2就表示10的2次方。
>>> 2.305e2
230.5
>>> 2.305e-2
0.02305
“不确定尾数”的问题,(为了避免发生这种问题,运用浮点数进行计算时,常常使用round()函数对对浮点数进行四舍五入,保留其小数点后几位):
>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.2==0.3
False
>>> round(0.1+0.2,20) # 保留小数点后20位
0.30000000000000004
>>> round(0.1+0.2,4) # 保留小数点后4位
0.3
复数类型
在 Python 中,复数用complex表示。假设 x=a+bi ,其中x的实数部分a和虚数部分b都是浮点型,分别可以通过 x.real 和 x.imag 获取。
>>> x=4+5i # 经实践,在python中不能用i,而要用j或者J
SyntaxError: invalid decimal literal
>>> x=4+5j
>>> x
(4+5j)
>>> x.real
4.0
>>> x.imag
5.0
>>> x=4+j # 经实践,j不可以单独存在,须写为 x=4+1j 的格式
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
x=4+j
NameError: name 'j' is not defined
>>>
>>> x=4+1j
>>> x
(4+1j)
>>>
>>>
>>> complex(4,5) # 复数也可以这样表示
(4+5j)
字符串型
字符串型用 str 表示,两边用双引号或者单引号括起来,表示是一个字符串。例如,
"hello"就是一个由五个字符组成的字符串,如果没有双引号,hello就是一个变量。同理,
"1234"也是一个字符串,而1234就是一个整数。
>>> a="hello"
>>> type(a)
<class 'str'>
>>>
>>> b='1234'
>>> type(b)
<class 'str'>
>>> b
'1234'
>>>
>>> c=1234
>>> c
1234
参考资料:
- 《Python编程自学手册》· 史向东等编著