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(元组) 元组被称为只读列 ...
随机推荐
- SqlCommand的Parameters的用法
SqlCommand的Parameters的用法 可以用的SqlCommand的Parameters的方法SqlCommand cmd=new ("insert into notice(ly ...
- web前端兼容性问题总结
1. HTML对象获取问题 FireFox:document.getElementById("idName");ie:document.idname或者document.get ...
- 基于SpringBoot从零构建博客网站 - 设计可扩展上传模块和开发修改头像密码功能
上传模块在web开发中是很常见的功能也是很重要的功能,在web应用中需要上传的可以是图片.pdf.压缩包等其它类型的文件,同时对于图片可能需要回显,对于其它文件要能够支持下载等.在守望博客系统中对于上 ...
- Java 技术交流群,微信群
专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.集群.dubbo.分布式.中间件.Linux.网络.多线程.Jenkins.Nexus.Docker.ELK等等! 由于微信群限制 ...
- tmux终端复用神器简单使用
创建命名Tmux会话(tmux new -s session_name)tmux new -s session_name chongchong 暂退Tmux会话(Ctrl + a d)直接关窗口 返回 ...
- Spring Boot微服务电商项目开发实战 --- 基础配置及搭建
根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...
- 【投票】你心目中的Excel催化剂价值有多大(附主流国内外收费插件供参考)?
Excel催化剂开发过程中,在前期功能中,也会参考着其他的插件的功能,也略略收集了一些其他插件的功能及价格信息,在当今免费等于鸡肋的时代,为了让大家不受这个免费的错觉影响,不妨以另一种角度去假设一翻, ...
- 个人永久性免费-Excel催化剂功能第102波-批量上传本地图片至网络图床(外网可访问)
自我突破,在100+功能后,再做有质量的功能,非常不易,相对录制视频这些轻松活,还是按捺不住去写代码,此功能虽小,但功课也做了不少,希望对真正有需要的群体带来一些惊喜. 背景介绍 图床的使用,一般是写 ...
- Java EE.JSP.内置对象
JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象.JSP提供了九中内置对象:request.response.out.session.ap ...
- Helm 3 使用 harbor 作为仓库存储 charts
简介 本文讲述的是调教 Helm 3 和 harbor 1.6+ 的经验,从 helm2 更新到 helm 3 并且将 charts 推送到 harbor 中进行存储,移除了原先的 helm serv ...