基础数据类型
数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种
一 Number(数字)
1.1 数字类型的创建
1
2
3
4
5
6
|
a = 10 b = a b = 666 print (a) #10 print (b) #666 |
注意这里与C的不同:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <stdio.h> void main(void) { int a = 1 ; int b = a; printf ( "a:adr:%p,val:%d,b:adr:%p,val:%d\n" ,&a,a,&b,b); a = 3 ; printf ( "a:adr:%p,val:%d,b:adr:%p,val:%d\n" ,&a,a,&b,b); } / / 打印结果: topeet@ubuntu:~$ gcc test.c topeet@ubuntu:~$ . / a.out a:adr: 0x7fff343a069c ,val: 1 b:adr: 0x7fff343a0698 ,val: 1 a:adr: 0x7fff343a069c ,val: 3 b:adr: 0x7fff343a0698 ,val: 1 |
1.2 Number 类型转换
1
2
3
4
5
6
|
var1 = 3.14 var2 = 5 var3 = int (var1) var4 = float (var2) print (var3,var4) |
#PY内置数学函数 abs(x) 返回数字的绝对值,如abs(-10) 返回 10 # ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5 # cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 # exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 # fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0 # floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4 # log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 # log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0 # max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。 # min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。 # modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 # pow(x, y) x**y 运算后的值。 # round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 # sqrt(x) 返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j
二 字符串类型(string)
https://www.cnblogs.com/hcxy2007107708/articles/10127581.html
三 字节类型(bytes)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# a=bytes('hello','utf8') # a=bytes('中国','utf8') a = bytes( '中国' , 'utf8' ) b = bytes( 'hello' , 'gbk' ) # print (a) #b'\xe4\xb8\xad\xe5\x9b\xbd' print ( ord ( 'h' )) #其十进制 unicode 值为: 104 print ( ord ( '中' )) #其十进制 unicode 值为:20013 # h e l l o # 104 101 108 108 111 编码后结果:与ASCII表对应 # 中 国 # \xd6\xd0 \xb9\xfa gbk编码后的字节结果 #\xe4 \xb8 \xad \xe5 \x9b \xbd utf8编码后的字节结果 # 228 184 173 229 155 189 a[:]切片取 c = a.decode( 'utf8' ) d = b.decode( 'gbk' ) #b=a.decode('gbk') :很明显报错 print (c) #中国 print (d) #hello |
注意:对于 ASCII 字符串,因为无论哪种编码对应的结果都是一样的,所以可以直接使用 b'xxxx' 赋值创建 bytes 实例,但对于非 ASCII 编码的字符则不能通过这种方式创建 bytes 实例,需要指明编码方式。
1
2
3
4
5
6
|
b1 = b '123' print ( type (b1)) # b2=b'中国' #报错 # 所以得这样: b2 = bytes( '中国' , 'utf8' ) print (b2) #b'\xe4\xb8\xad\xe5\x9b\xbd' |
四 布尔值
一个布尔值只有True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写)
1
2
3
4
|
print ( True ) print ( 4 > 2 ) print ( bool ([ 3 , 4 ])) print ( True + 1 ) |
与或非操作:
1
2
3
4
|
bool ( 1 and 0 ) bool ( 1 and 1 ) bool ( 1 or 0 ) bool ( not 0 ) |
布尔值经常用在条件判断中:
1
2
3
4
5
|
age = 18 if age> 18 : #bool(age>18) print ( 'old' ) else : print ( 'young' ) |
五 List(列表)
https://www.cnblogs.com/hcxy2007107708/articles/10127601.html
六 tuple(元组)
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。
元组写在小括号(())里,元素之间用逗号隔开。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
1
2
|
tup1 = () # 空元组 tup2 = ( 20 ,) # 一个元素,需要在元素后添加逗号 |
作用:
1 对于一些数据我们不想被修改,可以使用元组;
2 另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。
七 Dictionary(字典)
https://www.cnblogs.com/hcxy2007107708/articles/10127617.html
八 集合(set)
https://www.cnblogs.com/hcxy2007107708/articles/10127634.html
九 文件操作
https://www.cnblogs.com/hcxy2007107708/articles/10127640.html