常见的几种基本数据类型
python是弱类型语言,相对于强类型语言,它不需要声明变量的类型。在Python中一切都是对象。可以使用id()函数查看此对象的id。Python中的数据类型很多,而且也允许我们自定义新的数据类型(这一点以后会讲到),我们先介绍几种常用的基本数据类型。可以使用type()函数查看变量类型。
01
整数型(int)
Python中可以处理任意大小的整数,支持二进制(如0b100)、八进制(如0o100)、十进制(100)和十六进制(0x100)的表示法。
例如:-1,0,1,2,0b101,0o101,0x101
接下来我们进行测试。在IDLE中输入以下代码,会把相应进制数转换为十进制在屏幕上输出。
>>> 345 # 十进制
345
>>> 0b101 # 二进制
5
>>> 0o10 # 八进制
8
>>> 0x11 # 十六进制
17
>>> type(123) # 获取参数类型
<class 'int'>
02
浮点数型(float)
浮点数也就是小数,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.234e2),e2指的是10的2次方。
例如:-1.2,5.6,2e3(2000.0)
>>> -1.3 # 数学写法
-1.3
>>> 2.3e2 # 科学计数法
230.0
>>> type(2.3e2)
<class 'float'>
03
复数型(complex)
跟数学上的复数表示一样,但是虚部的i换成了j。
例如:1+2j,3+4j
>>> 5 + 3j
(5 + 3j)
>>> 2 + 1j + 3 + 4j
(5+5j)
>>> type(5 + 3j)
<class 'complex'>
04
布尔型(bool)
布尔值只有True、False两种值(请注意大小写)。
>>> True
True
>>> type(True)
<class 'bool'>
05
字符串型(str)
字符串是以单引号 ' 或双引号 " 括起来的任意文本,字符串有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,可以书写成多行的形式(用三个单引号 ''' 或三个双引号 """ 开头,三个单引号或三个双引号结尾)。
例如:'abc',"def"
>>> 'asd123'
'asd123'
>>> type('asd123')
<class 'str'>
>>> '''asd
zxc
vbn'''
'asd\nzxc\nvbn'
运算
数学运算符
优先级从高到低
操作符 | 操作 | 例子 | 结果 |
** | 指数 | 2 ** 4 | 16 |
% | 取余数/取模 | 15 % 2 | 1 |
// | 整除/商数取整数 | 15 // 4 | 3 |
/ | 除法 | 15 / 4 | 3.75 |
* | 乘法 | 3 * 6 | 18 |
+ | 加法 | 1 + 2 | 3 |
- | 减法 | 2 - 1 | 1 |
在运算中,只要有操作数为浮点数,python默认得到的总是浮点数。
将任意两个数相除时,结果总是浮点数。
在写很大的数时,可以使用下划线将其中的数字分组,但打印此数时,python不会打印下划线。
>>> 2 ** 4 # 指数
16
>>> 15 % 2 # 取余数
1
>>> 15 // 4 # 整除
3
>>> 3 * 6 # 乘法
18
>>> 15 / 4 # 除法
3.75
>>> 1 + 2 # 加法
3
>>> 2 - 1 # 减法
1
>>> x = 10_000_000_000
>>> print(x)
10000000000
赋值运算符
赋值运算符应该是最为常见的运算符,它的作用是将右边的值赋给左边的变量。在上面的变量赋值已经演示过这里就不再赘述。
比较运算符
比较运算符也称为关系运算符,包括 == 、 != 、 < 、 > 、 <= 、 >= 。比较运算符会产生布尔值,要么是 True 要么是 False 。
>>> 1 < 4
True
>>> 4 != 4
False
逻辑运算符
逻辑运算符有 and 、 or 和 not 。
and即逻辑与运算。如果两个布尔值都是True,那么运算的结果就是True;左右两边的布尔值有一个是False,最终的运算结果就是False。如果and左边的布尔值是False,不管右边的布尔值是什么,最终的结果都是False,所以在做运算的时候右边的值会被跳过。
or即逻辑或运算。如果左边的布尔值为True,那么最终的结果就是True,右边的表达式不会执行。
not即逻辑非运算。作用是取与该布尔值相反的值,也就是说,后面的布尔值如果是True运算结果就是False,而后面的布尔值如果是False则运算结果就是True。
位运算符
位运算符 & 有按位与、 | 按位或、 ^ 按位异或、 ~ 按位取反四种。
>>> a = 0b0011 1100
>>> b = 0b0000 1111
>>> bin(a&b) # 求a按位与b的二进制值
'0b1100'
>>> bin(a|b) # 求a按位或b的二进制值
'0b111111'
>>> bin(a^b) # 求a按位异或b的二进制值
'0b110011'
>>> bin(~a) # 求a按位取反的二进制值
'-0b111101'
注释
单行注释
python中单行注释以 # 号开头,在#号后面跟的内容会被python解释器忽略,不执行当前行#号后面的语句。
例如下面的代码执行后会打印出HelloWorld。
print("Hello");print("World")
而下面的代码执行后只会打印Hello。
print("Hello")#;print("World")
当然,上面的例子只是为了说明#号后面的代码不被执行,写注释主要目的还是应该阐述代码要做什么以及如何做。
多行注释
多行注释也可以使用 # 号,只不过要在注释的每行前都加上#号。当然,也可以使用多行注释符号 ''' 或者 """ 。