python基本数据类型练习
一、元素分类
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
1
2
3
4
5
6
7
8
9
10
11
|
list1 = [11,22,33,44,55,66,77,88,99,90]
dic1 = {
'k1' :[],
'k2' :[]
}
for l in list1:
if l > 66:
dic1[ 'k1' ].append(l)
else :
dic1[ 'k2' ].append(l)
print(dic1)
|
二、查找
1、 查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素
1
2
3
4
5
6
7
8
|
li = [ "alc" , " aric " , "Aex" , "Tny" , "rain" ]
list1 =[]
for l in li:
#使用strip方法确定能寻找到所有元素,startwith,endwith按条件进行查找
if l.strip().startswith( 'a' or 'A' ) and l.strip().endswith( 'c' ):
#print(l.strip())
list1.append(l.strip())
print(list1)
|
2、元组
1
2
3
4
5
6
7
8
9
10
|
tu = ( "alc" , " aric" , "Alx" , "Tny" , "rain" )
#找出的元素放到一个新列表中,因为元组中不能增加元素
list2 =[]
for l in tu:
#使用strip方法确定能寻找到所有元素,startwith,endwith按条件进行查找
#if 判断遇到or和and是需要注意执行成功时的判断
if l.strip().startswith( 'a' or 'A' ) and l.strip().endswith( 'c' ):
#print(l.strip())
list2.append(l.strip())
print(list2)
|
3、字典
1
2
3
4
5
6
7
8
|
dic = { 'k1' : "alx" , 'k2' : ' aric' , "k3" : "Alx" , "k4" : "Tny" , "k5" : " Anc " }
#定义一个空字典
dic1 = {}
for k, v in dic.items():
if ( v .strip().startswith( 'a' ) or v .strip().startswith( 'A' )) and v .strip().endswith( 'c' ):
print( v )
dic1[k] = v
print(dic1)
|
三、输出商品列表,用户输入序号,显示用户选中的商品
1
2
3
4
5
6
7
8
9
10
|
# 商品
li = [ "手机" , "电脑" , '鼠标垫' , '键盘' ]
for num, v in enumerate(li,1):
print(num, v )
choice = int(input( "请选择商品:" ))
choice1=choice-1
if choice1>=0 and choice1<=len(li)-1:
print(li[choice1])
else :
print( "商品不存在" )
|
四、购物车
# 功能要求:
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车
方法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
goods = [
{ "product" : "电脑" , "price" : 1999},
{ "product" : "鼠标" , "price" : 10},
{ "product" : "iphone" , "price" : 5000},
{ "product" : "kindle" , "price" : 998},
]
#已经买到的商品
list_buy = []
#输入总资产
all_money = 0
all_money = int(input( "请输入总资产:" ))
#输出所有的产品
for key,i in enumerate(goods,1):
print(i[ 'product' ],i[ 'price' ])
#当条件成立时,在购买环节循环
while True:
#选择需要买的商品
choice = input( "请选择商品(y/Y进行结算购买):" )
#是否进行结算
if choice.lower() == "y" :
break
#循环所有的商品与选择商品进行对比,如果存在,就添加到list_buy中
for v in goods:
if choice == v [ "product" ]:
list_buy.append( v )
#输出所有打算购买的商品
print(list_buy)
#定义商品总价初始值
total_price = 0
for p in list_buy:
#计算所有商品价格
total_price = total_price+p[ "price" ]
if total_price>all_money:
print( "你的钱不够,请充值%d元" %(total_price-all_money))
chongzhi = int(input( "输入充值金额:" ))
all_money +=chongzhi
else :
print( "购买成功" )
print(list_buy)
|
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
goods = [
{ "product" : "电脑" , "price" : 1999},
{ "product" : "鼠标" , "price" : 10},
{ "product" : "iphone" , "price" : 5000},
{ "product" : "kindle" , "price" : 998},
]
salary = int(input( "请输入工资:" ))
#dic_shop_cart = {"product":{"price":0,"num":0}}
dic_shop_cart = {}
#循环输出所有产品
for p in goods:
print(p[ 'product' ],p[ 'price' ])
while True:
choice = input( "请选择购买的商品(y/Y进行结算):" )
if choice.lower() == 'y' :
break
#循环所有商品
for item in goods:
#判断选择的商品是否在所有商品中
if item[ "product" ] == choice:
#如果存在,就把商品赋值给product
product = item[ "product" ]
#如果商品在字典dic_shop_cart中,字典中num就加1
if product in dic_shop_cart.keys():
dic_shop_cart[product][ "num" ] = dic_shop_cart[product][ "num" ] + 1
#如果不在,就第一次添加到字典中
else :
dic_shop_cart[product] = { "num" :1, "single_price" :item[ "price" ]}
print(dic_shop_cart)
sum_price = 0
for k, v in dic_shop_cart.items():
# print(k,v)
t_price = v [ "single_price" ]* v [ "num" ]
print( "购买%s的数量为%s:总价为%d" %(k, v [ "num" ],t_price))
sum_price=sum_price+t_price
print( "所有商品总价为:%s" %sum_price)
if sum_price>salary:
print( "你的钱不够,哈哈哈。。。,别买了吧" )
else :
print( "购买成功,有钱人啊。。。" )
|
输出结果:
五、用户交互,显示省市县三级联动的选择
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
dic = {
"河北" : {
"石家庄" : [ "鹿泉" , "藁城" , "元氏" ],
"邯郸" : [ "永年" , "涉县" , "磁县" ],
},
"北京" : {
"大兴" : [ "黄村" , "清源" , "天宫院" ],
"海淀" : [ "中关村" , "西二旗" , "五道口" ],
},
"安徽" : {
"合肥" : [ "庐阳" , "肥西" , "滨湖" ],
"安庆" : [ "桐城" , "宜秀区" , "岳西" ],
}
}
for p in dic:
print(p)
p1 = input( "请输入省份:" )
if p1 in dic.keys():
for s in dic[p1]:
print(s)
s1 = input( "请输入市区:" )
if s1 in dic[p1].keys():
for q in dic[p1][s1]:
print(q)
else :
print( "市区还没有录入" )
else :
print( "省份还没有录入" )
|
执行结果:
转载于:https://www.cnblogs.com/chenshengqun/p/9071228.html
python基本数据类型练习相关推荐
- Python的零基础超详细讲解(第四天)-Python的数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
- python的数据类型和变量
python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...
- python核心数据类型_Python核心数据类型-列表
Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...
- python判断数据类型type_Python 判断数据类型有type和isinstance
Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...
- Python基础数据类型之set集合
Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...
- Python基础数据类型之字符串(二)
Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...
- Python基础数据类型之字符串(一)
Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...
- 好好学python·基本数据类型
好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...
- python元组类型_什么是python元组数据类型
什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...
- python核心数据类型_Python核心数据类型—元组
Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...
最新文章
- spark编程基础--5.1RDD编程基础
- LabVIEW 三维机器人展示
- 十图详解TensorFlow数据读取机制(附代码)
- 必读 | 六月份不容错过的十大重磅好文,机器学习和数据科学的小伙伴拿走不谢 原创 2017-07-10 爱收藏的 AI科技大本营 作者 | Flavian Hautbois 翻译 | AI科技大
- 虚拟机的性能监控与故障处理——jps,jstat,jinfo,jmap,jhat,jstack
- .NET Core+Selenium+Github+Travis CI =amp;gt; SiteHistory
- 深圳电大计算机等级考试报名时间2015,杭州2015下半年计算机等级考试报名
- 接口测试系列:工作中所用(十:配置文件的读写操作 configparser模块)
- Mysql优化(出自官方文档) - 第五篇
- linux 查看端口
- 计算机等级考试一级宝典,计算机等级考试一级通关宝典
- aliddns ipv6_AliDDNS v2.0.0.1 - 阿里云DNS动态解析Windows客户端 支持IPv6 微信推送
- 为什么下载eclipse很慢很慢
- 信息技术在园林绿化技师试题测试中的应用
- 广西南宁机器人比赛_缤纷校园|2018年广西中小学电脑机器人竞赛开赛 南宁学子大显身手...
- 浅析微信小程序生命周期之应用生命周期
- 没想到Spring Boot + Vue 竟如此简单!
- 简化datax源码,以便于datax二次开发、调试
- DebEX 现在支持 Linux 5.0 内核 和 Budgie Desktop 10.4
- Entering emergency mode
热门文章
- iOS runloop
- 实现圆形头像(并且不管图大小都显示成固定尺寸)-和上一篇有点不同。
- 微信小程序云开发之cms开发
- scnprintf和snprintf的区别
- 在MatLab中FFT和IFFT的互相转换
- 用python批量修改后缀名
- CAD/CAM/CAE基础(一) 概论
- OSPF基本概念和OSPF配置
- 安装github上下载的python模块
- OpenCV笔记:模板匹配 cv2.matchTemplate()、cv2.minMaxLoc() 与 绘制矩形 cv2.rectangle() 方法介绍