作业一:将字符串”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. Redis批量删除缓存数据

    背景: 在使用redis中,经常会遇到批量删除缓存的情况,但是对于在客户端中,如果一个一个的删除key,则需要较长时间及相对麻烦,可以使用以下命令,批量删除缓存. 本地批量删除KEY: ./redis ...

  2. 牛客OI周赛10-提高组:B-Taeyeon的困惑(值域线段树)

    做法 单点加单点删,在值域线段树上直接二分就能求值前\(K\)小的和 Code #include<bits/stdc++.h> typedef long long LL; const LL ...

  3. 在取变量名的时候,千万不要用new

    这样子是会报错的

  4. scp执行报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    linux环境执行scp时会遇到报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,如下 [root@subsname home]# scp AAA. ...

  5. Fiddler is not capturing web request from Firefox

    Fiddler is not capturing web request from Firefox You can also get the FiddlerHook plug in for Firef ...

  6. mysql中的sql-mode导致的datetime类型字段不能为0000

    问题描述: 在执行建表语句的时候,出现invalid default datetime value '0000-00-00 00:00:00',从字面意思看,就是不合法的默认值'0000-00-00 ...

  7. colorMatrix色彩旋转设置

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...

  8. 设计-Int(4)和Int(11)谁更美

    设计-Int(4)和Int(11)谁更美 [缘起] 大家平时在进行数据库设计的时候,如果遇到需要存储整数类型的数据的时候,通常会优先使用Int这个整数类型,在处理20亿级别的正负数值存储上,Int类型 ...

  9. Mysql技巧及问题目录

    Mysql技巧及问题目录: MySQL批量导入Excel.txt数据 MySQL批量导入Excel数据

  10. 算法习题---3.01猜数字游戏提示(UVa340)

    一.题目 实现一个经典“猜数字”游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度n,第二行是答 ...