一、数据运算

算术运算

比较运算

赋值运算

逻辑运算

成员运算

身份运算

位运算

其中左右移运算是逻辑左右移即缺失位补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. http三次握手,四次挥手

    本文经过借鉴书籍资料.他人博客总结出的知识点,欢迎提问 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生:给字节编上序号后 ...

  2. 听说你还不理解JavaScript闭包

    闭包(Closure) 闭包是一个函数和词法环境的组合,函数声明在这个词法环境中 词法作用域 看下面一个例子 function init() { var name = 'Mozilla'; // na ...

  3. 关于spring data jpa的@query的传入参数是对象怎么匹配参数

    /** * Specifies methods used to obtain and modify person related information * which is stored in th ...

  4. C语言的AES加密

    C语言的AES加密 稍微封装了几个函数 方便使用 #if 1 #include <stdio.h> #include <stdlib.h> #include <strin ...

  5. Dubbo负载均衡:最少活跃数(LeastActive)

    官方文档定义 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差. 使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大. 关于活跃数 最少活跃数负载均衡,最关键的点在于活跃数.活跃 ...

  6. 2、electron进程

    electron核心我们可以分成2个部分,主进程和渲染进程. 主进程: 主进程连接着操作系统和渲染进程,可以把她看做页面和计算机沟通的桥梁. Electron 运行 package.json 的 ma ...

  7. 写入mongodb

    https://blog.csdn.net/u013421629/article/details/78885079 https://www.jianshu.com/p/7d14c3ad810f  可视 ...

  8. jest 提示 Unexpected identifier 的解决方案

    概述 今天在玩 jest 的时候,发现用 import 就会报 Unexpected identifier 的错误.查了很久的资料,最后终于解决了. 参考资料:Jest tests can't pro ...

  9. 服务器控件调用JS函数

    是服务器端控件,不能在JS里直接调用,但可以在aspx.cs 里写方法可以调用JS函数,比如JS方法名称是check(), function check() {   alert(document.ge ...

  10. Python中的Django框架中prefetch_related()函数对数据库查询的优化

    实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...