继续死磕python
一、数据运算
算术运算

比较运算

赋值运算

逻辑运算

成员运算

身份运算

位运算

其中左右移运算是逻辑左右移即缺失位补0,而算数右移缺失补符号位(注意逻辑运算都是补码运算即都取补码再运算,然后结果也是补码,按照补码的规则反向可以找到原码)
正数的原码、反码、补码都一样
负数的反码是符号位不变取反,补码是原码的反码+1
运算符优先级

二、 if...else
基本格式: if 判断语句:
操作
else:
操作
三、循环
for i in range: 循环range内的元素
while 判断:
练习一、
优化购物车
1. 用户退出时打印商品列表时,按以下格式
-------您购买的商品如下------
id 商品 数量 单价 总价
1 iPhone 2 5800 11400
2 coffee 1 30 30
。。。
总计价格: 11430元
--------end -------------
good =['phone','shoes','clothes','headset','apple','computer',]
price=[5000,200,150,2000,2,8000]
money = input("please your wages")
if money == 'out':
print("You didn't buy anthing and thank for your shopping")
exit()
else:
i=0
while i<len(good):
print(i,good[i],price[i])
i+=1
num = 0
sc=[]
money=int(money)
key = 0
buy_money=0
while True: if key == 1:
l=0
print('您购买的商品如下')
print('商品','数量','单价','总价')
while l < 6:
buy_numl = sc.count(good[l])
if buy_numl ==0:
l+=1
continue
else:
print(good[l],'',buy_numl,' ',price[l],' ',price[l]*buy_numl)
buy_money=buy_money+price[l]*buy_numl
l+=1
print("总计价格:",buy_money)
print("剩余金钱:",money)
exit()
# j=0
# while j < len(sc):
# print(sc[j])
# j += 1
# print('you have ',money,'left')
# exit()
else:
buy = input("please choose your goods") if buy=="out":
key = 1
continue
elif buy.isdigit():
buy = int(buy)
if buy<6 and buy >= 0:
if money>=price[buy]:
sc.insert(num,good[buy])
money=money-price[buy]
num =num + 1
print(money)
else:
print("you don't have enough money")
print(money)
continue
else:
print("no this goods number")
continue
else :
if buy in good:
if money < price[good.index(buy)]:
print("you don't enough money")
print(money)
continue
else:
money=money-price[good.index(buy)]
sc.insert(num, buy)
num =num+ 1
print(money)
else:
print("not this good")
continue
练习二、
打印省、市、县三级菜单
可随时返回上一级
可随时退出程序
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
while True:
for key in menu:
print(key)
chioce_city=input('请输入城')
if chioce_city in menu:
if menu[chioce_city]:
while True:
for key in menu[chioce_city]:
print(key)
chioce_region=input("请输入区")
if chioce_region in menu[chioce_city]:
if menu[chioce_city][chioce_region]:
while True:
for key in menu[chioce_city][chioce_region]:
print(key)
chioce_town=input('请输入镇')
if chioce_town in menu[chioce_city][chioce_region]:
if menu[chioce_city][chioce_region][chioce_town]:
while True:
for key in menu[chioce_city][chioce_region][chioce_town]:
print(key)
chioce_company=input("请输入公司")
if chioce_company in menu[chioce_city][chioce_region][chioce_town]:
print(chioce_company,"真牛逼")
elif chioce_company == 'b':
break
elif chioce_company == 'q':
exit()
else:
print('傻Ⅹ,输错了吧')
continue
else:
print("它太小了,不能进去了")
elif chioce_town == 'b':
break
elif chioce_town == 'q':
exit()
else:
print('傻Ⅹ,输错了吧')
continue
else:
print("它太小了,不能进去了")
elif chioce_region == 'b':
break
elif chioce_region == 'q':
exit()
else:
print('傻Ⅹ,输错了吧')
continue
else:
print("它太小了,不能进去了")
elif chioce_city=='b' or chioce_city=='q':
exit()
else:
print('傻Ⅹ,输错了吧')
continue
继续死磕python的更多相关文章
- 三个月死磕Python是种什么样的体验?
3个月的死磕Python后,参加「 楼+ Python实战 · 第4期 」的学员们感想如何?下面带来他们的真实评价. 作为实验楼的网红课程——「 楼+ Python实战 」已经走过了第四期,经过了三个 ...
- 死磕 java线程系列之线程模型
问题 (1)线程类型有哪些? (2)线程模型有哪些? (3)各语言使用的是哪种线程模型? 简介 在Java中,我们平时所说的并发编程.多线程.共享资源等概念都是与线程相关的,这里所说的线程实际上应该叫 ...
- 死磕以太坊源码分析之EVM动态数据类型
死磕以太坊源码分析之EVM动态数据类型 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. So ...
- 死磕以太坊源码分析之EVM如何调用ABI编码的外部方法
死磕以太坊源码分析之EVM如何调用ABI编码的外部方法 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家 ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- 【死磕Java并发】-----Java内存模型之happend-before
在上篇博客([死磕Java并发]-–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题.那么我们正确使用同步.锁的情况下 ...
- 死磕 java集合之DelayQueue源码分析
问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于 ...
- 死磕 java集合之PriorityBlockingQueue源码分析
问题 (1)PriorityBlockingQueue的实现方式? (2)PriorityBlockingQueue是否需要扩容? (3)PriorityBlockingQueue是怎么控制并发安全的 ...
- 死磕 java集合之PriorityQueue源码分析
问题 (1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介 优先级队列,是0个或多个元素的集合 ...
随机推荐
- Redis大key的发现与删除方法全解析
个推作为国内第三方推送市场的早期进入者,专注于为开发者提供高效稳定的推送服务,经过9年的积累和发展,服务了包括新浪.滴滴在内的数十万APP.由于我们推送业务对并发量.速度要求很高,为此,我们选择了高性 ...
- 当出现no changes added to commit时如何正确使用git提交命令
对于这个问题,最好的解决方法就是按如下步骤:1.到根目录下:git add . :("."是必须要的)2.git commit -m "some word"3 ...
- WOSA XFS 官方文档地址
WOSA XFS 官方文档地址: ftp://ftp.cencenelec.eu/CWA/CEN/WS-XFS/
- 总结 webpack 的插件
模块化第一步 初始化 package.json 文件 node.js 指令 npm init npm的官网:https://www.npmjs.com/ 搜索插件名,查看插件的用法 1. webpa ...
- MySQL技术内幕 InnoDB存储引擎 之 InnoDB体系架构
后台线程 1.Master Thread 2.IO Thread 3.Purge Thread 4.Page Cleaner Thread 内存 重做日志在以下三种情况下将重做日志缓存中的内容刷新到 ...
- ifram刷新父窗口中内嵌页面
如果C的iframe标签的id是"iframec",那么在B.aspx中你想刷新的代码处写 parent.document.getElementById('iframec').sr ...
- (转)深入理解Java:注解(Annotation)自定义注解入门
向作者致敬! 转自:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在 ...
- Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public constructor Create(...); ov ...
- Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...
- html5获取位置信息,h5获取位置信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...