大鹏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

基础数据类型

 

 

 

数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在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'

 

 

四 布尔值

一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(请注意大小写)

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

 

原文

posted on 2018-11-27 21:43  pf42280  阅读(263)  评论(0编辑  收藏  举报