names=["zhang"]
names2=["jack","jie"]
names.clear()
print(names) #清空整个列表

names.extend(names2) #扩展将两个列表合并一个列表,原列表还在
print(names)

names.reverse() #反转
names.sort() #排序,根据ASCII码

name = "aaa"
id(name) 查看内存值
*.strip() 删除字符串 边上的(开头或结尾)的字符序列,默认是空格,删除什么可在括号中添加

flag 旗帜,标志位

操作颜色 \033[31;1m 加颜色的位置(代码) \033[0m

注意有开始有结束,没结束会从开始位到最后整个标记上颜色!

字典
key : value 键:值对

键 key必须唯一,字典是无序的!

names = {k1:v1……} 内容可以嵌套,也是列表,也可以是字典。
查:
print(names[key]) print(names[key]["name"])
改:
names[111][0] = "qinzhen"
names[111].append(28)
names[222] = "mike"插入

删除:
names.pop(k) k=key值
names.pop(1111111,None)
删除指定的key,若键值不存在,则输出None
names.popitem() 随机删除
del names[k] k=key值


print(names)所有
print(names[112])输出一个
print(names.get(112))有就获取值,没有就返回None

in 判断是否在字典里有这个key
print(113 in names)

loop循环
for i in names: 默认取key
print(i,names[i])

for k ,v in names.items(): #效率低,不要用
print(i)
names.keys() 列出所有的key值,放到一个列表中
names.value() 列出所有的value值,放到一个列表中

两个字典合并,成一个字典,原字典没有的添加,原字典有的会更新,以 k key值为标志位来判定。
names.update()

作业1: 购物车程序优化

前提
自己完全默写出来

1. 用户退出时打印商品列表时,按以下格式
-------您购买的商品如下------
id 商品 数量 单价 总价
1 iPhone 2 5800 11400
2 coffee 1 30 30
。。。

总计价格: 11430元
--------end -------------

代码如下:

#!usr/bin/env python
# _*_ coding:utf-8 _*_
product_list = [['Iphone7',5800], #商品列表
['Coffee',30],
['疙瘩汤',10],
['Book',99],
['Bike',199],
['ViVo X9',2499],
] shopping_car ={} #购物车!!! #格式{“商品”:[价格,数量]}字典
salary = int(input("请输入您的工资:")) #输入工资
#主函数
while True:
count = 0 #定义一个标志位
print("---------------")
print("序号\t商品\t\t价格")
for product in product_list: #商品列表循环
print("%s\t\t%s\t\t%s"
%(count+1, #序号
product[0] , #商品
product[1])) #商品价格
count += 1 #计数自加一
print("---------------")
choice = input("请输入你的选择:").strip() #输入,判断边上有没有空格,有的话删除
if choice.isdigit():#判断输入的字符串 是否是数字!
choice=int(choice) # 是数字的话,整型成数字!
if choice >= 1 and choice < len(product_list)+1: #判断输入的数字时候在商品序列之内,在之内向下执行
product = product_list[choice-1] #选择的商品
if product[1] < salary: #判断 比较 商品的价格和输入的工资,小于工资的话来向下执行
if product[0] in shopping_car: #判断所选取的商品在不在购物车中。如果在的话
shopping_car[product[0]][1] += 1 #该商品数量加一
else: #如果不在购物车中
shopping_car[product[0]] = [product[1],1] #该商品数量为一
salary -= product[1] #选完商品之后,剩余的钱!
print("您放在购物车的商品是" + product[0] + "您还剩下" + str(salary))
else: #工资小于商品的价格
print("对不起,你买不起!产品价格是:" + str(product[1]) + "你还差" + str(product[1]-salary) +"元钱!" )
else: #输入的数字大于商品的序号
print("对不起,我们没有这个商品!")
elif choice == "q": #判断输入的是"q",打印商品列表,格式化退出
print("-----已购买的商品列表-------")
print("ID\t商品\t数量\t单价\t总价")
int_count = 0 #定义一个计数器
total_price = 0#定义商品总价格
for keys in shopping_car: #对购物车(字典)循环,输出商品
print("%1s\t%s\t%2s\t\t%s\t\t%s"
%(int_count+1, #计数器
keys, #商品
shopping_car[keys][1], #商品的数量
shopping_car[keys][0], #商品的价格
shopping_car[keys][1]*shopping_car[keys][0]) #购买商品花费的总价格!
)
int_count +=1 #计数器自加一
total_price += shopping_car[keys][1] * shopping_car[keys][0] #总花费,各个商品总价自加
print("您总共花费:%s"%total_price)
print("-------------------------")
print("您的余额为:",salary)
print("------- -END------------")
break
else: #输入其他内容,则判定没有此选项!
print("没有此选项!")

Py修行路 python基础 (三)字典的更多相关文章

  1. Py修行路 python基础 (二十三)模块与包

    一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因 ...

  2. Py修行路 python基础 (十一)迭代器 与 生成器

    一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...

  3. Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式

    一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...

  4. Py修行路 python基础 (十三)匿名函数 与 内置函数

    一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...

  5. Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类

    一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...

  6. Py修行路 python基础 (十八) 反射 内置attr 包装

    一.isinstance 和 issubclass1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象.2.issubclass(sub, super)检查sub类是否是 ...

  7. Py修行路 python基础 (十九)面向对象进阶(下)

    item系列 __slots__方法 __next__ 和 __iter__实现迭代器  析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式.  例如:对象名['key'] ...

  8. Py修行路 python基础 (二十五)线程与进程

    操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...

  9. Py修行路 python基础(二)变量 字符 列表

    变量 容器 变量名 标记 数据的作用 字符编码 二进制位 = bit1个二进制位是计算机里的最小表示单元 1个字节是计算机里最小的存储单位 8bits = 1Byte =1字节1024Bytes = ...

随机推荐

  1. fiddler之使用教程(一)

    一. 什么是fiddler&它可以做什么 fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一.它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定 ...

  2. idea结合git使用三

    1.将本地代码提交到码云上面的步骤 2.先提交到本地Git的仓库,通过commit files 3.然后vcs----->git---->push,将本地仓库代码,推送到码云公司项目mas ...

  3. python递归 及 面向对象初识及编程思想

    递归 及 面向对象初识及编程思想   一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递 ...

  4. mongodb停止遇到shutdownServer failed: unauthorized: this command must run from localhost when running db without auth解决方法

    停止mongodb use admin db.shutdownServer(); mongos> db.shutdownServer(); assert failed : unexpected ...

  5. ycsb两个阶段说明

     ycsb有几个目录需要注意下: bin: - 目录下有个可执行的ycsb文件,是个python脚本,是用户操作的命令行接口.ycsb主逻辑是:解析命令行.设置java环境,加载java-libs,封 ...

  6. python:一个比较有趣的脚本

    宿舍火星wifi经常掉,然后要重启,于是用Python写了一个脚本,用来远程控制火星wifi的重启 思路: 01.使用socket通讯 02.在wifi主机(开wifi的电脑)上运行客户端,控制机运行 ...

  7. 【SQL查询】视图_view

    转自:http://database.e800.com.cn/articles/2009/719/1248015564465_1.html 视图是从一个或几个基本表(或视图)导出的表.它与基本表不同, ...

  8. Js中分号使用总结

    作者:尤雨溪链接:https://www.zhihu.com/question/20298345/answer/49551142来源:知乎著作权归作者所有,转载请联系作者获得授权. 没有应该不应该,只 ...

  9. SEH:结构化异常处理 学习

    SEH:结构化异常处理 结构化异常处理机制提供了一个操作系统,用于优化结构的方案,为客户提供更强大的程序执行环境.试想一下,你写程序不用考虑内存访问错误,那里是空指针错误,一直在按照程序的逻辑结构来写 ...

  10. 如何用 Java 实现 Web 应用中的定时任务

    定时任务,是指定一个未来的时间范围执行一定任务的功能.在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计 ...