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)
"""
View Code

字典练习题

#!/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之后字典就是有序了)
View Code
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('不存在')
View Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---恢复内容结束---

今日内容

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)
"""
View Code

字典练习题

#!/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之后字典就是有序了)
View Code
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('不存在')
View Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 
posted @ 2019-07-23 17:15  嘘,在学习呢  阅读(209)  评论(0编辑  收藏  举报