02_Python基本数据类型

一、什么是数据

数据是描述客观事物的字符(比如95,不同的语义可表示成绩或体重),是计算机可以操作的对象,能够被计算机识别并输入给计算机处理的符号集合。

数据不仅仅包含整形,还包括图像、音乐、视频等非数值类型。

二、什么是数据类型

变量是存储在计算机内存中的数据,这就意味着在创建变量的时候会在内存中开辟一块内存空间。

变量的数据类型决定了如何将这些值存储到计算机内存中。不同的变量使用不同的类型的数据去表示

Python中的数据类型

  • 整型(int)
  • 布尔型(bool)
  • 字符串(str)
  • 元组(tuple)
  • 列表(list)
  • 字典(dict)
  • 集合(set)

Python中类型转换

int  ->  str  和 int  ->  bool

1.int 转 str
str(666)
str1 = '666'

2.int 转 bool
非零即真,零表示假
int与str、bool转换

str  ->  int  和  str  ->  bool

#str -> int 前提是字符串全是由数字组成的
i = int('666')

#str -> bool  非空为真,空字符串为假。由空格组成的字符串为真
str='' #空字符串为假
str='   ' #非空为真
str与int、bool转换

bool -> int  和 bool -> str

 1 #bool与int
 2 i = int(True)
 3 print(i)   #1
 4 
 5 i = int(True)
 6 print(i)  #0
 7 
 8 
 9 #bool 与 str 
10 #用引号引起来即可 ,实际应用不是很多
bool与int、str转换

 

三、Python的数据类型

整形(int)

Python可以处理任意大小的整数,它们的表示方法和数学中一摸一样,主要功能是用来运算。

1 #bit_length() 当十进制用二进制表示时,最少使用的位数
2 i = 3
3 print(i.bit_length())   # 0000 0011   2位
4 print((4).bit_length()) # 0000 0100 3位

布尔型(bool)

真 : 1 True.

假:  0 False. 

字符串(str)

字符串的索引

 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

1 a = "ABCDEFGHRGK"
2 print(a[0]) #A
3 print(a[1]) #B
4 print(a[2]) #C
5 print(a[3]) #D
6 print(a[4]) #E

字符串的切片

字符串的截取就是索引:索引(索引:索引:步长)之间的距离,截取字符串的一段,形成一个新的字符串,原则:顾头不顾尾 。 倒叙取必须加负号。

1 a = "ABCDEFGHRGK"
2 print(a[0:3])#截取ABC
3 print(a[-3:])#截取RGK
4 print(a[3:])#截取D~K
5 print(a[0:7:2])#截取A C E G
6 print(a[-1:-7:-2])#截取K R G  倒叙取,必须加负号

字符串的常用方法

 1 str1 = 'String Operations'
 2 #1.  只首字母大写,其他字符全小写
 3 print(str1.capitalize())
 4 #2.  大小写反转
 5 print(str1.swapcase())
 6 #3.  被非字母割开的部分,首字母大写,其他字符小写
 7 print(str1.title())
 8 #4.  全部变成大写  实际应用:验证码
 9 print(str1.upper())
10 #5.  全部变成小写
11 print(str1.lower())
12 #6.  1.返回长度为width的字符串,并使得自身居中。 2. 填充字符
13 print(str1.center(20,'*'))
14 #7.  碰到tab键,给你填充到8个。
15 print(str1.expandtabs())
16 #8.  返回在片段s[start:end]内找到子串sub的字符串中的最低索引,否则返回-1
17 print(str1.find('ring'))
18 #9.  判断字符串是否以xxx为开头
19 print(str1.startswith('str'))
20 #10. 判断字符串是否以xxx为结尾
21 print(str1.endswith('tions'))
22 #11. 去除字符串前后的空格和换行符,tab键 任意设定的字符  ******   实际应用:密码输入
23 print(str1.strip())
24 #12. strip 是可迭代的,是否在前后端,除非被挡着,不管顺序,不管整体
25 s1 = "http://www.baidu.com"
26 print(str1.strip("htp:/"))
27 #13. 只去除前面空格,换行符,tab键
28 print(str1.lstrip())
29 #14. 只去除后面空格,换行符,tab键
30 print(str1.rstrip())
31 #15. 字符串切割 : str -> list方法;还可以控制切割次数以及按那个字符切割
32 print(str1.split())
33 #16. 替换某些元素
34 print(str1.replace('string','str'))
35 #17. 计算某些元素出现的次数
36 print(str1.count('i'))
37 #18. 计算字符串长度
38 print(len(str1))
39 #19. 判断是否由 字符或数字组成,由字母组成,由数字组成
40 s1 = 'Python'
41 s2 = 'Python123'
42 s3 = '123456'
43 print(s1.isalpha())   #所有字符都是字母
44 print(s1.isalnum())   #字符串中的所有字符都是字母数字且至少有一个字符
45 print(s1.isdigit())   #所有字符都是数字 为True
46 #10. format的三种格式化方式
47 print("我叫{name},今年{age}岁,爱好{hobby}".format(name = '短毛兔',age=22,hobby='Python'))
48 print("我叫{0},今年{1}岁,爱好{2}".format('短毛兔',22,'Python'))
49 print("我叫{0},今年{1}岁,爱好{2},我正在学习{2}".format('短毛兔',22,'Python'))
str — method

四、for循环

用户按照顺序循环可迭代对象的内容。Python中for循环,可以遍历任何序列项目,如一个列表一个字符串。

for循环---语法

1 for iterating_var in sequence:
2    statements(s)

 

 1 str1 = 'Python is an easy to learn.'
 2 
 3 for i in str1:
 4     print(i)
 5 
 6
 7 fruits = ('banana','apple','mango')
 8 
 9  for i in fruits:
10     print("水果 : " + i)
for-循环

五、元组(Tuple)

元组被称为只读列表,即数据可以被查询,但不能被修改,可以被看作只读列表。所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

元组常用方法

 1 tup1 = ('Google', 'Runoob', 1997, 2000,[1,2,3])
 2 #1.元组的遍历
 3 for i in tup1:
 4     print(i)
 5 
 6 #2.元组的长度
 7 print(len(tup1))
 8 
 9 #3.统计o在tup1中出现的次数
10 print(tup1.count(0))
11 
12 #4.元组不能被修改,元组的儿子不能被修改,元组的孙子如果为列表、字典的话可以修改
13 #元组中列表中的2改为0
14 tup1[4][1] = 0
15 print(tup1)
Tuple - method

六、列表(List)

列表是Python中最基本的数据结构。序列中的每个元素都分配一个索引,第一个索引是0,第二个索引是1,依此类推。

对列表进行的操作包括索引、切片、尾部追加、任意位置插入、插入一个迭代元素、根据索引删除元素、删除指定元素、清空列表、删除列表、修改列表元素、查询元素索引

以及常用的操作:获取列表长度、统计某个字符出现的次数、列表排序等。

增(append、insert、extend)

append  :  在列表最后追加元素

insert  : 任意位置插入元素

extend  : 在列表末尾一次性追加另一个序列中的多个值,操作的是迭代元素

 1 list1 = ['a','b','zhangsan','lisi',5,6,7,True,False,True]
 2 
 3 #1.list中元素的类型
 4 print(list1[7],type(list1[7])) # list1[7] True <class 'bool'>
 5 #2.追加
 6 list1.append('end') #append object to end
 7 
 8 #3.插入
 9 list1.insert(2,'2') #insert object before index
10 print(list1[2],type(list1[2]))  #<class 'str'>
11 
12 #4.迭代插入 会把 迭代体 拆成一个个插入,符号也
13 list1.extend('1,2,3')#['a', 'b', 'zhangsan', 'lisi', 5, 6, 7, True, False, True, '1', ',', '2', ',', '3']
14 list1.extend()
15 print(list1)
list - method

删(pop、remove、clear、del)

pop    :删除指定索引位置的元素;默认删除最后一个。根据索引删元素,返回被删除的值。

remove   :删除列表中某个元素,没有返回值。

clear  :清空列表,内存中不回收列表的资源

del     :删除列表,释放列表所占用的资源;可以按照索引删、切片删

 1 list1 = [1,2,3,4,5,6,7,8,9,10]
 2 #1.pop删除指定索引位置元素
 3 list1.pop()  #  result = [1, 2, 3, 4, 5, 6, 7, 8, 9]
 4 
 5 #2.remove删除元素
 6 list1.remove(9)  # result = [1, 2, 3, 4, 5, 6, 7, 8, 10]
 7 
 8 #3.clear 清空链表
 9 list1.clear()   # result = []
10 
11 #4.del 删除链表
12 del list1    #   再打印list1会报错
13 del list1[5]  # result = [1, 2, 3, 4, 5, 7, 8, 9, 10]
14 del list1[1:11:2]  #result = [1, 3, 5, 7, 9]
15 
16 print(list1)
list - method

1 list1 = [1,2,3,4,5,6,7,8,9,10]
2 #1.按照索引改
3 #list1[0] = '1'
4 
5 #2.按照切片更改
6 #list1[0:1] = ['list','num']    #['list', 'num', 2, 3, 4, 5, 6, 7, 8, 9, 10]
7 #list1[0:2] = '努力'            #['努', '力', 3, 4, 5, 6, 7, 8, 9, 10]
8 #list1[0:1] = '努力'            #['努', '力', 2, 3, 4, 5, 6, 7, 8, 9, 10]
9 list1[0:2] = ''              #['强', 3, 4, 5, 6, 7, 8, 9, 10]  
list - method

l1 = [1,3,6,8,7,4,2,9,10]
#查 按切片,按索引去查
l1[0]
l1[0:3]


#for 循环查
for i in l1:
    print(i)
list - method

其他操作:获取长度、统计某个元素出现的次数、查找元素,返回元素第一次出现的索引、排序、倒置

l2 = [1,3,6,8,7,4,2,9,10]
# len 长度
print(len(l1))

#count 出现次数
print(l1.count(True))

#index 通过元素找索引
print(l2.index('taibai'))

#sort 从小到大
print(l2.sort())

#sort(reverse)  从大到小
print(l2.sort(reversed = True))

#倒置
print(l2.reverse())
list - other method

七、字典(dict)

 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典能存放大量的类型,且关联性较强,可存放任意类型。

字典的常用操作(增、删、改、查)

 1 dic  = {'name':'Python','version':3.6,'code':3}
 2 
 3 # 1.增
 4 #1. 添加,如果存在就覆盖,如果不存在就增加
 5 dic['local'];  #这样写错误 ,如果没有value的话,就 等于None
 6 dic['local']  = None;
 7 dic['local'] = 'US'
 8 print(dic)
 9 
10 #1.1 添加,如果存在就忽略,如果不存在就添加
11 dic.setdefault('name','Python3')  #dic中存在name,所以无操作
12 dic.setdefault('name1','Python3')
13 print(dic)
14 
15 # 2.删
16 #2. 删除 pop  通过键删除,返回删除键的值
17 print(dic.pop('code')) #3
18 
19 print(dic.pop('code')) #error 如果删除不存在的键会报错
20 #2.1 pop 的第二种用法,两个参数
21 print(dic.pop('code','没有此键'))
22 
23 #2.2 clear 清空dic
24 dic.clear()
25 print(dic)  #{}
26 
27 #2.3 del 删除dic
28 del dic
29 print(dic) #error
30 
31 #2.4  根据键来删除,没有返回值
32 del dic['name']
33 print(dic)  #  {'version': 3.6, 'code': 3}
34 
35 #2.5 随机删除  返回值元组,默认删除最后一个
36 dic.popitem()
37 print(dic)  #{'name': 'Python', 'version': 3.6}
38 
39 
40 #3.改
41 #3.1 dic[key]  如果key存在,就覆盖。不存在的话,就添加
42 dic['name'] = 'Java'
43 print(dic)
44 #3.2 dic.update() 如果有相同键->覆盖,没有的添加
45 dic.update({'name':'JAVA'})
46 dic.update({'RuntimePlatform':'Win10'})
47 print(dic)
48 
49 #4.改
50 #4.1 查 根据键查
51 print(dic['name'])  #Python
52 print(dic['name1']) # error   查询不存在的键会报错
53 
54 #4.2 get方式查 查询不存在的键,不会报错
55 print(dic.get('name')) #Python
56 print(dic.get('name1')) #None
57 print(dic.get('name1','此键不存在')) #None
58 
59 #4.3 for 循环查
60 for i in dic :
61     print(i,dic[i])
dict - method

字典的其他操作(获取所有的键值对、获取所有的键、获取所有的值)

#获取所有的键(key)
#1 遍历dic
for i in dic:
    print(i)

#2 通过dic.keys
for k in dic.keys():
    print(k)

#获取所有的值
#1 通过key
for i in dic:
    print(dic[i])

#通过dic.values
for v in dic.values:
    print(v)


#获取多有的键值对
#1 返回元组类型
for i in dic.items:
    print(i)

#2 返回所有键值 
for k,v in dic.items:
    print(k,v)

#3 返回所有键值
for k in dic:
    print(k,dic[k])

 

 

 

 
posted @ 2018-01-23 14:45  短毛兔  阅读(330)  评论(0编辑  收藏  举报