一、数据运算

算术运算

比较运算

赋值运算

逻辑运算

成员运算

身份运算

位运算

其中左右移运算是逻辑左右移即缺失位补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的更多相关文章

  1. 三个月死磕Python是种什么样的体验?

    3个月的死磕Python后,参加「 楼+ Python实战 · 第4期 」的学员们感想如何?下面带来他们的真实评价. 作为实验楼的网红课程——「 楼+ Python实战 」已经走过了第四期,经过了三个 ...

  2. 死磕 java线程系列之线程模型

    问题 (1)线程类型有哪些? (2)线程模型有哪些? (3)各语言使用的是哪种线程模型? 简介 在Java中,我们平时所说的并发编程.多线程.共享资源等概念都是与线程相关的,这里所说的线程实际上应该叫 ...

  3. 死磕以太坊源码分析之EVM动态数据类型

    死磕以太坊源码分析之EVM动态数据类型 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. So ...

  4. 死磕以太坊源码分析之EVM如何调用ABI编码的外部方法

    死磕以太坊源码分析之EVM如何调用ABI编码的外部方法 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家 ...

  5. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  6. 【死磕Java并发】-----Java内存模型之happend-before

    在上篇博客([死磕Java并发]-–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题.那么我们正确使用同步.锁的情况下 ...

  7. 死磕 java集合之DelayQueue源码分析

    问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于 ...

  8. 死磕 java集合之PriorityBlockingQueue源码分析

    问题 (1)PriorityBlockingQueue的实现方式? (2)PriorityBlockingQueue是否需要扩容? (3)PriorityBlockingQueue是怎么控制并发安全的 ...

  9. 死磕 java集合之PriorityQueue源码分析

    问题 (1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介 优先级队列,是0个或多个元素的集合 ...

随机推荐

  1. 解决运行webpack --config webpack.dev.config.js 报错ReferenceError: _dirname is not defined

    控制台报错信息如下 将webpack.dev.config.js中的_dirname 改为 __dirname 注意这里是两个下划线谢谢!感觉好坑

  2. CSS 阴影应用

    1.背景阴影的使用 box-shadow:1px 1px 1px 1px #ccccccc inset; 说明:第一个参数为水平阴影的大小.第二个为垂直阴影的大小(值可以为负数).第三个参数是阴影模糊 ...

  3. Python实现用户注册到文件

    import getpass #引入getpass模块,主要用来输入密码关闭回显 f=open('d:/user','a+') #定义文件对象并以追加方式打开,不存在就创建 f.seek(0) #文件 ...

  4. [BZOJ2427]:[HAOI2010]软件安装(塔尖+DP)

    题目传送门 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用${W}_{i}$的磁盘空间,它的价值为${V}_{i}$.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件 ...

  5. 自动轮播切换tab

    一个项目中需要用到类似的功能,自己手写一个轮播切换,不足之处见谅.代码如下 <!DOCTYPE html> <html lang="en"> <hea ...

  6. 基于RANSAC的点云面分割算法

    该算法在RANSAC和空间检索树的基础上实现的. 算法思路: 1.点云抽希.法线估计 2.出局点索引存储声明 3.平面检测 for (size_t i = 0; i < cloudTemp-&g ...

  7. python2与3自由切换

    Ubuntu-.04Python2与Python3自由切换 阅读目录(Content) 一.配置ssh链接 二.安装Python3及pip3 三.将Python3设置为默认 python2切换pyth ...

  8. leetcode206 反转链表 两种做法(循环,递归)

    反转链表 leetcode206 方法1 循环 public ListNode reverseList(ListNode head) { if (head == null || head.next = ...

  9. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_05.mybatis环境搭建-前期准备

    视频中右侧没有勾选 直接finish 用下面的sql里面的一些表来实现今天的功能 只需要用到里面的user表. 这是之前已经建好的数据库 把表都删除掉,用sql语句去创建表和表内的记录,最终的结果: ...

  10. MAVEN打包时跳过Junit测试

    我们知道,通常情况下使用maven package命令打包时,会自动执行test包下的各个单元测试. 这是因为spring-boot-maven-plugin插件已经集成了maven-surefire ...