我的Python分析成长之路2
2018-12-29
一、python数据类型:
1.数字 int(整形) float(浮点型) complex(复数型)
2.布尔值(bool) 真或假 True or False
3.字符串(str)
4.byte型
5.列表[list]
6.元组(tuple)
7.字典(dict)
8.集合(set)
二、二进制、八进制、十进制、十六进制
bin() 将十进制转换成二进制 以0b开头 十六进制如何转化为二进制 我们需要先将十六进制先转化为十进制,然后将十进制转化为二
oct() 将十进制转化为八进制 以0o开头
hex() 将十进制转化为16 以0x开头
1 print(bin(15)) #十进制转化为二进制 2 print(hex(15)) #十进制转化为十六进制 3 print(oct(15)) #十进制转化为八进制 4 print(int(bin(15),2)) #二进制转化为十进制 5 print(bin(int(hex(12),16))) #十六进制转二进制
三、bytes与str转化
bytes ------------》str 解码 decode
str----------------》bytes 编码 encoding
1 name ="xiaoming" 2 name2 = "小明" 3 print(name.encode(encoding='utf-8')) 4 print(name2.encode(encoding='utf-8')) 5 print(name2.encode(encoding='utf-8').decode('utf-8'))
ord() 将字符转换成ascii值
chr() 接受的是0-255,返回的是对应的ascii值的字符
1 print(ord('c')) 2 print(chr(65))
四 列表
列表是一系列按照特定顺序排列的元素组成。列表中可以包含字母、数字、也可以将任何东西放入列表中,用[]表示,并用,分隔每个元素。
1 l1 =["xiaoyun",'mingming','dahong','feiyu','chanchan'] 2 print(l1[0]) #查找列表中索引为的元素 3 l1[1:3] #列表中索引为1、2的元素 4 l1.append('xiaobai') #增加一个元素 5 l1.copy() #浅copy 6 l1.count("xiaoyun") #统计列表中xiaoyun 的个数 7 l1.clear() #清空列表 8 l1.extend([1,2,3]) #增加一个列表 9 l1.insert(1,"lingling") #在列表索引为1的位置插入lingling 10 l1.index("mingming") #列表中mingming的索引位置 11 l = l1.pop() #删除最后一个元素并返回 12 l1.reverse() #列表反序排列 13 l1.remove("dahong") #把dahong从列表中移除 14 l1.sort() #排序
五、字符串操作:
1 name = "xiaoming" 2 name.count("i") #统计i的个数 3 name.capitalize() #将首字母改成大写 4 name.center(20,"-") #总共20个占位符将xiaoming放中间,其余用-填充 5 name.endswith("g") #判断以什么结尾 返回一个bool值 6 name.find('o') #返回o所在的索引,如果元素不存在则返回-1 7 name.isdigit()#判断是否为数字 8 name.index('i') #第一个i的索引 9 name.isalnum() #判断是否为字母 10 name.isidentifier()#判断是否是一个合法标识符 11 name.islower()#判断是否为小写 12 name.istitle() #判断首字母是否大写 13 name.isupper() #判断是否为大写 14 name.ljust(20,"-") #左对齐 总共20个占位符,其余用-填充 15 name.lower() #改成小写 16 name.lstrip() #左边删除空格和回车 17 name.replace('a','b') #将a改成b 18 name.rjust(20,'-')#右对齐,总共20个占位符,其余用-填充 19 name.rstrip() #右边删除空格和回车 20 name.split('i') #以'i’分割 21 name.strip() #删除空格和回车 22 name.startswith("x")#判断是否以x开始 23 name.swapcase() #转换大小写 24 name.title() #标题形式 25 name.upper() #改成大写
1 ''' 2 购物车程序 3 1.启动程序后,让用户输入工资,然后打印商品列表 4 2.允许用户根据编号购买商品 5 3.用户选择商品后,来检查余额是否够,够就直接扣款,不够就提醒 6 4.随时退出,退出时,打印它已购买的商品和余额 7 ''' 8 shopping_list = [('IphoneXS',9000),('Mac Pro',11000),('watch',250),('huawei',3000)] 9 shopping_car = [] 10 money = input("请输入您的钱:") 11 while True: 12 money =int(money) 13 for i,shopping in enumerate(shopping_list): 14 print(i,shopping) 15 choice = input("请输入您要购买的商品:") 16 # print(type(choice)) 17 if choice.isnumeric(): 18 choice = int(choice) 19 if 0<= choice and choice<len(shopping_list): 20 p_item = shopping_list[choice] 21 if p_item[1]<money: 22 shopping_car.append(p_item) 23 money -= p_item[1] 24 print("%s 以加入购物车,还剩\033[31;1m%s\033[0m"%(p_item,money)) 25 else: 26 print("\033[41;1m您还剩%s,不能购买\033[0m"%money) 27 else: 28 print("invalid shopping") 29 30 elif choice =='q': 31 for i in shopping_car: 32 print("您已购买%s,还剩%s"%(i,money)) 33 exit()
六、字典
字典是一些列键-值对,每个键都与一个值相关联。你可以通过键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何python对象当作字典中的值。
1 user_info ={'name':'xiaoming','age':18,'sex':'boy','job':'student'} 2 user_info['name'] #查找name所对应的值 3 del user_info['name'] #删除name信息 4 user_info['name'] = "shanshan" #添加name属性对应的值为shanshan 5 user_info['name'] ='beibei' #将name所对应的值改成beibei 6 user_info.copy() #浅copy 7 user_info.clear() #删除 所有信息 8 user_info.fromkeys('hobby','swimming')#添加hobby属性,对应的值为swimming 如果添加的属性原来存在,就不覆盖 9 user_info.get('d') #获得name中的值 ,当字典中不存在时,返回None 10 user_info.items() #将键-值对以元组的形式放在字典列表中 11 user_info.keys() #字典的键 12 user_info.pop('name') #删除name属性 ,相当于del 当不传参数时,随机删除一个 13 14 user_info.popitem() #随机以元组的形式返回删除的键值对 15 user_info.setdefault('name','swimming') #添加hobby属性 ,如果原来字典中存在就不添加 16 print(user_info) 17 user_info1 = {"name":'zqq'} 18 user_info.update(user_info1) #键user_info与user_info1字典合在一起,如果拥有相同的键,就会覆盖前面的值 19 print(user_info) 20 user_info.values()#字典的值 21 for i in user_info: 22 print(i,user_info[i]) #遍历所有的键,输出键和对应的值 23 for k,v in user_info.items(): 24 print(k,v) #分别遍历键和值,并输出
1 #省市县三级 2 #只选择浙江 3 4 5 6 7 data ={'北京':{'海淀区':['圆明园','凤凰岭自然风景区'], 8 '东城区':['王府井','地坛公园'], 9 '丰台区':['千灵山','卢沟桥']}, 10 '上海':{'浦东新区':['上海迪士尼旅游区','上海浦东国际机场'], 11 '虹口区':['鲁迅公园','和平公园'], 12 '长宁区':['中山公园','近中山公园']}, 13 '浙江':{ 14 '杭州':{ 15 '上城区':['中豪望江国际','河坊街景区','八卦田遗址公园','南落马英体育公园'], 16 '西湖区':['西溪湿地国家公园','西湖景区','雷峰塔景区','杭州植物园'], 17 '滨江区':['六和文化公园','彩虹城','东方通信科技园','杭州高新金盛科技园'] 18 }, 19 '衢州':{ 20 '常山':['金钉子','三衢石林'], 21 '江山':['江郎山','春雕花尖'], 22 '龙游':['龙游石窟','乌龟山'] 23 }, 24 '金华':{'义乌':['五指山','大峰山'], 25 '永康':['牛角尖','十八曲岭'], 26 '武义':['牛头山国家公园','台山寺旅游区']}}} 27 while True: 28 for i in data: 29 print(i) 30 choice = input("请输入您要去的省:") 31 if choice in data: 32 while True: 33 for i2 in data[choice]: 34 print(i2) 35 choice2 = input("请输入您要去的市:") 36 if choice2 in data[choice]: 37 for i3 in data[choice][choice2]: 38 print(i3) 39 choice3 = input("请输入你要去的县:") 40 if choice3 in data[choice][choice2]: 41 print(data[choice][choice2][choice3]) 42 choice4 = input("请输入b返回上一层:") 43 if choice4 =='b': 44 pass 45 46 elif choice2 == 'b': 47 break 48 elif choice =='b': 49 break 50 else: 51 print("没有这个选项,请重新选择")
1 ti = {"a":1,"d":3,"b":2} 2 print(sorted(ti.items(),key=operator.itemgetter(1))) #两种方式等价 3 print(sorted(ti.items(),key=lambda x:x[1],reverse=True))