2、python--第二天练习题
#1.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
#即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
b = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
a = {'k1':[],'k2':[]}
for i in b:
if i <= 66:
a['k1'].append(i)
else:
a['k2'].append(i)
print(a)
#2.查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
for i in li:
if (i.strip().startswith('a') or i.strip().startswith('A')) and i.strip().endswith('c'):
print(i.strip())
for i in dic.values():
if (i.strip().startswith('a') or i.strip().startswith('A')) and i.strip().endswith('c'):
print(i.strip())
#3.输出商品列表,用户输入序号,显示用户选中的商品
li = ["手机", "电脑", '鼠标垫', '游艇']
for k,v in enumerate(li):
print(str(k) +' : ' +v)
a = int(input("您选择的商品序号序号:"))
if a > 0 and a < len(li):
print('您选择的商品是:' + li[a])
else:
print('商品不存在')
#4.购物车
#功能要求:要求用户输入总资产,例如:2000,显示商品列表,让用户根据序号选择商品,加入购物车,购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
#附加:可充值、某商品移除购物车
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
Shopping = []
money = 0
sum_all= 0
credit = int(input('您现在有:' + '0 元,请输入您充值的金额:'))
print('您本次预存:' + str(credit) + '元')
while True:
for o, p in enumerate(goods):
print('商品序号' + str(o), ':' + p['name'] + '; 价格:' + str(p['price']))
a = input("请输入您选择的商品序号[输入q结算]:")
if a.isdigit():
if int(a) > o:
print('商品不存在,请重新选择!')
elif int(a) <= o:
sum_all += goods[int(a)]['price']
if credit >= sum_all:
Shopping.append(goods[int(a)]['name'])
money += goods[int(a)]['price']
print('商品:'+ goods[int(a)]['name'] +';已加入购物车,购物车清单:[' + ' '.join(Shopping) + '] 预计消费' + str(sum_all) +'元')
else:
print("余额不足!购物车清单:[" + ' '.join(Shopping)+ "], 您的预存金额为:" + str(credit) + '元,您预计消费为:' + str(sum_all) +'元;差' + str(sum_all-credit) +'元')
sum_all -= goods[int(a)]['price']
c = input("是否继续充值(y是/n否):")
if c == 'y':
d = input("请输入充值金额:")
credit += int(d)
print("您充值了%s元"%d)
elif c == 'n':
continue
else:
print("输入错误")
else:
print('输入错误!请输入您选择的商品序号[输入q结算]:')
if a.lower() == 'q':
print('您的购物清单如下:[%s];共消费:%s元;剩余:%s元' % (' '.join(Shopping), money, (credit - money)))
break
#5、用户交互,显示省市县三级联动的选择
dic = {
"河北": {
"石家庄": ["鹿泉", "藁城", "元氏"],
"邯郸": ["永年", "涉县", "磁县"],
},
"河南": {
"郑州":["中原","金水","中牟","二七"],
"商丘":["虞城","夏邑","宁陵","永城"],
},
"山西": {
"太原":["小店","古交","迎泽"],
"大同":["平城","云冈","广灵"],
}
}
while True:
for i in dic:
print(i)
sheng = input("请输入省份:")
for k in dic[sheng]:
print(k)
shi = input("请输入市,退出按q:")
if shi.lower() == 'q':
break
for j in dic[sheng][shi]:
print(j)
print('已经到底了,请继续选择省份!')
2、python--第二天练习题的更多相关文章
- Python之基础练习题
Python之基础练习题 1.执行 Python 脚本的两种方式 2.简述位.字节的关系 解:8位是一个字节 3.简述 ascii.unicode.utf-8.gbk 的关系 4.请写出 “李杰” 分 ...
- Python:程序练习题(二)
Python:程序练习题(二) 2.1温度转换程序. 代码如下: t=input("请输入带符号的温度值(如:32C):") if t[-1] in ["C", ...
- selenium webdriver (python) 第二版
前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- Python第二十六天 python装饰器
Python第二十六天 python装饰器 装饰器Python 2.4 开始提供了装饰器( decorator ),装饰器作为修改函数的一种便捷方式,为工程师编写程序提供了便利性和灵活性装饰器本质上就 ...
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- python第二十九课——文件读写(复制文件)
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...
- python第二十九课——文件读写(读取读取中文字符)
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...
随机推荐
- Spring cloud的各类组件
Spring cloud 的各类组件 1.注册中心 eureka 2.ribbon 3.feign 4.hystirx 断路器 5.高速缓存器 redis 6.断路器Dashboard监控仪表盘
- 【数据结构】Tournament Chart
Tournament Chart 题目描述 In 21XX, an annual programming contest, Japan Algorithmist GrandPrix (JAG) has ...
- 面试经典算法:快速排序Golang实现
Golang快速排序 定义 快速排序由C. A. R. Hoare在1962年提出.快速排序是对冒泡排序的一种改进,采用了一种分治的策略. 基本思想 通过一趟排序将要排序的数据分割成独立的两部分,其中 ...
- hdu 5672 尺取还是挺好用的
先简单介绍下尺取法 http://blog.chinaunix.net/uid-24922718-id-4848418.html 尺取法就是在卡给定条件的时候 不断的改变下标 起点 终点 #inclu ...
- (错误) Eclipse使用Maven创建Web时错误
转自:http://blog.csdn.net/afgasdg/article/details/12757433 问题描述: 使用Eclipse自带的Maven插件创建Web项目时报错: Could ...
- (七)freemarker的基本语法及入门基础
一.freemarker模板文件(*.ftl)的基本组成部分 1. 文本:直接输出的内容部分 2. 注释:不会输出的内容,格式为<#-- 注释内容 --> ...
- (六)Spring Boot之日志配置-logback和log4j2
一.简介 支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback 配置方式: 默认配置文件配置 引用外部配置文件配置 二.默认配置文件配置( ...
- Windows 10 下 Linux 子系统的安装和使用
介绍 适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2 ...
- 使用nodejs连接mysql数据库实现增删改查
首先要有数据库 使用xampp 或者 phpstudy 可以傻瓜式安装 新建一个项目文件夹 之后在这个目录下初始化package.json (npm init) 先在项目中安装mysql 和 ex ...
- Java 面向对象(二)封装
一.封装(Encapsulation) 1.概述 封装是面向对象编程的核心思想.把对象的属性和行为封装起来,其载体就是类. 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的, ...