zoukankan      html  css  js  c++  java
  • Python习题003

    作业一:将字符串”k:1/k1:2/k2:3/k3:4”处理成字典(比较难)

    • 方法一
    1 list = 'k:1/k1:2/k2:3/k3:4'
    2 new_list = list.split("/")
    3 print(new_list)
    4 dic = {}
    5 for i in new_list:
    6     k,v = i.split(":")
    7     dic[k] = int(v)
    8     print(i)
    9 print(dic)
    作业 1 答案 1
    • 方法二
     1 list = []
     2 list_key = []
     3 list_value = []
     4 str = "k:1/k1:2/k2:3/k3:4"
     5 str = str.split('/')
     6 for i in str:
     7     l = i.split(':')
     8     list.append(l)
     9 # print(list)
    10 for j in list:
    11     # print(j[0])
    12     # print(j[1])
    13     list_key.append(j[0])
    14     list_value.append(j[1])
    15 d = dict(zip(list_key,list_value))
    16 print(d)
    17 # {'k': '1', 'k1': '2', 'k2': '3', 'k3': '4'}
    作业 1 答案 2

    作业二:有如下list=[11,22,33,44,55,66,77,88,99],将所有大于55的值保存在字典的第一个key中,

        将小于55的值保存至第二个key中。形式如下:{“k1”:[n>55],”k2”:[n<55]}

    • 方法一
     1 list=[11,22,33,44,55,66,77,88,99]
     2 dic ={'k1':[],'k2':[]}
     3 for i in list:
     4     if i == 55:
     5         continue
     6     elif i > 55:
     7         dic.setdefault('k1').append(i)
     8     else:
     9         dic.setdefault('k2').append(i)
    10 print(dic)
    作业 2 答案 1
    • 方法二
     1 list1 = []
     2 list2 = []
     3 list_key = ['k1','k2']
     4 list_value = []
     5 list=[11,22,33,44,55,66,77,88,99]
     6 for i in list:
     7     if i >= 55:
     8         list1.append(i)
     9     else:
    10         list2.append(i)
    11 list_value.append(list1)
    12 list_value.append(list2)
    13 # print(list_value)
    14 d = dict(zip(list_key,list_value))
    15 print(d)
    作业 2 答案 2

    作业三:显示下图,做出如下功能

    序号 名称 价格
    1 华为P30 4900
    2 香格里拉三日游 99
    ······ ······ ······

    功能1:用户输入选择序号,自动打印出名称和价格

    功能2:输入序号有误,提示、重新输入

    功能3:输入 q或者 Q,退出程序

    • 方法一
     1 goods = [{'name': "华为p30", 'price': 4900},
     2          {'name': '香格里拉三日游', 'price': 99},
     3          {'name': 'coffee', 'price': 28},
     4          {'name': '4D_movie', 'price': 100}]
     5 for i in goods:
     6     print(goods.index(i) + 1 ,i['name'],i['price'])
     7 while True:
     8     str_input = input('输入你想要的商品的序号,当输入Q/q退出系统:')
     9     if str_input.isdigit() and 0 < int(str_input) <= len(goods):
    10         a = int(str_input) -1
    11         print(goods[a]['name'],goods[a]['price'])
    12     elif str_input.upper() == 'Q':
    13         print('奴家恭送小主')
    14         break
    15     else:
    16         print("输入有误,请重新选择")
    作业 3 答案 1
    • 方法二
     1 # 首先根据题目相关信息创建字典
     2 list_serial = ['1','2']
     3 list_name = ['华为P30','香格里拉三日游 ']
     4 list_price = ['4900','99']
     5 d1 = dict(zip(list_serial,list_name))
     6 d2 = dict(zip(list_name,list_price))
     7 def info(n):
     8     if d1.get(n) != None:
     9         print("你要去的景点信息为:","name:",d1.get(n),"|","price:",d2.get(d1.get(n)))
    10     else:
    11         print("输入序号有误,请重新输入")
    12 if __name__ == '__main__':
    13     while True:
    14         n = input('请输入要查询景点信息的序号:')
    15         if n.upper() == "Q":
    16             print("退出程序")
    17             break
    18         else:
    19             info(n)
    作业 2 答案 2 中极版
    • 方法三
     1 list_serial = [] #存储景点信号的列表
     2 list_name = []  #存储景点名称
     3 list_price = [] #存储价格
     4 def input_info():  # 建立景点信息
     5     while True:
     6         serial = input("请输入序号:")
     7         if serial in list_serial:  # 如果输入的序号已经存在,请重新输入
     8             print("此序号已有,请重新输入")
     9             # python中break和continue的用法和区别详解 https://blog.csdn.net/wls666/article/details/90408393
    10             continue  # 只结束本次循环,并不终止整个循环(while循环)的执行
    11         if serial.upper() == "Q":  # 如果输入的值等于q或Q,则停止录入景点信息  upper()函数是转换为大写字符 lower()小写
    12             break  # 跳出while循环
    13         name = input("请输入景点名称:")
    14         if name in list_name:
    15             print("此景点已有,请重新输入")
    16             continue
    17         if name.upper() == "Q":
    18             break
    19         price = input("请输入门票:")
    20         if price.upper() == "Q":
    21             break
    22         if serial not in list_serial:
    23             list_serial.append(serial)
    24         if name not in list_name:
    25             list_name.append(name)
    26         list_price.append(price)
    27 
    28 def save_info():  # 存储景点信息
    29     print("***************************************")
    30     print("所有景点信息为:")
    31     for key, value in d1.items():  # 遍历d1字典中的键和值,对可迭代对象d1.items()的每一个元素((serial,name))进行解包(key, value = (serial, name))
    32         print("serial:", key, "|", "name:", value, "|", "price:", d2.get(value))
    33     print("***************************************")
    34 
    35 
    36 def out_info(n):  # 打印景点信息
    37     if d1.get(n) != None:  # 判断景点序号是否存在
    38         print("------------------------------------------")
    39         print("你要去的景点信息为:", "name:", d1.get(n), "|", "price:", d2.get(d1.get(n)))
    40         print("------------------------------------------")
    41     else:
    42         print("没有此景点,请重新输入")
    43 
    44 if __name__ == '__main__':
    45     print("请输入你的景点信息,输入Q/q退出")
    46     input_info()  # 调用建立景点信息函数
    47     # zip() 函数用于将可迭代的对象作为参数,
    48     # 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
    49     d1 = dict(zip(list_serial, list_name))  # 映射函数方式来构造字典 list_serial和list_name都是列表
    50     d2 = dict(zip(list_name, list_price))
    51     save_info()
    52     while True:
    53         n = input('请输入要查询景点信息的序号:')
    54         if n.upper() == "Q":
    55             print("奴家恭送小主")
    56             break
    57         else:
    58             out_info(n)  # 调用打印景点信息函数
    作业 3 答案 3 高级版
  • 相关阅读:
    <<Rust程序设计语言>>个人版(4: 所有权)
    《逻辑学入门》笔记(45-66)
    《逻辑学入门》笔记(23-44)
    <<Rust程序设计语言>>个人版(3.3: 函数/3.4: 注释/3.5: 控制流)
    <<Rust程序设计语言>>个人版(1: 入门/2: 编写猜谜游戏)
    网站如何保护用户的密码
    在 Gin 项目中使用 WebSocket
    《逻辑学入门》笔记(1-22)
    浅谈双重认证逻辑
    某大型网络安全活动中遇到的钓鱼邮件
  • 原文地址:https://www.cnblogs.com/oito/p/11207271.html
Copyright © 2011-2022 走看看