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

  • 方法一
 list = 'k:1/k1:2/k2:3/k3:4'
new_list = list.split("/")
print(new_list)
dic = {}
for i in new_list:
k,v = i.split(":")
dic[k] = int(v)
print(i)
print(dic)

作业 1 答案 1

  • 方法二
 list = []
list_key = []
list_value = []
str = "k:1/k1:2/k2:3/k3:4"
str = str.split('/')
for i in str:
l = i.split(':')
list.append(l)
# print(list)
for j in list:
# print(j[0])
# print(j[1])
list_key.append(j[0])
list_value.append(j[1])
d = dict(zip(list_key,list_value))
print(d)
# {'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]}

  • 方法一
 list=[11,22,33,44,55,66,77,88,99]
dic ={'k1':[],'k2':[]}
for i in list:
if i == 55:
continue
elif i > 55:
dic.setdefault('k1').append(i)
else:
dic.setdefault('k2').append(i)
print(dic)

作业 2 答案 1

  • 方法二
 list1 = []
list2 = []
list_key = ['k1','k2']
list_value = []
list=[11,22,33,44,55,66,77,88,99]
for i in list:
if i >= 55:
list1.append(i)
else:
list2.append(i)
list_value.append(list1)
list_value.append(list2)
# print(list_value)
d = dict(zip(list_key,list_value))
print(d)

作业 2 答案 2

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

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

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

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

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

  • 方法一
 goods = [{'name': "华为p30", 'price': 4900},
{'name': '香格里拉三日游', 'price': 99},
{'name': 'coffee', 'price': 28},
{'name': '4D_movie', 'price': 100}]
for i in goods:
print(goods.index(i) + 1 ,i['name'],i['price'])
while True:
str_input = input('输入你想要的商品的序号,当输入Q/q退出系统:')
if str_input.isdigit() and 0 < int(str_input) <= len(goods):
a = int(str_input) -1
print(goods[a]['name'],goods[a]['price'])
elif str_input.upper() == 'Q':
print('奴家恭送小主')
break
else:
print("输入有误,请重新选择")

作业 3 答案 1

  • 方法二
 # 首先根据题目相关信息创建字典
list_serial = ['','']
list_name = ['华为P30','香格里拉三日游 ']
list_price = ['','']
d1 = dict(zip(list_serial,list_name))
d2 = dict(zip(list_name,list_price))
def info(n):
if d1.get(n) != None:
print("你要去的景点信息为:","name:",d1.get(n),"|","price:",d2.get(d1.get(n)))
else:
print("输入序号有误,请重新输入")
if __name__ == '__main__':
while True:
n = input('请输入要查询景点信息的序号:')
if n.upper() == "Q":
print("退出程序")
break
else:
info(n)

作业 2 答案 2 中极版

  • 方法三
 list_serial = [] #存储景点信号的列表
list_name = [] #存储景点名称
list_price = [] #存储价格
def input_info(): # 建立景点信息
while True:
serial = input("请输入序号:")
if serial in list_serial: # 如果输入的序号已经存在,请重新输入
print("此序号已有,请重新输入")
# python中break和continue的用法和区别详解 https://blog.csdn.net/wls666/article/details/90408393
continue # 只结束本次循环,并不终止整个循环(while循环)的执行
if serial.upper() == "Q": # 如果输入的值等于q或Q,则停止录入景点信息 upper()函数是转换为大写字符 lower()小写
break # 跳出while循环
name = input("请输入景点名称:")
if name in list_name:
print("此景点已有,请重新输入")
continue
if name.upper() == "Q":
break
price = input("请输入门票:")
if price.upper() == "Q":
break
if serial not in list_serial:
list_serial.append(serial)
if name not in list_name:
list_name.append(name)
list_price.append(price) def save_info(): # 存储景点信息
print("***************************************")
print("所有景点信息为:")
for key, value in d1.items(): # 遍历d1字典中的键和值,对可迭代对象d1.items()的每一个元素((serial,name))进行解包(key, value = (serial, name))
print("serial:", key, "|", "name:", value, "|", "price:", d2.get(value))
print("***************************************") def out_info(n): # 打印景点信息
if d1.get(n) != None: # 判断景点序号是否存在
print("------------------------------------------")
print("你要去的景点信息为:", "name:", d1.get(n), "|", "price:", d2.get(d1.get(n)))
print("------------------------------------------")
else:
print("没有此景点,请重新输入") if __name__ == '__main__':
print("请输入你的景点信息,输入Q/q退出")
input_info() # 调用建立景点信息函数
# zip() 函数用于将可迭代的对象作为参数,
# 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
d1 = dict(zip(list_serial, list_name)) # 映射函数方式来构造字典 list_serial和list_name都是列表
d2 = dict(zip(list_name, list_price))
save_info()
while True:
n = input('请输入要查询景点信息的序号:')
if n.upper() == "Q":
print("奴家恭送小主")
break
else:
out_info(n) # 调用打印景点信息函数

作业 3 答案 3 高级版

Python习题003的更多相关文章

  1. Python练习题 003:完全平方数

    [Python练习题 003]一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? --------------------------------------- ...

  2. Python [习题] 文件操作:目录间copy 文件

    [习题] 指定一个源文件,实现copy到目标目录.例如把/tmp/sample1.txt 拷贝到/tmp/sample2.txt原文件需要有读权限(默认rt权限),目标文件需要给写(w即可)权限. I ...

  3. python习题实例(上)_update18/07/03

    用以记录python学习过程中做过的小习题~ ヾ(◍°∇°◍)ノ゙ 1.生成两个列表,分别存放将100以内的偶数&奇数 odd_number=[] even_number=[] for i i ...

  4. 笨办法学Python - 习题11-12: Asking Questions & Prompting People

    目录 1.习题 11: 提问 2.习题 12: 提示别人 3.总结 1.习题 11: 提问 学习目标:了解人机交互场景,熟悉raw_input 的用法. 1.在 Python2.x 中 raw_inp ...

  5. 笨办法学Python - 习题8-10: Printing & Printing, Printing

    目录 1.习题 8: 打印,打印 2.习题 9: 打印,打印,打印 3.习题 10: 那是什么? 3.1.转义序列: 4.习题总结: 1.习题 8: 打印,打印 学习目标:继续学习 %r 的格式化输出 ...

  6. 笨办法学Python - 习题6-7: Strings and Text & More Printing

    目录 1.习题 6: 字符串(string) 和文本 2.加分习题: 3.我的答案 4.习题总结 5.习题 7: 更多打印 6.习题总结 1.习题 6: 字符串(string) 和文本 学习目标:了解 ...

  7. 笨办法学Python - 习题5: More Variables and Printing

    1.习题 5: 更多的变量和打印 学习目标:了解用户输入方法,明白pthon2和Python3之间的用户输入的区别.了解格式化字符串(format string)的概念,学会如何创建包含变量内容的字符 ...

  8. 笨办法学Python - 习题4: Variables and Names

    1.习题 4: 变量(variable)和命名 学习目标:了解Python中变量的定义,学习定义简明易记的变量名 变量:变量是存储内存中的值,就是每定义一个变量就会在内存中开辟一个空间.基于变量的类型 ...

  9. 笨办法学Python - 习题3: Numbers and Math

    目录 习题 3: 数字和数学计算 算术运算符 加分习题: 我的答案: 总结: 扩展: Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算 ...

随机推荐

  1. C++标准库分析总结(六)——<Map、Multimap、Set、Multiset设计原则>

    关联容器我们可以看做是一个小型的数据库,它就是用key找value,编译器底层对于关联容器的实现有两种:红黑树(Red-Block tree)和哈希表(hash table,散列表). 一.红黑树简单 ...

  2. OpenJudge 1.5.14 人口增长问题

    描述 我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人? 输入一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔.输出输出最后的人口数,以亿为单位,保留到小数点后四位.1 & ...

  3. Java 单例设计模式之 饿汉式和懒汉式

    public class InstanceSampleTest { public static void main(String[] args) { /** 单例设计模式的 饿汉式和懒汉式 * 单例模 ...

  4. vmware如何克隆多个linux系统

    安装一次系统相对来说耗时较长,且还要做各种配置,那么克隆就不失为一种好的选择.接下来我把我做系统克隆的步骤写下来,供大家参考: 右键点击已经安装的虚拟机,选择管理-->克隆,接下来弹出一个窗口 ...

  5. CSS绘制三角形—border法

    1. 实现一个简单的三角形 使用CSS盒模型中的border(边框)即可实现如下所示的三角形:   CSS实现简单三角形 实现原理: 首先来看在为元素添加border时,border的样子:假设有如下 ...

  6. 2018-2019-2 20165114《网络对抗技术》Exp7 网络欺诈防范

    Exp7 网络欺诈防范 目录 一.实验内容 二.基础问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 (2)在日常生活工作中如何防范以上两攻击方法 三.实践过程记录 3.1简单应用SET ...

  7. CentOS 7 安装MySQL8

    安装 下载Linux对应的MySQL https://dev.mysql.com/downloads/mysql/ CentOS选择Red Hat Enterprise Linux 在/usr/loc ...

  8. macbook配置homebrew

    打开homebrew官网,https://brew.sh/将安装脚本复制到命令行中,执行即可 命令正在运行,下载应用,如果在安装应用时,下载速度很慢,可以参考https://blog.csdn.net ...

  9. nginx php-fpm安装配置 CentOS编译安装php7.2

    CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...

  10. 阿里PB级Kubernetes日志平台建设实践

    干货分享 | 阿里PB级Kubernetes日志平台建设实践https://www.infoq.cn/article/HiIxh-8o0Lm4b3DWKvph 日志最主要的采集工具是 Agent,在 ...