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
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) - 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(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
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) - 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('不存在')
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(元组) 元组被称为只读列 ...
随机推荐
- 【深入浅出-JVM】(5):Java 虚拟机结构
Java 虚拟机基本结构 Java 堆 新生代.老年代划分 栈帧 感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力. 作 者 : @mo ...
- Spring Boot2(十三):整合定时任务发送邮件
一.前言 主要玩一下SpringBoot的定时任务和发送邮件的功能.定时发送邮件,这在实际生成环境下主要用户系统性能监控时,当超过设定的阙值,就发送邮件通知预警功能.这里只通过简单的写个定时结合邮件通 ...
- JS获取display为none的隐藏元素的宽度和高度的解决方案
有时候,我们一进入页面,就需要获取display为none元素的物理尺寸(宽高),或获取display为none元素的子元素的物理尺寸(宽高),本篇文章就如何解决以上问题给出自己的解决方案 <h ...
- ~~函数基础(二):返回值&作用域~~
进击のpython 函数的返回值和作用域 上文我们讲到了函数的基础--参数的相关问题 举的例子也都是带有print的函数定义 但是有个问题就出现了:我不想打印这个函数处理后的参数 我想拿到这个参数然后 ...
- linux字符设备驱动--基本知识介绍
一.设备驱动的分类 1.字符设备 字符设备是指那些能一个字节一个字节读取数据的设备,如LED灯.键盘.鼠标等.字符设备一般需要在驱动层实现open().close().read().write().i ...
- vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。
1.vector是序列式容器而set是关联式容器.set包含0个或多个不重复不排序的元素.也就是说set能够保证它里面所有的元素都是不重复的.另外对set容器进行插入时可以指定插入位置或者不指定插入位 ...
- Excel催化剂开源第40波-Excel插入图片做到极致的效果
不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...
- 【区分】Typescript 中 interface 和 type
在接触 ts 相关代码的过程中,总能看到 interface 和 type 的身影.只记得,曾经遇到 type 时不懂查阅过,记得他们很像,相同的功能用哪一个都可以实现.但最近总看到他们,就想深入的了 ...
- org.mybatis.spring.MyBatisSystemException异常及处理
org.mybatis.spring.MyBatisSystemException异常处理 测试场景 在测试springboot中使用MyBatis/通用Mapper的自定义方法时出现此异常. 异常如 ...
- PHP使用array_unique对二维数组去重处理
去重,点这里,东西是好东西,就是有点懒.莫见怪