今天我们接着说Python
一、数据类型是什么鬼?
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
二、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的
age=25b= 5.23
print(age)print(b)
View Code
三,布尔类型
1 a =True2 b =False3 a=1
4 b=2
5 print(a>b)
View Code
四.list列表
1.怎么取列表的值,通过下标取
1 new_stus = ['admin','admin1','admin3','柯南','朽木真']2 #列表,list 数组,array
3 #编号叫做下标,索引,角标
4 #最前面一个元素的下标是0,最后面一个元素的下标是-1
5 print(new_stus[0])6 print(new_stus[-1])
2.给列表增加一个值
1 cits = ['admin']2 #增加一个值
3 cits.append('珠海') #在列表末尾增加一个元素
4 cits.insert(0,'广州') #insert的下标从0开始,不能写负数,在指定位置增加数据
5 cits.append('北京')6 print(cits)
3.删除一个值
1 #删一个值
2 cits.pop(0) #删除指定位置的元素
3 cits.remove('北京')#删除指定的元素
4 cits.clear()#清空list
5 del cits[-1] #删除指定位置的,-1代表末尾的元素
6 print(cits)
View Code
4.修改列表
cits[1]='南江' #修改的时候如果指定的下标不存在,会报错
cits[2]='山西'
print(cits)
5.查询列表
1 print(cits[0]) #指定位置的
2 print(cits.index('广州'))#获取元素的下标,如果找不到那个元素的话会报错
3 print(cits.count('广州'))#看元素在list里面出现了多少次
4 print(cits)
View Code
6.list反转字符串lis.reverse()和lis[::-1]的区别和定义的字符串转list,list如何转string类型
1 a=['s','w','r','h','t']2 v=str(a)3 t="".join(a)#list转换为string类型得用这个函数才可以不能直接转换
4 print(v)5 print(t)6 print(type(v))7 print(type(t))8
9 b = ('asdfgh')10 c=list(b)#定义的字符串可以直接转换为list
11
12 print(a.index('s')) #原有s的下标是0
13 print(a[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标
14 print(a.index('s'))#转义之后s的下标依然为0
15 print(b[::-1])16 a.reverse()#就是把这个list反转了一下,自己不会返回东西,所以不能直接print,改变原来list的值
17 print(a.index('s'))#转义之后的下标是4
18 print(a) #直接输出反转之后的结果
19 c.reverse()20 print(c)21 #reverse这个函数是list特有的,定义的字符串不能直接反转输出,需要转换为list之后才能反转输出
View Code
7.排序,升序和降序
1 nums=['d','s','h','a','z','x']2 nums.sort()#排序 升序
3 nums.sort(reverse=True) #排序,降序
4 print(nums)
View Code
8.合并list
1 cits=['admin','admin2']2 cities2=['厦门','深圳','成都']3 print(cits+cities2) #合并list
4 print(cities2*2) #乘以几,就是把这个值重复几次
View Code
9.list多为数组的显示
1 word = ['asda','dddsf','wer',2 ['price','num',123,['hello','usa']]] #三维数组 里面套了几层叫几维数组
3
4 print(word[-1][-1][1])
View Code
10.list的小练习
1 #注校验用户名是否合法:
2 #输入账号密码
3 #如果账号存在的,提示已经注册,如果不存在的,提示注册
4 #不能为空
5 #用户名长度在6-12之间
6 #最多输入3次
7 b=['admin','张三','李四']8 for i in range(3):9 username=input('请输入用户名').strip()10 if len(username)>5 and len(username)<13:11 if b.count(username)>0:12 print('姓名已经被注册')13 else:14 print('注册成功')15 break
16 else:17 print('姓名不合法,用户名长度在6-12之间')18 else:19 print('最多输入3次')
View Code
11.list循环
1 #for 循环在循环可迭代对象的时候每次循环的是里面的每一个元素
2 lists = ['admin1','w','d','v',['1','4','2']]3 for name inlists:4 if type(name)==list: #判断一个变量的类型
5 for i inname:6 print(i)7 print(name)
View Code
12.list的循环练习
1 stus=[['小明','未交'],2 ['小白','已交'], ['小紫','已交'],3 ['小红','未交'], ['小绿','未交'],4 ['小黄','未交'], ['小黑','已交']]5
6 pass_list=[]7 fail_list=[]8 for i instus:9 if i[1]=='未交':10 fail_list.append(i)11 else:12 pass_list.append(i)13 print(fail_list)14 print(pass_list)
View Code
13.list列表合并
1 a=[]2 a.append('aa')3 b=[1,2]4 print(a+b)5 a.extend(b)#合并列表
6 print()
View Code
三.切片:切片其实就是list取值的一种方式
1 nums=['admin','admin1','admin2','admin3']2 print(nums[1:3]) #切换顾头不顾尾,(不顾尾就是不包含最后一个下标)
3 print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写
4 print(nums[:2])#如果从头开始取,取到后面某个下标结束,那么开头的下标可以不写
5 print(nums[:])#取所有的
View Code
1.range也是顾头不顾尾
1 for i in range(3): #range也是顾头不顾尾
2 print(i)
View Code
2.切片最后一位写参数的话,代表步长
1 lis=list(range(1,21))2 print(lis)3 print(lis[:10:2])#最后一个参数取值的话,是代表步长,隔几个取一个
4 #print(lis[::-1])#反转字符串 ,产生一个新的list,不会改变原来list的值和下标
5 #如果步长是整数的话,从左往右开始取值。
6 #如果步长是负数的话,是从右边往左边开始取值
View Code
3.切片操作同样适用于字符串
1 info='你好,今天天气很好'
2 print(info[2::-1])
View Code
#可变变量
#里面的原色你可以随便修改
# list 元组
#不可变变量
#里面值不能修改
#string 字符串不能修改
四.元组
元组也是一个list,他和list的区别是,元组里面元素无法修改
用小括号括起来的就是元组,无法增删查改
1.获取元组的值
1 #如果元组里面,只有一个元素的话,那么你必须在这个元素后面增加一个逗号
2 t=(1,2,3,4,5,6,7)3 lists=('sds','dssd','sdsdsd')4 words=(1,)5 words2=('sdsd',)6 print(type(words))7 print(type(words2))8 #元组里面只有这两个方法
9 t.index(2) #找到元素的下标
10 t.count(2)#找到元素的个数
11 print(t.index(2))12 print(t.count(2))
View Code
五。字典
字典都是以key --- values 的键值对存在的
优点:获取数据方便,速度快
1.查询数据
1 infos = {'name':'admin','sex':'女','addr':'珠海'}2 #查
3 print(infos.get('name1'))#取不到key的话,就是none
4 print(infos.get('name1',110))#如果取不到值的话,就是默认110
5 print(infos['sex']) #如果key不存在会报错,用中括号这种
View Code
2.增加数据
1 infos['phone']=12334332343 #增加一个key
2 infos.setdefault('小金库','200万')3 print(infos)4 #字典是无序的,随意排序的
5
6 infos['name']='小花' #如果key存在的话,会修改原来key对应的value
7 infos.setdefault('name','小花') #如果key存在的话,不会修改原来的key值
8 print(infos)
View Code
3.修改数据
#修改 只有这一种方式
infos['name']='小花'
4.删除数据
1 infos.pop('name') #指定key来删除
2 infos.popitem()#随机删除一个key
3 del infos['phone'] #指定key来删除
4 infos.clear() #清空字典
5 print(infos)
View Code
5.获取值的方法
1 print(infos.values()) #获取到字典所有的values
2 print(infos.keys()) #获取到字典所有的key
3 print(infos.items()) #获取到字典所有的k -v
View Code
6。把b字典元素添加到a元素里面
a={"key1":"v1"}
b={"key2":"v2"}
a.update(b)#把b字典元素加入到a元素里面
print(a)
7.字典小练习
1 users ={}2 #所有的账号和密码
3 #username pwd cpwd
4 #print('123456' in users) #字典里面用in判断的话,只是判断key是否存在,value是不判断的
5 for i in range(3):6 username= input('账号:').strip()7 passwd = input('密码:').strip()8 cpasswd= input('确认密码:').strip()9 if username =='' or passwd=='' or cpasswd=='':10 print('用户名或密码不能为空')11 elif username inusers:12 print('用户已经被注册')13 elif passwd!=cpasswd:14 print('两次密码要一致')15 else:16 print('注册成功')17 users.setdefault(username,passwd)18 break
19 else:20 print('错误次数过多')21
22 print(users)
View Code
8.字典的练习2
1 people ={2 '马天宇':{3 'age':18,4 'money':200,5 'clothes':'100套',6 'hzp':'n多',7 'shoes':['nike','addis','乔丹']8 },9 '花千骨':{10 'age':19,11 'money':30,12 'cars':{'japan':['普拉多',['库懒惰']]},13 'house':['三环一套','四环两套']14 }15 }16
17 print(people['花千骨']['cars']['japan'][1])18 print(people['花千骨']['cars']['japan'][0:])19 print(people['花千骨']['money']+200)20 people['马天宇']['shoes'].append('牧马人')21 print(people)22
23 for i inpeople:24 print(i)25
26 for k,v in people.items(): #同时循环的时候,同时取key和valu
27 print(k,'==>',v)
View Code
六,常用的字符串方法
1 a = '字 符 串 \n\n\n\n\n\n\n'
2 c= a.strip() #默认去掉字符串两边的空格和换行符
3 c = a.lstrip() #默认去掉左边的空格和换行符
4 c = a.rstrip() #默认去掉右边的空格和换行符
5 print('c...',c)6 print('a...',a)7
8 words = 'day is a wonderfulday'
9 print(words.strip('day')) #如果strip方法指定一个值得话,那么会去掉这两个值
10 print(words.count('a'))#统计字符串出现的次数
11 print(words.index('is'))#找下标,如果元素找不到的话会报错
12 print(words.find('z'))#找下标,如果元素找不到的话,返回-1
13 print(words.replace('day','DAY')) #替换字符串
14 print(words.isdigit()) #判断字符串是否为纯数字
15 print(words.startswith('day')) #判断是否以某个字符串开头
16 print(words.endswith('day'))#判断是否以某个字符串结尾
17 print(words.upper()) #变成大写的
18 print(words.lower()) #变成小写的
19
20 username = 'asdfgh'
21 print(username.isalpha())#判断字符串是否全为字母
22 print(username.isalnum())#判断是否包含字母和数字,他是只要有字母或者数字就返回true