pythonday05数据类型(三)
---恢复内容开始---
今日内容
1.字典
2.强制转换
3.习题讲解
1.字典
帮助用户去表示一个事物的信息(事物是有多个属性)。
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} # 键值 # 请输出:我今天点%s,他的年龄是%s,性别是%s,他喜欢他的%s;
基本格式
data = {键:值,键:值,键:值,键:值,键:值,键:值,}
# 练习题 userinfo = {'usenrame':'alex','password':"oldboy"} user = input('请输入用户:') pwd = input('请输入密码:') if userinfo['username'] == user and userinfo['password'] == pwd: print('登陆成功') else: print('用户名或密码错误')
- 独有功能
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
keys,获取字典中所有的键。['name','age','gender','hobby']
# for item in info.keys(): # print(item)
values,获取字典中所有的值。 ['刘伟达','18','男','同桌']
# for item in info.values(): # print(item)
items,获取字典中的所有键值对。
# for v1,v2 in info.items(): # print(v1,v2)
get
info = {'k1':'v1','k2':'v2'} # v1 = info['k1'] # v2 = info.get('k1') # None就是Python中的空 # v3 = info.get('k1',666) # print(v2) # None数据类型,改类型表示空(无任何功能,专门用于提供空值)
pop
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') print(info,result) del info['k1']
update
info = {'k1':'v1','k2':'v2'} # 不存在,则添加/存在,则更新 info.update({'k3':'v3','k4':'v4','k2':666}) print(info)
- 公共功能
len
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} print(len(info))
索引
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info['name'] info['age']
切片(无)
步长(无)
修改(存在就修改/不存在就增加)
# 改值 info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info['age'] = 19 print(info) # 改键 # 删除后再增加 del info['hobby'] info['xxxxx'] = 'x1'
删除
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} del info['name'] print(info)
2.强制转换
int
- int('字符串') 【重要】
- int(布尔值)
bool
-
-
bool(字符串) -> bool('xx') --> bool("")
-
bool(列表) -> bool([]) --> bool([])
-
bool(元组) -> bool(()) --> bool(空元组)
v1 = bool(0) v2 = bool("") v3 = bool([]) v4 = bool(()) print(v1,v2,v3,v4) # False
str
-
-
str(True) # "True"
-
str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])
-
str(["唐开发",'李忠伟'])
list
- list("asdfadfasfdadfasfd")
v1 = list("asdfadfasfdadfasfd") print(v1)
- list( (11,22,33,44,) )
v1 = list( (11,22,33,44,) ) print(v1)
tuple
- tuple('adfadfasdfasdfasdfafd')
v1 = tuple('adfadfasdfasdfasdfafd') print(v1)
- tuple([11,22,33,44])
v1 = tuple([11,22,33,44]) print(v1)
总结
常见的类型转换
# 字符串转数字
# 数字转字符串
# 列表转元组
# 元组转列表
# 其他转bool时,只有:0 “” [] ()
3.练习题
nums = [11,22,33,44] for i in range(0,len(nums)): nums[i] = str(nums[i]) resutl = '_'.join(nums) print(resutl) # 1. "".jon([元素必须是字符串,元素必须是字符串,])
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" # 1. 简述解释性语言和编译型语言的区别? # 2. 列举你了解的Python的数据类型? """ 字符串:str 整型:int 布尔值:bool 列表:list 元组:tuple """ # 3. 写代码,有如下列表,按照要求实现每一个功能。 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # - 计算列表的长度并输出 len(li) # - 请通过步长获取索引为偶数的所有值,并打印出获取后的列表 li[::2] # - 列表中追加元素"seven",并输出添加后的列表 # 错误 # result = li.append('seven') # print(result) # 正确 # li.append('seven') # print(li) # - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表 # li.insert(0,'tony') # - 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # li[1] = 'Kelly' # - 请将列表的第3个位置的值改成 "太白",并输出修改后的列表 # - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # l2=[1,"a",3,4,"heart"] # for item in l2: # li.append(item) # print(li) # li.extend(l2) # print(li) # - 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 # 循环实现 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # s = "qwert" # for char in s: # li.append(char) # 使用方法直接实现 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # s = "qwert" # li.extend(s) # print(li) # - 请删除列表中的元素"ritian",并输出添加后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # li.remove('ritian') # 根据值删除,不在则报错。 # - 请删除列表中的第2个元素,并输出删除元素后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # del li[2] # 仅仅是删除 # deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted # print(li) # print(deleted) # - 请删除列表中的第2至第4个元素,并输出删除元素后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # # del li[1:4] # print(li) """ 第三题总结: - extend # 1. 有列表 users = ['李忠伟','堂开发'] people = ['李鹏','张思达'] users.extend(people) # users中增加 people.extend(users) # people中增加 # 2. 有列表 users = ['李忠伟','堂开发'] people = ('李鹏','张思达') users.extend(people) # users中增加 people.extend(users) # 只有列表有extend功能,元组是没有的。 - pop和del的区别 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] del li[2] # 仅仅是删除 deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted print(li) print(deleted) - 删除 li[1:8] """ # 4. 请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for) # 方式一: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # value = name[::-1] # 方式二: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # value = "" # index = len(name) - 1 # 14 # while index >=0: # char = name[index] # value = value + char # index = index - 1 # print(value) # 方式三: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # index = 14 # value = "" # for item in name: # value += name[index] # index -= 1 # print(value) # 方式四: # range(0,10,1) -> [0,1,2,3,4...9] # range(9,-1,-1) -> [9,8,7.......0] # name = "小黑半夜三点在被窝玩愤怒的小鸟" # name_len = len(name) - 1 # value = "" # for index in range(name_len,-1,-1): # value += name[index] # print(value) # 练习:打印:0 ~ 100之间的偶数。 # for i in range(0,101): # if i % 2 == 0: # print(i) # for i in range(0,101,2): # print(i) # 练习:goods = ['汽车','飞机','大炮'] # goods = ['汽车','飞机','大炮'] # # for i in range(0,len(goods)): # print(i,goods[i]) # num = input('请输入要选择的商品序号:') # num = int(num) # # text = "您选择的是:%s" %(goods[num],) # print(text) # 练习:goods = ['汽车','飞机','大炮'] # goods = ['汽车','飞机','大炮'] # # for i in range(0,len(goods)): # print(i+1,goods[i]) # num = input('请输入要选择的商品序号:') # num = int(num) - 1 # text = "您选择的是:%s" %(goods[num],) # print(text) # 5. 写代码,有如下列表,利用切片实现每一个功能 """ # # ```python # li = [1, 3, 2, "a", 4, "b", 5,"c"] # ``` # # - 通过对li列表的切片形成新的列表 [1,3,2] # - 通过对li列表的切片形成新的列表 ["a",4,"b"] # - 通过对li列表的切片形成新的列表 [1,2,4,5] # - 通过对li列表的切片形成新的列表 [3,"a","b"] li[1:-1:2] # - 通过对li列表的切片形成新的列表 [3,"a","b","c"] li[1::2] # - 通过对li列表的切片形成新的列表 ["c"] # - 通过对li列表的切片形成新的列表 ["b","a",3] """ # 6. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: """ ```python 0 武沛齐 1 景女神 2 肖大侠 ``` """ # 7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: """ ```python 1 武沛齐 2 景女神 3 肖大侠 ``` """ # 8. 写代码,有如下列表,按照要求实现每一个功能。 """ ```python lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] ``` - 将列表lis中的"k"变成大写,并打印列表。 lis[2] = "K" lis[2] = lis[2].upper() lis[3][0] = lis[3][0].upper() - 将列表中的数字3变成字符串"100" li[1] = '100' - 将列表中的字符串"tt"变成数字 101 li[3][2][1][0] = 101 - 在 "qwe"前面插入字符串:"火车头" li[3].insert(0,'火车头') """ # 9. 写代码实现以下功能 """ - 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: ```python 0,汽车 1,飞机 2,火箭 ``` - 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。 """ # 10. 请用代码实现 """ li = "alex" 利用下划线将列表的每一个元素拼接成字符串"a_l_e_x" value = "_".join(li) # 练习一: users = ['贺鹏飞','朱海','城根'] 通过,将列表中的元素拼接:"贺鹏飞,珠海,城根" # users = ['贺鹏飞','朱海','城根'] # users = ('贺鹏飞','朱海','城根') # result = ",".join(users) # print(result) """ # 11. 利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。 """ data_list = [] for i in range(0,101): if i % 2 == 0: data_list.append(i) data_list = [] for i in range(0,101,2): data_list.append(i) """ # 12. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。 """ data_list = [] for i in range(0,51): if i % 3 == 0: data_list.append(i) print(data_list) """ # 13. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下: """ data_list = [] for i in range(0,51): if i % 3 == 0: data_list.insert(0,i) print(data_list) """ # 14. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。 """ ```python li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] ``` """ """ li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] data_list = [] for item in li: item = item.strip() if item.startswith('a'): data_list.append(item) for item in data_list: print(item) """ # 15. 判断是否可以实现,如果可以请写代码实现。 """ ```python li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"] ``` - 请将 "WuSir" 修改成 "武沛齐" - 请将 ("ritian", "barry",) 修改为 ['日天','日地'] - 请将 88 修改为 87 - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周" del li[-1] li.insert(0,'文周') - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "wenzhou" deleted = li.pop() li.insert(0,deleted) """ # 16. 面试题 & 书写规范 """ v1 = 1 v2 = (1) v3 = (1,) print(type(v1),type(v2),type(v3)) """ # data = [(1),(2),(3)] # [1,2,3] # 17. 用户输入 # content = input("请输入:") # 5 + 99+7+ 2+ uu + 7y ... """ total = 0 content = "5 + 99+7+ 2+ uu + 7y" num_list = content.split('+') # ["5 ",' 99',"7",' 2', ' uu '..] for item in num_list: item = item.strip() if item.isdigit(): total += int(item) print(total) """
字典练习题
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" # 1.请获取 "刘伟达" """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} v = info['name'] print(v) """ # 2. 请输出所有键 """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} for i in info.keys(): print(i) """ # 3. 请输出所有键和值 # v = "1+3" # a,b = v.split('+') # [1,3] # print(a,b) # a,b = (1,3,) # print(a,b) # info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} # for a,b in info.items(): # print(a,b) # 3. 请输出所有键和值,并让用户输入 name/age/gender/hobby,根据用户输入输出对应的值。 """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} for k,v in info.items(): print(k,v) key = input('请输入键:') # "name" print(info[key]) # info["name"] """ # 4. 给你一个空字典,请在空字典中添加数据: k1:1,k2:2,k3:3 """ info = {} info['k1'] = "1" info['k2'] = 2 info['k3'] = 3 print(info) """ # 5. 给你一个空字典,请让用户输入:key,value,将输入的key和value添加到字典中。 # info = {} # k = input('请输入key:') # v = input('请输入value:') # info[k] = v # print(info) # 6. 给你一个空字典,请一直让用户输入:key,value,将输入的key和value添加到字典中,直到用户输入 N ,则表示不再输入。 """ info = {} while True: k = input('请输入key:') if k == 'N': break v = input('请输入value:') info[k] = v print(info) """ # 7. 请用代码实现 """ message = "k1|v1,k2|v2,k3|123......." # ,k3|123 info = {'k1':'v1','k2':'v2','k3':'123'} info = {} message = "k1|v1,k2|v2,k3|123" for item in message.split(','): # ["k1|v1","k2|v2","k3|123"] v1,v2 = item.split('|') info[v1] = v2 print(info) """ # 8. 数据类型嵌套:int/bool/str/list/tuple/dict # li = [11,22,33,True,[11,2],(11,2,[11,22],33,),{'k1':'v1','k2':(11,22,3)}] """ info = { 'k1':'v1', 'k2':True, 'k3':1, 'k4':(11,22,33), 'k5':[11,22,33], 'k6':{'kk':'vv'}, 1:{'kk':'vv'}, False:{'kk':'vv'}, # [11,2]:{'kk':'vv'}, # 不可哈希 (11,2):{'kk':'vv'}, # {'k1':'v2'}:{'kk':'vv'}, # 不可哈希 } print(info) """ # data = [1, 2, {'k1': 1, 'k2': 2, 'k3': (11, 22, 33), 'k4': [1, (12, 3, 4), 2]}, 93] # 获取3 # v = data[2]['k4'][1][1] # print(v) # 在k4对应的列表第0个位置插入一个 9 # data[2]['k4'].insert(0,9) # print(data) # 9. 创建出一个用户列表,然后让用户输入用户名和密码进行登陆。 """ user_list = [ {'user':'alex','pwd':'123'}, {'user':'oldboy','pwd':'123'}, {'user':'lishaoqi','pwd':'1123'}, {'user':'liqihang','pwd':'123'}, {'user':'xxx','pwd':'123'}, # N ] """ # 构建用户列表 """ user_list = [] while True: u = input('请输入用户名:') # N if u == "N": break p = input('请输入密码:') # user_info = {} # user_info['user'] = u # user_info['pwd'] = p user_info = {'user':u,'pwd':p} user_list.append(user_info) """ """ user_list = [{'user': 'alex', 'pwd': '123'}, {'user': 'oldboy', 'pwd': '123'}, {'user': 'lishaoqi', 'pwd': '123'}] username = input('请输入用户名:') # oldboy password = input('请输入密码:') # 123 message = "登陆失败" for item in user_list: if item['user'] == username and item['pwd'] == password: message = '登陆成功' break print(message) """ # 10. 有序 # 有序:元组/列表 # 无序:字典(py3.6之后字典就是有序了)
v = {'k1':'v1','k2':'v2','k3':'v3'} # 默认按照键判断,即:判断x是否是字典的键。 if 'x' in v: pass # 请判断:k1 是否在其中? if 'k1' in v: pass # 请判断:v2 是否在其中? # 方式一:循环判断 flag = '不存在' for v in v.values(): if v == 'v2': flag = '存在' print(flag) # 方式二: if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3'] pass # 请判断:k2:v2 是否在其中? value = v.get('k2') if value == 'v2': print('存在') else: print('不存在')
---恢复内容结束---
今日内容
1.字典
2.强制转换
3.习题讲解
1.字典
帮助用户去表示一个事物的信息(事物是有多个属性)。
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} # 键值 # 请输出:我今天点%s,他的年龄是%s,性别是%s,他喜欢他的%s;
基本格式
data = {键:值,键:值,键:值,键:值,键:值,键:值,}
# 练习题 userinfo = {'usenrame':'alex','password':"oldboy"} user = input('请输入用户:') pwd = input('请输入密码:') if userinfo['username'] == user and userinfo['password'] == pwd: print('登陆成功') else: print('用户名或密码错误')
- 独有功能
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
keys,获取字典中所有的键。['name','age','gender','hobby']
# for item in info.keys(): # print(item)
values,获取字典中所有的值。 ['刘伟达','18','男','同桌']
# for item in info.values(): # print(item)
items,获取字典中的所有键值对。
# for v1,v2 in info.items(): # print(v1,v2)
get
info = {'k1':'v1','k2':'v2'} # v1 = info['k11111'] # v2 = info.get('k1111') # None就是Python中的空 # v3 = info.get('k1111',666) # print(v2) # None数据类型,改类型表示空(无任何功能,专门用于提供空值)
pop
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') print(info,result) del info['k1']
update
info = {'k1':'v1','k2':'v2'} # 不存在,则添加/存在,则更新 info.update({'k3':'v3','k4':'v4','k2':666}) print(info)
- 公共功能
len
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} print(len(info))
索引
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info['name'] info['age']
切片(无)
步长(无)
修改(存在就修改/不存在就增加)
# 改值 info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info['age'] = 19 print(info) # 改键 # 删除后再增加 del info['hobby'] info['xxxxx'] = 'x1'
删除
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} del info['name'] print(info)
2.强制转换
int
- int('字符串') 【重要】
- int(布尔值)
bool
-
-
bool(字符串) -> bool('xx') --> bool("")
-
bool(列表) -> bool([]) --> bool([])
-
bool(元组) -> bool(()) --> bool(空元组)
v1 = bool(0) v2 = bool("") v3 = bool([]) v4 = bool(()) print(v1,v2,v3,v4) # False
str
-
-
str(True) # "True"
-
str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])
-
str(["唐开发",'李忠伟'])
list
- list("asdfadfasfdadfasfd")
v1 = list("asdfadfasfdadfasfd") print(v1)
- list( (11,22,33,44,) )
v1 = list( (11,22,33,44,) ) print(v1)
tuple
- tuple('adfadfasdfasdfasdfafd')
v1 = tuple('adfadfasdfasdfasdfafd') print(v1)
- tuple([11,22,33,44])
v1 = tuple([11,22,33,44]) print(v1)
总结
常见的类型转换
# 字符串转数字
# 数字转字符串
# 列表转元组
# 元组转列表
# 其他转bool时,只有:0 “” [] ()
3.练习题
nums = [11,22,33,44] for i in range(0,len(nums)): nums[i] = str(nums[i]) resutl = '_'.join(nums) print(resutl) # 1. "".jon([元素必须是字符串,元素必须是字符串,])
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" # 1. 简述解释性语言和编译型语言的区别? # 2. 列举你了解的Python的数据类型? """ 字符串:str 整型:int 布尔值:bool 列表:list 元组:tuple """ # 3. 写代码,有如下列表,按照要求实现每一个功能。 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # - 计算列表的长度并输出 len(li) # - 请通过步长获取索引为偶数的所有值,并打印出获取后的列表 li[::2] # - 列表中追加元素"seven",并输出添加后的列表 # 错误 # result = li.append('seven') # print(result) # 正确 # li.append('seven') # print(li) # - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表 # li.insert(0,'tony') # - 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # li[1] = 'Kelly' # - 请将列表的第3个位置的值改成 "太白",并输出修改后的列表 # - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # l2=[1,"a",3,4,"heart"] # for item in l2: # li.append(item) # print(li) # li.extend(l2) # print(li) # - 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 # 循环实现 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # s = "qwert" # for char in s: # li.append(char) # 使用方法直接实现 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # s = "qwert" # li.extend(s) # print(li) # - 请删除列表中的元素"ritian",并输出添加后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # li.remove('ritian') # 根据值删除,不在则报错。 # - 请删除列表中的第2个元素,并输出删除元素后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # del li[2] # 仅仅是删除 # deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted # print(li) # print(deleted) # - 请删除列表中的第2至第4个元素,并输出删除元素后的列表 # li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] # # del li[1:4] # print(li) """ 第三题总结: - extend # 1. 有列表 users = ['李忠伟','堂开发'] people = ['李鹏','张思达'] users.extend(people) # users中增加 people.extend(users) # people中增加 # 2. 有列表 users = ['李忠伟','堂开发'] people = ('李鹏','张思达') users.extend(people) # users中增加 people.extend(users) # 只有列表有extend功能,元组是没有的。 - pop和del的区别 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] del li[2] # 仅仅是删除 deleted = li.pop(2) # 在列表中删除,并将删除的此数据赋值给deleted print(li) print(deleted) - 删除 li[1:8] """ # 4. 请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for) # 方式一: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # value = name[::-1] # 方式二: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # value = "" # index = len(name) - 1 # 14 # while index >=0: # char = name[index] # value = value + char # index = index - 1 # print(value) # 方式三: # name = "小黑半夜三点在被窝玩愤怒的小鸟" # index = 14 # value = "" # for item in name: # value += name[index] # index -= 1 # print(value) # 方式四: # range(0,10,1) -> [0,1,2,3,4...9] # range(9,-1,-1) -> [9,8,7.......0] # name = "小黑半夜三点在被窝玩愤怒的小鸟" # name_len = len(name) - 1 # value = "" # for index in range(name_len,-1,-1): # value += name[index] # print(value) # 练习:打印:0 ~ 100之间的偶数。 # for i in range(0,101): # if i % 2 == 0: # print(i) # for i in range(0,101,2): # print(i) # 练习:goods = ['汽车','飞机','大炮'] # goods = ['汽车','飞机','大炮'] # # for i in range(0,len(goods)): # print(i,goods[i]) # num = input('请输入要选择的商品序号:') # num = int(num) # # text = "您选择的是:%s" %(goods[num],) # print(text) # 练习:goods = ['汽车','飞机','大炮'] # goods = ['汽车','飞机','大炮'] # # for i in range(0,len(goods)): # print(i+1,goods[i]) # num = input('请输入要选择的商品序号:') # num = int(num) - 1 # text = "您选择的是:%s" %(goods[num],) # print(text) # 5. 写代码,有如下列表,利用切片实现每一个功能 """ # # ```python # li = [1, 3, 2, "a", 4, "b", 5,"c"] # ``` # # - 通过对li列表的切片形成新的列表 [1,3,2] # - 通过对li列表的切片形成新的列表 ["a",4,"b"] # - 通过对li列表的切片形成新的列表 [1,2,4,5] # - 通过对li列表的切片形成新的列表 [3,"a","b"] li[1:-1:2] # - 通过对li列表的切片形成新的列表 [3,"a","b","c"] li[1::2] # - 通过对li列表的切片形成新的列表 ["c"] # - 通过对li列表的切片形成新的列表 ["b","a",3] """ # 6. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: """ ```python 0 武沛齐 1 景女神 2 肖大侠 ``` """ # 7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: """ ```python 1 武沛齐 2 景女神 3 肖大侠 ``` """ # 8. 写代码,有如下列表,按照要求实现每一个功能。 """ ```python lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] ``` - 将列表lis中的"k"变成大写,并打印列表。 lis[2] = "K" lis[2] = lis[2].upper() lis[3][0] = lis[3][0].upper() - 将列表中的数字3变成字符串"100" li[1] = '100' - 将列表中的字符串"tt"变成数字 101 li[3][2][1][0] = 101 - 在 "qwe"前面插入字符串:"火车头" li[3].insert(0,'火车头') """ # 9. 写代码实现以下功能 """ - 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: ```python 0,汽车 1,飞机 2,火箭 ``` - 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。 """ # 10. 请用代码实现 """ li = "alex" 利用下划线将列表的每一个元素拼接成字符串"a_l_e_x" value = "_".join(li) # 练习一: users = ['贺鹏飞','朱海','城根'] 通过,将列表中的元素拼接:"贺鹏飞,珠海,城根" # users = ['贺鹏飞','朱海','城根'] # users = ('贺鹏飞','朱海','城根') # result = ",".join(users) # print(result) """ # 11. 利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。 """ data_list = [] for i in range(0,101): if i % 2 == 0: data_list.append(i) data_list = [] for i in range(0,101,2): data_list.append(i) """ # 12. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。 """ data_list = [] for i in range(0,51): if i % 3 == 0: data_list.append(i) print(data_list) """ # 13. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下: """ data_list = [] for i in range(0,51): if i % 3 == 0: data_list.insert(0,i) print(data_list) """ # 14. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。 """ ```python li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] ``` """ """ li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] data_list = [] for item in li: item = item.strip() if item.startswith('a'): data_list.append(item) for item in data_list: print(item) """ # 15. 判断是否可以实现,如果可以请写代码实现。 """ ```python li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"] ``` - 请将 "WuSir" 修改成 "武沛齐" - 请将 ("ritian", "barry",) 修改为 ['日天','日地'] - 请将 88 修改为 87 - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周" del li[-1] li.insert(0,'文周') - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "wenzhou" deleted = li.pop() li.insert(0,deleted) """ # 16. 面试题 & 书写规范 """ v1 = 1 v2 = (1) v3 = (1,) print(type(v1),type(v2),type(v3)) """ # data = [(1),(2),(3)] # [1,2,3] # 17. 用户输入 # content = input("请输入:") # 5 + 99+7+ 2+ uu + 7y ... """ total = 0 content = "5 + 99+7+ 2+ uu + 7y" num_list = content.split('+') # ["5 ",' 99',"7",' 2', ' uu '..] for item in num_list: item = item.strip() if item.isdigit(): total += int(item) print(total) """
字典练习题
#!/usr/bin/env python # -*- coding:utf-8 -*- """""" # 1.请获取 "刘伟达" """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} v = info['name'] print(v) """ # 2. 请输出所有键 """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} for i in info.keys(): print(i) """ # 3. 请输出所有键和值 # v = "1+3" # a,b = v.split('+') # [1,3] # print(a,b) # a,b = (1,3,) # print(a,b) # info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} # for a,b in info.items(): # print(a,b) # 3. 请输出所有键和值,并让用户输入 name/age/gender/hobby,根据用户输入输出对应的值。 """ info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} for k,v in info.items(): print(k,v) key = input('请输入键:') # "name" print(info[key]) # info["name"] """ # 4. 给你一个空字典,请在空字典中添加数据: k1:1,k2:2,k3:3 """ info = {} info['k1'] = "1" info['k2'] = 2 info['k3'] = 3 print(info) """ # 5. 给你一个空字典,请让用户输入:key,value,将输入的key和value添加到字典中。 # info = {} # k = input('请输入key:') # v = input('请输入value:') # info[k] = v # print(info) # 6. 给你一个空字典,请一直让用户输入:key,value,将输入的key和value添加到字典中,直到用户输入 N ,则表示不再输入。 """ info = {} while True: k = input('请输入key:') if k == 'N': break v = input('请输入value:') info[k] = v print(info) """ # 7. 请用代码实现 """ message = "k1|v1,k2|v2,k3|123......." # ,k3|123 info = {'k1':'v1','k2':'v2','k3':'123'} info = {} message = "k1|v1,k2|v2,k3|123" for item in message.split(','): # ["k1|v1","k2|v2","k3|123"] v1,v2 = item.split('|') info[v1] = v2 print(info) """ # 8. 数据类型嵌套:int/bool/str/list/tuple/dict # li = [11,22,33,True,[11,2],(11,2,[11,22],33,),{'k1':'v1','k2':(11,22,3)}] """ info = { 'k1':'v1', 'k2':True, 'k3':1, 'k4':(11,22,33), 'k5':[11,22,33], 'k6':{'kk':'vv'}, 1:{'kk':'vv'}, False:{'kk':'vv'}, # [11,2]:{'kk':'vv'}, # 不可哈希 (11,2):{'kk':'vv'}, # {'k1':'v2'}:{'kk':'vv'}, # 不可哈希 } print(info) """ # data = [1, 2, {'k1': 1, 'k2': 2, 'k3': (11, 22, 33), 'k4': [1, (12, 3, 4), 2]}, 93] # 获取3 # v = data[2]['k4'][1][1] # print(v) # 在k4对应的列表第0个位置插入一个 9 # data[2]['k4'].insert(0,9) # print(data) # 9. 创建出一个用户列表,然后让用户输入用户名和密码进行登陆。 """ user_list = [ {'user':'alex','pwd':'123'}, {'user':'oldboy','pwd':'123'}, {'user':'lishaoqi','pwd':'1123'}, {'user':'liqihang','pwd':'123'}, {'user':'xxx','pwd':'123'}, # N ] """ # 构建用户列表 """ user_list = [] while True: u = input('请输入用户名:') # N if u == "N": break p = input('请输入密码:') # user_info = {} # user_info['user'] = u # user_info['pwd'] = p user_info = {'user':u,'pwd':p} user_list.append(user_info) """ """ user_list = [{'user': 'alex', 'pwd': '123'}, {'user': 'oldboy', 'pwd': '123'}, {'user': 'lishaoqi', 'pwd': '123'}] username = input('请输入用户名:') # oldboy password = input('请输入密码:') # 123 message = "登陆失败" for item in user_list: if item['user'] == username and item['pwd'] == password: message = '登陆成功' break print(message) """ # 10. 有序 # 有序:元组/列表 # 无序:字典(py3.6之后字典就是有序了)
v = {'k1':'v1','k2':'v2','k3':'v3'} # 默认按照键判断,即:判断x是否是字典的键。 if 'x' in v: pass # 请判断:k1 是否在其中? if 'k1' in v: pass # 请判断:v2 是否在其中? # 方式一:循环判断 flag = '不存在' for v in v.values(): if v == 'v2': flag = '存在' print(flag) # 方式二: if 'v2' in list(v.values()): # 强制转换成列表 ['v1','v2','v3'] pass # 请判断:k2:v2 是否在其中? value = v.get('k2') if value == 'v2': print('存在') else: print('不存在')