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(1)/.. -> bool(0)
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
- v1 = bool(0)
str
str(999) # "999"
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)
- v1 = tuple('adfadfasdfasdfasdfafd')
- tuple([11,22,33,44])
- v1 = tuple([11,22,33,44])
- print(v1)
- v1 = tuple([11,22,33,44])
总结
常见的类型转换
- # 字符串转数字
- # 数字转字符串
- # 列表转元组
- # 元组转列表
- # 其他转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(1)/.. -> bool(0)
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
- v1 = bool(0)
str
str(999) # "999"
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)
- v1 = tuple('adfadfasdfasdfasdfafd')
- tuple([11,22,33,44])
- v1 = tuple([11,22,33,44])
- print(v1)
- v1 = tuple([11,22,33,44])
总结
常见的类型转换
- # 字符串转数字
- # 数字转字符串
- # 列表转元组
- # 元组转列表
- # 其他转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('不存在')
pythonday05数据类型(三)的更多相关文章
- python 数据类型三 (字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- python数据类型三(字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- 数据类型(三) + 流程控制(一) day05
目录 昨日回顾 (三) 花式赋值 链式赋值 交叉赋值 (四) 列表list (五) 字典dict (六) 布尔值 (七) 解压缩 (八) python与用户交互的方式 (九) 三种格式化输出的方式 f ...
- python基础(8):基本数据类型三(dict)、is和==、编码和解码
1. 字典 1.1 字典的介绍 字典(dict)是python中唯一的一个映射数据类型,它是以{}括起来的键值对组成.在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将k ...
- python3 基础二——基本的数据类型三
一.字符串str 1.创建字符串,为变量分配一个值 word='字符串' sentence="字符串\n" #python中单引号和双引号使用完全相同 paragraph=&quo ...
- 万恶之源 - Python基础数据类型三
字典 字典的简单介绍 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯⼀的.在保存的时候, 根据key来计算出⼀个内存地址. 然后将key ...
- 5、数据类型三:hash
Hash数据类型使用很普遍,它同样是key-value的方式来组织的,只是其value又包含多个field-fieldValue对.想要获取某个fieldValue,可以通过key-field联合来定 ...
- Python数据类型三
一.帮助 如果想知道一个对象(object)更多的信息,那么可以调用help(object)!另外还有一些有用的方法,dir(object)会显示该对象的大部分相关属性名,还有object._ doc ...
- Py西游攻关之基础数据类型(三)-元组
Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 六 tuple(元组) 元组被称为只读列 ...
随机推荐
- 探寻 webpack_bundle_analyzer 原理
webpack_bundle_analyzer 是什么? 这是webpack官方出品的,对项目中模块依赖关系及体积的分析插件,其界面如下: 问题来了,这是如何来进行统计的? 这里提供一个插件的代码,可 ...
- 第八章 Fisco Bcos 国密版本的部署、控制台搭建、合约的部署、sdk 调用
鉴于笔者以前各大博客教程都有很多人提问,早期建立一个技术交流群,里面技术体系可能比较杂,想了解相关区块链开发,技术提问,请加QQ群:538327407 参考资料 证书说明:https://mp.wei ...
- WordPress教程之如何创建博客内容
上两篇教程的链接: Wordpress教程之初识WordPress Wordpress教程之如何入门WordPress Hostwinds共享主机vps限时五折优惠链接 现在,你的 WordPress ...
- Java学习笔记之---集合
Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...
- java学习笔记(基础篇)—java数组
一:什么是数组,什么时候使用数组? 数组是用来保存一组数据类型相同的元素的有序集合,数组中的每个数据称为元素.有序集合可以按照顺序或者下标取数组中的元素. 在Java中,数组也是Java对象.数组中的 ...
- 从零开始认识Dubbo
目录 1.Dubbo是什么 2.Dubbo能做什么 3.Dubbo架构 4.Dubbo的使用方法 5.使用Dubbo可能遇到的问题 1.Dubbo是什么 http://dubbo.apache.org ...
- [Windows无法连接到 System Event Notification Service服务]解决方案
我之前使用Windows的过程的有出现过以下问题,之前因为比较急就匆忙解决了没来得及把解决方法写下来. 正好今天有个朋友电脑也出现此问题过来找我寻求解决方法,便把解决方法写了下来. 电脑出现的问题,如 ...
- AT173 単位:题解
题目链接:https://www.luogu.org/problemnew/show/AT173 分析: 首先,我们可以做如下排序: sort(a+1,a+1+n); 因为题目告诉我们了要出席最少的次 ...
- 并发,并行,线程,进程,GIL锁
1.并发和并行 并发: 同时做某些事,但是强调同一时段做多件事 如:同一路口,发生了车辆要同时通过路面的时间. 并行: 互不干扰的在同一时刻做多件事 如:同一时刻,同时有多辆车在多条车道上跑,即同时发 ...
- 《VR入门系列教程》之10---3D图形学初识
第三章 基于Oculus Rift开发桌面端VR应用 接下来的几个章节中我们会进行VR开发的实际操练,本章就从Oculus Rift开发开始,我们会介绍如何开发一个桌面端的VR应用.虽然只是介 ...