python第二天

基本数据和结构

数字

1.整数 (int)

32位电脑-2**31~2**31-1

64位电脑-2**63~2**63-1

2.长整型(long)

在python3中没有长短整数之分

3.浮点数(float)

用来处理带小数点的数字,类似c的double类型,占8个字符 (64位),其中52表示底,11位表示指数,剩下一位是符号。

 

布尔值

真和假

1或0 

True或False  

 

字符串

'hello word'

 

bytes类型

1 msg = "转换为bytes"
2 print(msg)
3 print(msg.encode(encoding="utf-8"))
4 print(msg.encode(encoding="utf-8").decode(encoding="utf-8")) #默认encoding默认为utf-8

 

列表

 

 1 
 2 import copy
 3 
 4 names = ["张三","李四","王五","赵六",["",""]]
 5 
 6 print(names[1:3])
 7 print(names[-1])
 8 print(names[-3:-1])
 9 print(names[-3:]) #0可以省略
10 print(names[0:-1:2])#步长切片
11 
12 #
13 names.append("李星")
14 print(names)
15 names.insert(1,"胖子") #位置,内容
16 print(names)
17 
18 #
19 names.remove("张三")
20 print(names)
21 del names[1]
22 print(names)
23 names.pop(2)#没有参数默认删除最后一个
24 print(names)
25 
26 #
27 print(names.index("王五"))
28 
29 #统计
30 print(names.count("李星"))
31 
32 #删除列表
33 #names.clear()
34 
35 #反转
36 names.reverse()
37 print(names)
38 
39 #排序
40 names.sort()
41 print(names)
42 
43 #合并
44 names2 = [1,2,3,4]
45 
46 names.extend(names2)
47 print(names)
48 
49 
50 
51 #复制
52 name2 = names.copy()#浅copy   与name2 = copy.copy(names)和name2 = names[:]一样
53 name3 = copy.deepcopy(names)#深copy
54 print(names)
55 print(name2)
56 print(name3)
57 names[1]=""
58 names[-1][0]="板云"
59 print(names)
60 print(name2)
61 print(name3)
62 
63 
64 #列表循环
65 for i in names:
66     print(i)

 

元组

1 names = ('张三','李四')
2 #元组不能更改只可以读操作

 

练习购物车

 1 commodity =[['小米5',1999],['樱桃机械键盘',800],['罗技鼠标',399],['1080gtx',5000]]
 2 Shopping_Cart = []
 3 Shopping_Cart.append(input("你的姓名:"))
 4 Shopping_Cart.append(int(input("你的预算:")))
 5 print(Shopping_Cart)
 6 '''
 7 for i in range(0,len(commodity)):
 8     print(i+1,commodity[i]) 
 9 '''
10 for index,item in enumerate(commodity):
11     print(index+1,item)
12 while True:
13     j=input("购买商品的编号:")
14     if j.isdigit(): #isdigit判断是否为整数
15         j = int(j)
16         if j < len(commodity):
17             if Shopping_Cart[1] >= commodity[j - 1][1]:
18                 Shopping_Cart[1] = Shopping_Cart[1] - commodity[j - 1][1]
19                 Shopping_Cart.append(commodity[j - 1])
20                 print("购买成功")
21             else:
22                 print("余额不足!")
23         else:
24             print("\033[41;1m看清楚!再输入可以吗?\033[0m")
25     else:
26         print('%s 的清单,余额:\033[31;1m%s\033[0m' %(Shopping_Cart[0],Shopping_Cart[1]))
27         print(Shopping_Cart[2:])
28         exit()
29     '''
30     if j =="end":
31         print(Shopping_Cart[0],'的清单,余额:',Shopping_Cart[1])
32         print(Shopping_Cart[2:])
33         exit()
34     else:
35         j=int(j)
36         if Shopping_Cart[1]>=commodity[j-1][1]:
37             Shopping_Cart[1]=Shopping_Cart[1]-commodity[j-1][1]
38             Shopping_Cart.append(commodity[j-1])
39             print("购买成功")
40         else:
41             print("余额不足!")
42     '''

 

字符串常见操作

 1 name = "my name is {name} and i am {year}"
 2 
 3 print(name.capitalize()) #首字母大写
 4 print(name.count("e"))#统计字符的数量
 5 print(name.center(40,"-"))#总长度,补全的字符
 6 print(name.endswith("ss"))#判断以什么结尾
 7 print(name.find("boss"))#查找字符位置
 8 print(name.rfind('i'))#找最右的字符
 9 print(name[name.find("the"):])#字符串的切片
10 print(name.format(name='lihaitao',year=18))
11 print(name.index("is")) #查找
12 print('dsa232'.isalnum())#是否只包含数字和英文字符
13 print('dsa232'.isalpha())#是否只英文字符
14 print('A232'.isalnum())#是否为十进制
15 print('A232'.isdigit())#是否为整数
16 print('A232'.isidentifier())#判断是否为合法的变量名
17 print('A232'.isnumeric())#与isdigit()一样
18 print(' '.isspace())#是否为一个空格
19 print('My Name Is'.istitle())#首字母是否都为大写
20 print('My Name Is'.isupper())#是否全为大写
21 print(','.join(['1','2','3','4']))
22 print(name.ljust(50,'*'))#长度,补全
23 print(name.rjust(50,'*'))
24 print('Lihaitao'.lower())
25 print('Lihaitao'.upper())
26 print('\nLihaitao'.strip())#去掉回车和空格,rstrip右边,lstrip左侧
27 
28 p = str.maketrans('abcdef$','1234567')
29 print('$avbdsdcz'.translate(p))#类似加密的一个替换
30 
31 print('lihaitao'.replace('a','A',1))#替换和替换的数量
32 print('1+2+3+4'.split('+'))#提取
33 print('1+2\n3+4'.splitlines())#以换行提取
34 print('Lihaitao'.swapcase())#大小写互换
35 print('Lihai tao'.title())#每个单词首字母大写

 

字典

 1 info = {
 2     'stu1101':"TenLan Wu",
 3     'stu1102':"LongZe Luola",
 4     'stu1103':"XiaoZe Maliya"
 5 }
 6 #查找
 7 print(info)
 8 print(info['stu1101'])#当不存在是会报错
 9 print(info.get('stu1104'))#不会报错,不存在是返回None
10 print('stu1104' in info)#判断是否存在,存在输出不存在则不输出
11 
12 #修改
13 info['stu1101'] = '武藤兰'
14 print(info['stu1101'])
15 
16 #添加
17 info['stu1104'] = 'CangJingKong'
18 print(info)
19 
20 #删除
21 info.pop('stu1102')
22 del info['stu1101']
23 #info.popitem()#随机删除
24 print(info)
25 
26 #合并
27 b = {
28     'stu1103':'BoDuo YeJiYi',
29     'syu1108':'Tian HaiYi'
30 }
31 info.update(b) #没有的合并,重复的覆盖
32 print(info)
33 
34 #字典转成列表
35 print(info.items())
36 
37 #初始化字典
38 c = dict.fromkeys([6,7,8],[1,{'name':'xxxx'},4444])
39 print(c)
40 c[7][1]['name'] = '低配周杰伦'  #类似浅复制的问题,只有在一层的情况下才能用fromkeys创建
41 print(c)
42 
43 #字典的循环
44 for i in info:
45     print(i,info[i])
46 
47 for k,v in info.items():
48     print(k,v)   #速度慢,需要转换为列表

练习

 1 av_catalog = {
 2     '欧美':{
 3         'www.youporn.com':['很多免费的,世界最大','质量一般'],
 4         'www.pornhub.com':['很多免费,也很大','质量比yourporn高点'],
 5         'letmedothistoyou.com':['多是自拍,高质量图很多','资源不多,更新慢'],
 6         'x-art.com':['质量很高,真的很高','全部收费']
 7     },
 8     '日韩':{
 9         'tokyo-hot':['质量怎样不清楚,个人已经不喜欢日韩范了','听说是收费的'],
10         'nanrenvip.org':['日本艺术家百科全书']
11     },
12     '大陆':{
13         '1024':['全部免费,真好,好人一生平安','服务器在国外,慢']
14     }
15 }
16 
17 #
18 av_catalog['大陆']['1024'][1] = '服务器在国外,慢,也可以在国内做镜像'
19 print(av_catalog)
20 
21 #添加
22 av_catalog.setdefault('台湾',{'www.baidu.com':['小地方没打听过','再写一句方便操作']})
23 av_catalog.setdefault('大陆',{'www.baidu.com':['小地方没打听过','再写一句方便操作']})#如果存在则不发生变化
24 print(av_catalog)

 

三级菜单

 1 data = {
 2     '北京':{
 3         '昌平':{
 4             '天通苑':['链家']
 5         },
 6         '朝阳':{
 7             '望京':['奔驰','陌陌'],
 8             '国贸':['CICC','HP']
 9         }
10     },
11     '广东':{
12         '东莞':{},
13         '常熟':{}
14     }
15 }
16 exit_flag = False
17 
18 
19 while not exit_flag:
20     for i in data:
21         print(i)
22 
23     choica = input('选择进入1>>:')
24     if choica in data:
25         while not exit_flag:
26             for i2 in data[choica]:
27                 print('\t',i2)
28             choica2 = input('选择进入2>>:')
29             if choica2 in data[choica]:
30                 while not exit_flag:
31                     for i3 in data[choica][choica2]:
32                         print('\t\t',i3)
33                     choica3 = input('选择进入3>>:')
34                     if choica3 in data[choica][choica2]:
35                         for i4 in data[choica][choica2][choica3]:
36                             print('\t\t',i4)
37                         choica4 = input('输入B返回上一级')
38                         if choica4 == 'b':
39                             pass
40                         elif choica4 =='q':
41                             exit_flag = True
42                     if choica3 == 'b':
43                             break
44                     elif choica3 == 'q':
45                         exit_flag = True
46             if choica2 == 'b':
47                 break
48             elif choica2 == 'q':
49                 exit_flag = True

 

posted @ 2018-02-05 13:22  猪头来袭  阅读(673)  评论(0编辑  收藏  举报