python笔记二(list,元组,切片,字典,数据类型列表操作)

今天我们接着说Python

一、数据类型是什么鬼?
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。

二、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的

age=25
b = 5.23
print(age)
print(b)
View Code

 三,布尔类型

1 a = True
2 b = False
3 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 in lists:
4     if type(name)==list: #判断一个变量的类型
5         for i in name:
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 in stus:
 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 in users:
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 in people:
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
View Code

以上都是python的基本操作,小伙伴们如果想熟悉的话,多练习,熟能生巧哦

 

posted @ 2018-03-30 09:54  whereis  阅读(621)  评论(0编辑  收藏  举报