Python 基础三

Python基础三(基础数据类型)

一、引子

1.什么是数据?

  x = 10, 10就是我们要存储的数据

2.为何数据要分不同的类型

  数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示

3.数据类型

不可变:int str bool tuple

可变:   list dict set

二、基础数据类型

2.1数字int.

数字主要是用于计算的,使用方法并不是很多,就记住一种就可以:

 1 #bit_length 2 v = 10 3 data = v.bit_length 4 print (data) 

2.2布尔值bool

布尔值就两种: True,False。就是反应条件的正确与否

真 1 True

假 0 False

2.3 字符串str

2.3.1、字符串的索引与切片

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

1 a = 'ABCDEFGHIJK'
2 print(a[0])
3 print(a[3])
4 print(a[5])
5 print(a[7])

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

1 a = 'ABCDEFGHIJK'
2 
3 print (a[0:3])
4 print (a[2:5])
5 print (a[0:]) #默认到最后
6 print (a[0:-1]) #-1就是最后一个
7 print (a[0:5:2]) #加步长
8 print (a[5:0:-2]) #反向加步长

2.3.2、字符串常用方法。

 1 #captalize,swapcase,title
 2 print(name.capitalize()) #首字母大写
 3 print(name.swapcase()) #大小写翻转
 4 msg='egon say hi'
 5 print(msg.title()) #每个单词的首字母大写
 6 
 7 # 内同居中,总长度,空白处填充
 8 ret2 = a1.center(20,"*")  
 9 print(ret2)
10 
11 #数字符串中的元素出现的个数。
12 # ret3 = a1.count("a",0,4) # 可切片
13 # print(ret3)
14 
15 a2 = "hqw\t"
16 #\t前面的补全
17 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
18 ret4 = a2.expandtabs()
19 print(ret4)
20 
21 a4 = "dkfjdkfasf54"
22 #startswith 判断是否以...开头
23 #endswith 判断是否以...结尾
24 # ret4 = a4.endswith('jdk',3,6)  # 顾头不顾腚
25 # print(ret4)  # 返回的是布尔值
26 # ret5 = a4.startswith("kfj",1,4)
27 # print(ret5)
28 
29 #寻找字符串中的元素是否存在
30 # ret6 = a4.find("fjdk",1,6)
31 # print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1
32 
33 # ret61 = a4.index("fjdk",4,6)
34 # print(ret61) # 返回的找到的元素的索引,找不到报错。
35 
36 #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
37 # ret9 = 'title,Tilte,atre,'.split('t')
38 # print(ret9)
39 # ret91 = 'title,Tilte,atre,'.rsplit('t',1)
40 # print(ret91)
41 
42 #format的三种玩法 格式化输出
43 res='{} {} {}'.format('egon',18,'male')
44 res='{1} {0} {1}'.format('egon',18,'male')
45 res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
46 
47 #strip
48 name='*egon**'
49 print(name.strip('*')) 
50 print(name.lstrip('*'))
51 print(name.rstrip('*'))
52 
53 #replace
54 name='alex say :i have one tesla,my name is alex'
55 print(name.replace('alex','SB',1))
56 
57 #####is系列
58 name='jinxin123'
59 print(name.isalnum()) #字符串由字母或数字组成
60 print(name.isalpha()) #字符串只由字母组成
61 print(name.isdigit()) #字符串只由数字组成
View Code

2.3.3、字符串补充

 1 #join
 2 s = 'alexwusir'
 3 s1 = '_'.join(s)
 4 print(s1)
 5 #while while else break continue
 6 for i in s:
 7     print(i)
 8     if i == 'e':
 9         break
10 for i in s:
11     if i == 'e':
12         continue
13     print(i)
View Code

 2.4 元组tuple。

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。

例: (1,2,3)  ('a','b','c')

 1 #tuple
 2 tu = (1,2,'wusir','taibai',[2,3,4],True)
 3 for i in tu:
 4     print(i)
 5 print(tu[2:])
 6 #儿子不能更改,但是孙子有可能更改
 7 tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai,True')
 8 tu1[3].pop(1)
 9 print(tu1)
10 tu1[3].append('taibai')
11 print(tu1)
12 print(len(tu1))
13 print(tu.count(1)) #True 默认是1
14 print(tu.index('wusir'))
View Code

 2.5 列表list。

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型比如:

li = ['alex',123,True,(1,2,3,'wusir'),[1,2,3,'小明'],{'name':'alex'}]

列表相比于字符串,不仅可以存储不同的数据类型,而且可以存储大量数据,32位python的限制是536870912个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

2.5.1、增。

 1 li = [1,'a','b',2,3,'a']
 2 # li.insert(0,55) #按照索引去增加
 3 # print(li)
 4 #
 5 # li.append('aaa') #增加到最后
 6 # li.append([1,2,3]) #增加到最后
 7 # print(li)
 8 #
 9 # li.extend(['q,a,w']) #迭代的去增
10 # li.extend(['q,a,w','aaa'])
11 # li.extend('a')
12 # li.extend('abc')
13 # li.extend('a,b,c')
14 # print(li)
15 
16 列表的增
View Code

 2.5.2、删。

 1 # l1 = li.pop(1) #按照位置去删除,有返回值
 2 # print(l1)
 3 
 4 # del li[1:3] #按照位置去删除,也可切片删除没有返回值。
 5 # print(li)
 6 
 7 # li.remove('a') #按照元素去删除
 8 # print(li)
 9 
10 # li.clear() #清空列表
11 
12 列表的删
View Code

 2,5.3、改。

#
# li = [1,'a','b',2,3,'a']
# li[1] = 'dfasdfas'
# print(li)
# li[1:3] = ['a','b']
# print(li)

列表的改

 2.5.4、查。

1 l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
2 #按切片、索引查
3 l1[0]
4 l1[0:3]
5 
6 #for 循环查
7 for i in l1:
8     print(i)
View Code

2.5.5、其他操作。

 1 l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
 2 l2 = [1,3,6,8,7,4,2,9,10]
 3 #len 长度
 4 print(len(l1))
 5 #count 出现次数
 6 ret = l1.count(True)
 7 print(ret)
 8 #index 通过元素找索引
 9 print(l1.index('taibai'))
10 #sort 从小到大
11 l2.sort()
12 print(l2)
13 #sort(reverse)  从大到小
14 l2.sort(reverse=True)
15 print(l2)
16 #倒叙
17 l2.reverse()
18 print(l2)
View Code

2.5.6、列表的嵌套。

 1 l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[,2,3]],2]
 2 a = l1[1].capitalize()
 3 l1[1] = a
 4 l1[1] = l1[1].capitalize()
 5 l1[1] = 'Alex'
 6 print(l1)
 7 print(l1[0])
 8 print(l1[3])
 9 l = l1[3]
10 s = l[1].upper()
11 l1[3][1] = s
12 l1[3][1] = l1[3][1].upper()
13 print(l1)
14 l1[3][0] = '100'
15 print(l1)
16 l1[3][0] = str(l1[3][0] + 1)
17 print(l1)
View Code

2.6 字典dict。

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

  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

2.6.1 增。

 1 dic = {"name":"jin","age":18,"sex":"male"}
 2 #有key则覆盖,没有追加
 3 '''
 4 dic['name'] = 'tai'
 5 print(dic)
 6 dic['name2'] = 'tai'
 7 print(dic)
 8 '''
 9 #有key,原来的不变,没key,有参数写参数,没参数,None
10 '''
11 dic.setdefault('hobby')#没参数 none
12 print(dic)
13 dic.setdefault('hobby','aaa')#有参数,写参数
14 print(dic)
15 dic.setdefault('name','taibai')#有key,原来的不变
16 print(dic)
17 '''

2.6.2 删除。

 1 dic = {"name":"jin","age":18,"sex":"male"}
 2 '''
 3 #pop有返回值,没key不报错
 4 dic.pop('name')
 5 print(dic)
 6 dic.pop('name2',None)
 7 print(dic)
 8 #clear清空字典
 9 dic.clear()
10 print(dic)
11 #del 按照key删value
12 del dic['name']
13 print(dic)
14 '''
View Code

2.6.3 改。

 1 '''
 2 #dic 不变,dic2有则覆盖,没有则追加
 3 dic = {"name":"jin","age":18,"sex":"male"}
 4 dic2 = {"name":"aaa","yy":'zzz',"sex":"male"}
 5 dic2.update(dic)
 6 print(dic2)
 7 #覆盖
 8 dic['name'] = 'tai'
 9 print(dic)
10 '''

2.6.4 查

 1 dic = {"name":"jin","age":18,"sex":"male"}
 2 #print(dic['name'])
 3 #print(dic['name2']) #没key报错
 4 
 5 #print(dic.get('name'))
 6 #print(dic.get('name2'))
 7 #print(dic.get('name2','没有键值对'))
 8 '''
 9 for i in dic: #打印key
10     print(key)
11 for i in dic.values(): #打印values
12     print(i)
13 for i in dic.items(): #打印键值对
14     print(i)
15 '''
View Code

2.6.5 字典的嵌套

 1 dic = {
 2     'name':'金鑫',
 3     'name_list':[1,2,3,'李杰'],
 4     1:{
 5         'python10':['小黑','萌哥'],
 6        '老男孩':{'name':'oldboy','age':56}
 7     }
 8 }
 9 '''
10 #1,[1,2,3,'李杰']追加'wusir'
11 dic['name_list'].append('wusir')
12 print(dic)
13 #2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥
14 dic[1]['python10'].insert(1,'华哥')
15 print(dic)
16 #3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人
17 dic[1]['老男孩'].setdefault('hobby','man')
18 print(dic)
19 '''
View Code

 

三,其他(for,enumerate,range)。

for循环:用户按照顺序循环可迭代对象的内容。

msg = '老男孩python是全国范围内最好的python培训机构'
for item in msg:
    print(item)

li = ['alex','银角','女神','egon','太白']
for i in li:
    print(i)

dic = {'name':'太白','age':18,'sex':'man'}
for k,v in dic.items():
    print(k,v)

 range:指定范围,生成指定数字。

 1 #range当做:范围列表[],列表中的元素是数字,且可控的有效数字范围
 2 #一般与for 配合使用
 3 for i in range(1,10):  #[1,2,3,4...9]
 4     print(i)
 5 for i in range(1,101):  #
 6     print(i)
 7 for i in range(11):  #
 8     print(i)
 9 for i in range(1,10,2):  # [1,3,5,7,9]
10     print(i)
11 for i in range(10,0,-1):
12     print(i)
13 for i in range(10,-2,-1):
14     print(i)
15 
16 l1 = [1,2,3,'alex',[2,3,'wusir'],7]
17 for i in l1:
18     if type(i) == list:
19         for j in i:
20             print(j)
21     else:
22         print(i)    
View Code

 

posted @ 2018-01-23 15:48  WoLfff  阅读(116)  评论(0编辑  收藏  举报