(10)python学习笔记一
学习参考博客:http://blog.csdn.net/a359680405/article/details/42486689 深表感谢
1、单行注释 # 多行注释 """""" ''''''
2、字符串可以直接相加、相乘。
3、Python中的变量不需要声明就可以使用。
4、Python是大小写敏感的,标识符的明明要求与C语言相同。标识符的第一个字母必须是字母或者下划线"_",其他位置的字母可以是字母、数字、下划线。
5、在Python中最基本的数据结构是序列,序列中的每个元素被分配了一个序号——即元素的位置,叫做索引。第一个索引是0,第二个是1,而倒数第一个元素可以标记为-1,倒数第二个为-2以此类推。序列的元素可以是之前讲的所有基础数据类型,也可以是另一个序列,还可以是对象。 序列最常用的有两类,元组(tuple)和列表[list]。两者的区别是,列表可以修改,而元组不行。序列可以相加也可以相乘。
分片:
分片用于截取某个范围内的元素,通过:
来指定起始区间(左闭右开区间,包含左侧索引值对应的元素,但不包含右测索引值对应的元素。有几种典型的使用方法,参考举例:
#注意不包括右边索引值对应的元素 >>> num = [1,2,3,4,5,6,7,8,9,10] >>> num[3] 4 >>> num[6] 7 >>> num[3:6] [4, 5, 6] #留意右边边界 >>> num[3:9] [4, 5, 6, 7, 8, 9] #右边越界,刚好是10对应的下一个索引值 >>> num[3:10] [4, 5, 6, 7, 8, 9, 10] #右边越界 >>> num[3:11] [4, 5, 6, 7, 8, 9, 10] #注意是不包含最后一个元素的 >>> num[-3:-1] [8, 9] >>> num[-4:-1] [7, 8, 9] >>> num[-10:-1] [1, 2, 3, 4, 5, 6, 7, 8, 9] #注意右边界 >>> num[-10:0] [] >>> num[-5:-1] [6, 7, 8, 9] #注意右边界 >>> num[-5:] [6, 7, 8, 9, 10] >>> num[-5:1] []>>> num[3:1] [] >>> num[3:-1] [4, 5, 6, 7, 8, 9] #取最右3个元素 >>> num[-3:] [8, 9, 10] #取最左3个元素 >>> num[:3] [1, 2, 3] #可以加入step length >>> num[1:10:3] [2, 5, 8] >>> num[0:10:3] [1, 4, 7, 10] #起始位置默认为最左和最右,但不包括最右的元素 >>> num[::2] [1, 3, 5, 7, 9] >>> num[0:9:1] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> num[0:10:1] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #如果step length为0,会报错,也就是说步长不可以为0 >>> num[1:5:0] Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: slice step cannot be zero #如果步长为负数,表示从右向左提取元素 #注意不包括6对应的元素 num[10:6:-1] [10, 9, 8] #倒序输出 >>> num[10::-1] [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] #从最左边开始 >>> num[:-3:1] [1, 2, 3, 4, 5, 6, 7] >>> num[:3:1] [1, 2, 3] #从最右边开始 >>> num[:3:-1] [10, 9, 8, 7, 6, 5]
词典:词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。与列表和元组不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。
6、Python的缩进
空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块
7、Python函数的定义和调用
函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
我们可在定义形参的时候直接给参数加一个默认值。值得注意的是带有默认值的形参要放在右边。
8、Python中的类(面向对象)
- 代码示例1:
- class A:
- def methodA(self):
- print("methodA")
- class B:
- def methodB(self):
- print("methodB")
- class C(A,B):
- def methodC(self):
- A.methodA(self)
- B.methodB(self)
- def methodCPlus(self):
- super().methodB()
- c=C()
- c.methodC()
- c.methodCPlus()
代码示例二:
- class A:
- def methodA(self):
- print("methodA")
- class B(A):
- def methodA(self):
- print("reWrite methodA")
- def methodB(self):
- print("methodB")
- test=B()
- test.methodA()
9、Python中的构造和析构
- class Test:
- def __init__(self):
- self.name="wuyongc"
- print(self.name)
- name="fdg"
- Test() #临时对象
- t=Test()
- t.__init__()
10、
11、Python文件的输入和输出
12、 异常捕捉
代码示例:简单计算器
- def add(a,b):
- return a+b
- def sub(a,b):
- return a-b
- def divided(a,b):
- return a*b
- def chufa(a,b):
- return a/b
- while(1):
- try :
- w=input("请输入a:")
- y=input("请输入b:")
- d=input("请输入操作 "
- "1:+ "
- "2:- "
- "3:* "
- "4:/ :")
- # print(w,y,d)
- # print(type(w),type(y),type(d))
- a = int(w)
- b = int(y)
- c= int(d)
- # print(type(a),type(b),type(c))
- if c==1:
- d=add(a,b)
- elif c==2:
- d=sub(a,b)
- elif c==3:
- d=divided(a,b)
- elif c==4:
- d=chufa(a,b)
- print(d)
- except ZeroDivisionError:
- print("不能为0!")
- except:
- print("输入有误!")
3.python中is和 == 的区别在Python中,is检查两个对象是否是同一个对象,而==检查他们是否相等.
- p = [1]
- q = [1]
- p is q # False 因为他们不是同一个对象
- p == q # True 因为他们的值相等
所以如果你要比较两个值是否相同就用==,如果比较是否是同一个对象就用is.
其实python中的is比较的对象很像C语言中的指针,只有地址相同的指针才是同一个指针.
13、Python中的标准库
http://blog.csdn.net/a359680405/article/details/42421307
http://blog.csdn.net/a359680405/article/details/42421597
14、Python多进程和多线程
http://blog.csdn.net/a359680405/article/details/51205212
Python通过两个标准库_thread(python2是thread)和threading提供对线程的支持。_thread提供了低级别的、原始的线程以及一个简单的锁。
_thread
- import _thread
- import time
- # 一个用于在线程中执行的函数
- def foo(arg):
- for i in range(100):
- print(arg,i)
- time.sleep(1)
- print(arg)
- # 结束当前线程
- # 这个方法与_thread.exit_thread()等价
- _thread.exit() # 当func返回时,线程同样会结束
- # 启动一个线程,线程立即开始运行
- # 这个方法与_thread.start_new_thread()等价
- # 第一个参数是方法,第二个参数是方法的参数
- _thread.start_new(foo,("线程1",)) # 方法没有参数时需要传入空tuple
- # 创建一个锁(LockType,不能直接实例化)
- # 这个方法与_thread.allocate_lock()等价
- lock = _thread.allocate()
- # 判断锁是锁定状态还是释放状态
- print (lock.locked()) #输出为False
- # 锁通常用于控制对共享资源的访问
- count = 0
- # 获得锁,成功获得锁定后返回True
- # 可选的timeout参数不填时将一直阻塞直到获得锁定
- # 否则超时后将返回False
- if lock.acquire():
- print (lock.locked()) #输出为True
- # 释放锁
- lock.release()
- # _thread模块提供的线程都将在主线程结束后同时结束,
- time.sleep(4)
threading
(10)python学习笔记一的更多相关文章
- 10 python学习笔记-操作数据库(十)
在功能.接口测试中,常常需要通过数据库的操作,来准备数据.检测环境及核对功能.接口的数据库操作是否正确. 在自动化测试中,就需要我们用代码连接数据库自动完成数据准备. 环境检查及数据库断言的功能.数据 ...
- 【python学习笔记】10.充电时刻
[python学习笔记]10.充电时刻 任何python都可以作为模块倒入 *.pyc:平台无关的经过编译的的python文件, 模块在第一次导入到程序中时被执行,包括定义类,函数,变量,执行语句 可 ...
- Deep learning with Python 学习笔记(10)
生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- Python学习笔记(十三)
Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记(十)
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...
- Python学习笔记(九)
Python学习笔记(九): 装饰器(函数) 内置函数 1. 装饰器 1. 作用域 2. 高阶函数 3. 闭包 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就 ...
- Python学习笔记(八)
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...
随机推荐
- eclipse maven 项目突然所有的JS方法都失效了
原因:JS 或者 jQuery 有严重的语法错误
- [转帖]怎样选择(FC-SAN)光纤通道(存储)交换机
怎样选择(FC-SAN)光纤通道(存储)交换机 https://blog.csdn.net/sinat_30171789/article/details/50510936 交换机的种类非常多... ...
- [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- 取石子游戏 HDU 1527 博弈论 威佐夫博弈
取石子游戏 HDU 1527 博弈论 威佐夫博弈 题意 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两 ...
- chrome浏览器截长图的方法
1.首先打开一个你想要截图的长页面 2.然后按下F12 3.按Ctrl+Shift+P打开console菜单 4.在有个红对勾的位置输入Capture full size screenshot,找到C ...
- python 元组及操作
# 元组是'不可变'的 list 使用小括号 创建后不允许修改 # 创建# t = ('a','b','c',1,2,3)# print(t)# print(type(t))# # 3# print( ...
- 什么是lambda函数?有什么好处?
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数 好处:1.lambda 函数比较轻便,即用即删除,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都 ...
- 权限控制(vue)
权限控制(vue) 经常会遇到,角色权限控制问题,若是页面控制,倒好说,可如果是当前页面部分可见不可见,这就有些麻烦,如果加上条件就更加苛刻.之前只是简单的v-if进行控制,如今想试试指令(网上一直有 ...
- HeidiSQL
相关链接 https://www.heidisql.com/ - 官网 https://github.com/HeidiSQL/HeidiSQL - 源码 参考 ...
- Ajax&Json笔记
## 今日内容 1. AJAX: 2. JSON # AJAX: 1. 概念: ASynchronous JavaScript And XML 异步的JavaScript ...