python圣地

运算符

1、算数运算:

2、比较运算:

 

3、赋值运算:

4、逻辑运算:

5、成员运算:

6、身份运算:

7、位运算:

8、运算符优先级:

 1 a = 60            # 60 = 0011 1100
 2 b = 13            # 13 = 0000 1101
 3 c = 0
 4
 5 c = a & b;        # 12 = 0000 1100
 6 print "Line 1 - Value of c is ", c
 7
 8 c = a | b;        # 61 = 0011 1101
 9 print "Line 2 - Value of c is ", c
10
11 c = a ^ b;        # 49 = 0011 0001
12 print "Line 3 - Value of c is ", c
13
14 c = ~a;           # -61 = 1100 0011
15 print "Line 4 - Value of c is ", c
16
17 c = a << 2;       # 240 = 1111 0000
18 print "Line 5 - Value of c is ", c
19
20 c = a >> 2;       # 15 = 0000 1111
21 print "Line 6 - Value of c is ", c

更多运算符内容:猛戳 <<<

基本数据类型

 

1、数字

2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子。

int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

2、布尔值

  真或假

  1 或 0

3、字符串

"hello world"

万恶的字符串拼接:

  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

字符串格式化

1 name = ‘liulei‘
2 print(‘i am %s‘ % name )
3 print(‘i am ‘+ name)
4
5 # 二者均输出 i am liulei 

PS: 字符串是 %s;整数 %d;浮点数%f

在使用input输入时,程序默认输入的为字符串

字符串常用功能:

  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片

4、列表

基本操作:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

数据类型详情请猛戳:这里 <<<

 1 x = [1,2,3]
 2 x = list(‘小一同学‘)
 3 range(5)表示从0—4五个数,多用于whlie循环中
 4 list(range(5)) = [0,1,2,3,4]
 5 输出指定数据
 6 x = [0:2]表示输出0、1所表示的数/[:2]/[0:2]/[:]/[::k]k表示隔多少数输出一个
 7 len(x) # 表示输出列表长度
 8 min(x) # 最小值
 9 min(x)
10 sum(x)
11 x.index(‘小一同学‘) # 检索某个元素第一次出现时的位置下标
12 # 检索某个元素出现的次数
13 x.count(1)

 5、元组

基本操作:

  • 索引
  • 切片
  • 循环
  • 长度
  • 包含

6、字典(无序)

常用操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

PS:循环,range,continue 和 break

附加

1、for循环

用户按照顺序循环可迭代对象中的内容,

PS:break、continue

1 list = [11,22,33,44]
2 for item in list:
3     print item

2、enumrate

为可迭代的对象添加序号

1 list = [11,22,33]
2 for k,v in enumerate(list, 1):
3     print(k,v)
4 inp = input(‘请输入需要查找数字的序号:‘)#input输出的为字符串格式
5 inp_num = int(inp)# 将字符串型转换为整型
6 print(list[inp_num-1])
7 #更改k的值并没有更改enumerate对应的值,5、6行为修改对应的值

3、range 指定范围,生成指定的数字

1 print range(1, 10)
2 # 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
3
4 print range(1, 10, 2)
5 # 结果:[1, 3, 5, 7, 9]
6
7 print range(30, 0, -2)
8 # 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]  
练习

一、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}

 1 list = [11,22,33,44,55,66,77,88,99,111,222,333]
 2 temp1 = []
 3 temp2 = []
 4 for i in list:
 5     if i < 66:
 6         temp1.append(i)
 7     else:
 8         temp2.append(i)
 9 key1 = {‘key1‘:temp1}
10 key2 = {‘key2‘:temp2}
11 print(key1,key2)

二、查找

查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

li = ["alec", " aric", "Alex", "Tony", "rain"]

tu = ("alec", " aric", "Alex", "Tony", "rain")

dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘,  "k3": "Alex", "k4": "Tony"}

 1 list = ["alec", " aric", "Alex", "Tony", "rain"]
 2 tuple = ("alec", " aric", "Alex", "Tony", "rain")
 3 dict = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"}
 4 item1 = []
 5 item2 = []
 6 item3 = []
 7 for i in list:
 8     j = i.strip()
 9     if(j.startswith(‘a‘) or j.startswith(‘A‘)) and j.endswith(‘c‘)
10         item1.append(i)
11 for i in tuple:
12     m = i.strip()#移除空白
13     if(m.startswith(‘a‘) or m.startswith(‘A‘)) and m.endswith(‘c‘)
14         item2.append(i)
15 for i in dict:
16     n =dict[i].strip()
17     if(n.startswith(‘a‘) or n.startswith(‘A‘)) and n.endswith(‘c‘)
18         item3.append(dict[i])
19 #把适合的值通过append函数添加到item中去
20 key1 = {‘list‘:item1}
21 key2 = {‘tuple‘:item2}
22 key3 = {‘dict‘:item3}
23 print(key1,key2,key3)    

second

三、输出商品列表,用户输入序号,显示用户选中的商品

商品 li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘]

third

1 list = ["J31", "T99", ‘M50‘, ‘98K‘, ‘F22‘, ‘F35‘]
2 for i,j in enumerate(list,1)#从序号1开始
3     print(i,j)
4 while True:
5     temp = input(‘请输入需要的武器‘)
6     temp_num = int(temp)
7     prnt(‘list[temp_num-1]‘)

四、购物车

功能要求:

  • 要求用户输入总资产,例如:2000
  • 显示商品列表,让用户根据序号选择商品,加入购物车
  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
  • 附加:可充值、某商品移除购物车

 1 shopping_cart = []
 2 salary = int(input("请输入用户初始总资产: "))
 3 #salary = 2000
 4 goods = [
 5     {"name": "电脑", "price": 3000},
 6     {"name": "鼠标", "price": 103},
 7     {"name": "游艇", "price": 200000},
 8     {"name": "美女", "price": 998},
 9 ]
10 for i in enumerate(goods):
11     index = i[0]  # 序号
12     p_list = i[1]  # 商品清单
13     p_name_list = p_list.get(‘name‘)  # 商品名称列表
14     p_price_list = p_list.get(‘price‘)  # 商品价格列表
15     print(index, ":", p_name_list,‘->‘, p_price_list)
16
17 while True:
18     choice = input("请输入需要商品的序号:").strip()
19     if choice.isdigit():  # 如果选择为正整数
20         choice = int(choice)  # 输入为数字
21         if choice < len(goods) and choice >= 0:  # 选择小于列表长度大于0时
22             p_item = goods[choice]  # 加入购物车
23             p_name = p_item.get(‘name‘)
24             p_monery = p_item.get(‘price‘)
25             if p_monery <= salary:  # 如果商品价格小于等于余额
26                 shopping_cart.append(p_item)  # 加入购物车
27                 salary -= p_monery  # 结算
28                 print("购买的商品\033[32m:%s\033[0m已加入到购物车".center(40, ‘-‘) % p_name)
29                 for p_item in shopping_cart:
30                     print(p_name, p_monery)
31                     print("您的余额为\033[31m:%s\033[0m元" % salary)
32             else:
33                 print("您的余额不足,差%s元" % (abs(p_monery - salary)))
34         else:
35             print("没有此件商品!")
36     else:
37         print("参数错误")
38     if choice == "q" or choice == "quit":
39         cost = 0
40         print("您购买的商品清单如下:")
41         for p in shopping_cart:
42             print(p_name, p_monery)
43             cost += p_monery
44         print("\033[32m消费总金额:", cost, "元\033[0m")
45         print("\033[32m您的余额为:", salary, "元\033[0m")
46         break

shopping cart

时间: 2024-08-26 02:53:33

python圣地的相关文章

python数据类型详解

主要内容: 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 列表与元组 定义列表 1 list = ['a' , 'b', 'c', 'd'] 通过下标访问列表中的元素,下标从0开始计数 1 list[0] # 'a' 2 list[1] # 'b' 3 list[-1] # 'd' 4 list[-2] # 'c' 基本操作: 切片:取多个元素 1 list = ["A","B","C","D",&

Python/MOOC /翻Wall和互联网编程的那些事by tsy

Python MOOC 翻Wall和互联网编程的那些事by tsy 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach删除相应部分. 3)本文档内容涉及主题在引言中提及.仅仅作为参考用途,抛砖引玉,不作为证据证明用途,请自行取舍,核实引用. 目录 0引言    1 1 Python的那些事    2 1.1Python的安装思路与简要介绍    2 1.1.1 Python安装思路 

Python学习1-Python和Pycharm的下载与安装

本文主要介绍Python的下载安装和Python编辑器Pycharm的下载与安装. 一.Python的下载与安装 1.下载 到Python官网上下载Python的安装文件,进入网站后显示如下图: 网速访问慢的话可直接在这里下载:python-2.7.11.amd64 在Downloads中有对应的支持的平台,这里我们是在Windows平台下运行,所以点击Windows,出现如下: 在这里显示了Python更新的所有版本,其中最上面两行分别是Python2.X和Python3.X对应的最后更新版本

Python——深入理解urllib、urllib2及requests(requests不建议使用?)

深入理解urllib.urllib2及requests            python Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议[1] .Python语法简洁而清晰,具有丰富和强大的类库. urllib and urllib2 区别 urllib和urllib2模块都做与请求URL相关的操作,但

python学习_day26_面向对象之封装

1.私有属性 (1)动态属性 在python中用双下划线开头的方式将属性隐藏起来.类中所有双下划线开头的名称,如__x都会自动变形成:_类名__x的形式.这种自动变形的特点是: a.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果.b.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的.c.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x,而父类中变形成了:_父类名__x,即双下滑线开头的属性在继承给子类时,子类是无法覆

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

python实现网页登录时的rsa加密流程

对某些网站的登录包进行抓包时发现,客户端对用户名进行了加密,然后传给服务器进行校验. 使用chrome调试功能断点调试,发现网站用javascript对用户名做了rsa加密. 为了实现网站的自动登录,需要模拟这个加密过程. 网上搜了下关于rsa加密的最简明的解释: rsa加密是非对称加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥.公钥是可发布的供任何人使用,私钥则为自己

Python中编码的详细讲解

看这篇文章前,你应该已经知道了为什么有编码,以及编码的种类情况 ASCII 占1个字节,只支持英文 GB2312 占2个字节,支持6700+汉字 GBK GB2312的升级版,支持21000+汉字 Shift-JIS 日本字符 ks_c_5601-1987 韩国编码 TIS-620 泰国编码 由于每个国家都有自己的字符,所以其对应关系也涵盖了自己国家的字符,但是以上编码都存在局限性,即:仅涵盖本国字符,无其他国家字符的对应关系.应运而生出现了万国码,他涵盖了全球所有的文字和二进制的对应关系, U

Python练习(一)

Python练习(一): 给一个不超过5位的正整数,判断其有几位,依次打印出个位.十位.百位.千位.万位的数字: num = int(input('please enter a number: '))   lst = [] for i in str(num):      lst.append(i) lenlst = len(lst) if num >= 1000:      if num >= 10000:          print('too big')     else: