一 购物车小程序

goods=[{'name':'香蕉','price':},
{'name':'苹果','price':},
{'name':'菠萝','price':}]
shop_car={}
li=[]
for i in range(,len(goods)):
li.append(i)
money=input('请输入您的总金额:') if money.isdigit():
while True:
if int(money) > :
for i,j in enumerate(goods):
print('水果序号:{},商品:{},价格:{}'.format(i,j['name'],j['price']))
flag = input("请输入需购买的水果序号:")
if flag.isdigit() and int(flag) in li:
num=input('请输入商品的数量:')
if num.isdigit() and int(num) > :
money=int(money) - goods[int(flag)]['price']*int(num)
if goods[int(flag)]['name'] in shop_car:
shop_car[goods[int(flag)]['name']]=shop_car[goods[int(flag)]['name']] + int(num)
else:
shop_car[goods[int(flag)]['name']]=int(num)
print('购物车中的商品有{},您的余额为{}'.format(shop_car,money))
else:
print('请输入规范的序列号!!!')
else:
print('账户余额不足!!!')
break
else:
print('输入纯数字!!!')

 二 集合

集合是无序的、不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希的。

以下是集合最重要的两点:

  去重,把一个列表变成集合,就自动去重了。

  关系测试,测试两组数据之前的交集、差集、并集等关系。

1)集合的创建

set1 = {,,'abby'}
set2 = set({,,'abby'})
set3 = {,,}
print(set1)
print(set2)
print(set3)

执行结果:

{8, 'abby', 7}
{8, 'abby', 7}
{1, 2, 3}

2)增

set1={'abby','marry','barry','herry'}
#add
set1.add('kaikai')
print(set1) #update 无序的
set2={'abby','marry','barry','herry'}
set2.update('abc')
print(set1)

执行结果:

{'barry', 'kaikai', 'abby', 'marry', 'herry'}
{'barry', 'b', 'abby', 'a', 'marry', 'c', 'herry'}

3)删

#pop 随机删除
set3={'abby','marry','barry','herry'}
print(set3.pop())
print(set3) #按元素删除
set4={'abby','marry','barry','herry'}
set4.remove('abby')
print(set4) #清空集合
set5={'abby','marry','barry','herry'}
set5.clear()
print(set5)

执行结果:

marry
{'barry', 'abby', 'herry'}
{'marry', 'barry', 'herry'}
set()

3)查

set={'abby','marry','barry','herry'}
for i in set:
print(i)

执行结果

marry
herry
abby
barry

4)其他操作

set1={1,2,3,7,8,9}
set2={4,5,6,7,8,9}
# 交集 (& 或者 intersection)
print(set1 & set2)
print(set1.intersection(set2)) # 并集 (| 或者 union)
print(set1 | set2)
print(set2.union(set1)) # 差集 (- 或者 difference)
print(set1 - set2)
print(set1.difference(set2)) #反交集 (^ 或者 symmetric_difference)
print(set1 ^ set2)
print(set1.symmetric_difference(set2))

执行结果:

{8, 9, 7}
{8, 9, 7}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3}
{1, 2, 3}
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
#子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6} #set1是set2的子集
print(set1 < set2)
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。 #set2是set1的超集
print(set2 > set1)
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。 #frozenset不可变集合,让集合变成不可变类型。
s = frozenset('barry')
print(s,type(s)) # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>

执行结果:

True
True
True
True
frozenset({'a', 'b', 'y', 'r'}) <class 'frozenset'>

小练习题

#给列表l1去重
l1=[1,2,3,3,5,6,7]
l2=[]
print(set3)
for i in set(l1):
l2.append(i)
li=l2
print(li)

执行结果:

[1, 2, 3, 5, 6, 7]

自学python之路(day4)的更多相关文章

  1. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  2. 自学Python之路

    自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的搭建:Pycharm及python安装详细教程    1.3  ...

  3. 自学Python之路-Python核心编程

    自学Python之路-Python核心编程 自学Python之路[第六回]:Python模块       6.1 自学Python6.1-模块简介    6.2 自学Python6.2-类.模块.包  ...

  4. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  5. 自学Python之路-django

    自学Python之路-django 自学Python之路[第一回]:1.11.2 1.3

  6. 自学Python之路-Python并发编程+数据库+前端

    自学Python之路-Python并发编程+数据库+前端 自学Python之路[第一回]:1.11.2 1.3

  7. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  8. NO.3:自学python之路------集合、文件操作、函数

    引言 本来计划每周完成一篇Python的自学博客,由于上一篇到这一篇遇到了过年.开学等杂事,导致托更到现在.现在又是一个新的学期,春天也越来越近了(冷到感冒).好了,闲话就说这么多.开始本周的自学Py ...

  9. NO.1:自学python之路------Hello world、判断、循环

    引言 人工智能如今越来越贴近生活,在这里将记录我自学python与tensorflow的过程.编程使用IDE:visual studio 2017,python版本3.6.4,tensorflow版本 ...

随机推荐

  1. VNPY加密教程(Python生成pyd文件)

    安装成功之后,再修改设置.让Cython可以找到vcarsall.bat.此处有两种方案.(我采用方案1,亲测可用.方案2未测试,看似可用.) 方案1:修改Python安装目录的文件设置 window ...

  2. shell脚本while read line的使用

    #### 题目要求计算文档a.txt中每一行中出现的数字个数并且要计算一下整个文档中一共出现了几个数字.例如a.txt内容如下:12aa*lkjskdjalskdflkskdjflkjj我们脚本名字为 ...

  3. 修改 jenkins 主目录

    说明 Jenkins有时需要进行迁移,主目录会发生改变,本文主要讲解如何更改主目录.由于jenkins安装方式的不同,主目录也不一样.本测试环境:Centos6.8 X64.注意:在更改主目录之前,请 ...

  4. Robot Framework自动化测试(1)

    Python: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境. Robot framework : https://pypi.pytho ...

  5. linux基础命令连接命令ln

    ln  -s  /etc/issue   /tmp/issue.soft 创建文件/etc/issue 的软连接/tmp/issue.soft 不带-s 生成硬链接文件. 软连接类似于windows的 ...

  6. MySQL数据库(1)

    你好,我是Sundy左左,一名初级数据分析师,我在建设一个属于初学者笔记的乐园,在这里我将自己学习的东西分享出来,也许对你有用也许对你没用,但都欢迎您指出我的错误和改进的地方.我是一个初级的数据分析师 ...

  7. WPF实现分页控件

    页面代码如下: <UserControl x:Class="Music163.DataGridPaging" xmlns="http://schemas.micro ...

  8. wifi rate vs mode

  9. Spring Boot:定时任务

    在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现 1.pom 包配置 pom 包里面只需要引入 Spring ...

  10. I2C 上拉电阻选择计算公式

    I2C接口上拉电阻的选择 - I2C接口上拉电阻的选择 1.I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉. 2.上拉电阻的范围很宽,但也需要跟据功耗.信号上升时间等具体确定. 和速 ...