作业一:将字符串”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. 线程池(2)-Executors提供4个线程池

    1.为什么不使用Executors提供4个线程池创建线程池 阿里巴巴开放手册这样写: . [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式, ...

  2. Tkinter 之CheckButton复选框标签

    一.参数说明 语法 作用 Checkbutton(root,text='xxxx') 复选框显示的文本 Checkbutton(root,variable=id) 通过变量的值确定哪些复选框被选中 C ...

  3. [端口安全]Hydra密码爆破

    目录 0x01 简介 0x02 常见参数 0x03 使用案例 0x04 密码字典 0x01 简介 Hydra中文名:九头蛇,这是一款相当强大的爆破工具,它基本支持了所有可爆破协议,而且容容错率非常好 ...

  4. 《Glibc内存管理》笔记DAY2

    目录 Ptmalloc内存管理设计 Main_arena 与 non_main_arena chunk 的组织 空闲 chunk 容器 sbrk 与 mmap 内存分配概述 内存回收概述 边界标记法 ...

  5. Spring tools

    sts是什么? sts是spring tool suite的缩写,是基于eclipse的.开发spring应用的定制的开发环境. 提供了什么? 实现.调试.运行.部署spring应用的现成的环境.包括 ...

  6. 【Java】LinkedHashMap

    Java LinkedHashMap 标签(空格分隔):Java source-code 总结 1.LinkedHashMap基于HashMap,实现了按插入顺序.LRU,实现方式主要是继承了Hash ...

  7. python pip settools 安装基于源码 gdal安装需要c++相关库

  8. centos6.6 ftp 配置 修改默认端口等

    常规下21端口容易遭到别人的扫描.带来了一定程度的不安全.所以,最好的就是把21端口修改掉. 默认修改为6069 一.修改vsftp的配置文件 vi /etc/vsftpd/vsftpd.conf 在 ...

  9. Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令

    ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#if 预处理指令 1.返回顶部 1. #if(C# 参考) 2018/06/30 如果 C# 编译器遇到 #if 指令,最终是 ...

  10. Webservice初体验:axis调用wsdl和document解析

    Neo君遇到了需要调用webservice接口的情况,然而作为一只小白对这方面了解困乏,经过摸索,完成了一个小的Demo,记录下. 一:背景 同事给了我一个webservice地址,打开后后缀是&qu ...