1、 在python2中用xrange,在python3中直接使用range就好了

2、 常数

None在逻辑判断的时候指代False,其他方式不代表True或者False

3、 for循环只作用域容器

4、range函数,range只能遍历数字,如果遍历下标可以和len函数结合

for i in range(len(list/tuple/set))
>>> range(1,5) 代表从1到5(不包含5)
[1, 2, 3, 4] range(start,end,step)
负数step,也就是-z的时候 range[x,y,z]==>[x,x+z.....,最后的值等于y-z]
>>> print ([i for i in range(3,-1,-1)])
[3, 2, 1, 0]
>>> for i in range(5,-1,-1):print(i)
...
5
4
3
2
1
0
#正数step,也就是+z的时候,range(x,y,z)===>[x,x+z,...最后的值为y-z] python2中
>>> range(1,5,2) 代表从1到5(不包含5) 中间隔2个
[1, 3]
>>> range(5)
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> xrange(5)
xrange(5)
python3中
>>> print([i for i in range(1,5)]) 代表从1到5(不包含5)
[1, 2, 3, 4]
>>> print([i for i in range(5)]) 代表从0到5(不包含5)
[0, 1, 2, 3, 4]
>>> print([i for i in range(1,5,2)])
[1, 3]

5、python函数也是一个值,可以当成一个参数传递

>>> def g(x):
... return x+100
...
>>> def f(g,x):
... return g(x)+100
...
>>> print(f(g,100))
300
也可以写lambda表达式
>>> print(f(lambda x:x*100,100))
10100

6、lambda帮助排序

li=[[5,2],[1,2],[2,3]]
>>> li.sort(key=lambda x: x[0]) 传入参数作为排序的KEY
>>> print(li)
[[1, 2], [2, 3], [5, 2]]

7、切片

li[start:end:step]
start为正,end为正
step为正数的时候
>>> li
[1, 2, 3, 4, 5]
>>> li[0:4:2]
[1, 3]
>>> li[0:4:3]
[1, 4]
start为正,end为负数
>>> a[1:-2]
[2, 3, 4, 5]
>>> a[1:]
[2, 3, 4, 5, 6, 7] start为负数,从后边开始取值,这里注意,start所对应的值的下标,
一定要小于或者等于end对应的值的下标,否则会没有值。也就是说切片是从左往右的,
不可逆转,除非反转
[1, 2, 3, 4, 5, 6, 7]
>>> a[-6:2] start对应的值的下标等于end对应值的下标
[2]
>>> a[-6]
2
>>> a[-6:1] start对应的值的下标大于end对应值的下标
[]
>>> a[-6:5]
[2, 3, 4, 5]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[-1]
7 start为正,end为负 end为负是取最大值下标加上这个负数的值为下标的值
>>> a[:-1]
[1, 2, 3, 4, 5, 6]
>>> a[:]
[1, 2, 3, 4, 5, 6, 7]
>>> a[1:-1]
[2, 3, 4, 5, 6]
>>> a[1:-2]
[2, 3, 4, 5]
>>> a[1:-5]
[2] start为负,end为负数
>>> a[-1:]
[7]
>>> a[-1:-1]
[]
>>> a[-2:-1]
[6] step为负数 反转,中间的数字值加上负数个
>>> a[::-1] 反转
[7, 6, 5, 4, 3, 2, 1]
>>> a[::-2] 反转,中间的数字差2
[7, 5, 3, 1]
>>> a[::-3] 反转并且中间的数字差3
[7, 4, 1]
>>> a[5:3:-1] 反转,开始的位置为下标为5到下标为3
[6, 5]
>>> a[5:2:-2] 反转 开始的位置下标为5,到下标为2,中间差2
[6, 4]
>>> a[5:2:-1]
[6, 5, 4] 切片核心思想方法:只要注意是否是反转的,然后大脑中要有构思,注意好start和end对应的值的下标位置,
只要start对应的值的下标位置小于或者等于end下标对应值的位置都能获取到值,如果获取到的是空列表,
要么这个列表就是空列表,要么就是start对应的值的下标大于end对应的值的下标

鸭子类型:

class R1:
def run(self):
print(“R1:run”)
class R2:
def run(self):
print(“R2:run”)
上面这两个类都可以由run方法来执行
run(R1())
run(R2())
在python里面,不是特别注重继承,只关注接口,只要看着像鸭子,走起路来像鸭子,那么就是鸭子,这就是鸭子类型

文本读写:  主要用下面第三种方法

慎用readlines,会把全部文件加载到列表中
read 的时候也要注意
readline 只读取一行
如果遇到上G的文件的时候有两种方式
1、 用readline一行一行的读取
2、 read(n).。指定大小
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
3、下面是一种以xreadline的方式读取文件
with open("a.txt") as f:
for i in f:
dosomething(i) 多线程:
import threading def thread_func(x):
print("%d\n" %(x*100)) threads=[]
for i in range(5):
threads.append(threading.Thread(target=thread_func,args=(100,))) for thread in threads:
thread.start() for thread in threads:
thread.join()
创建多线程主要注意下面:
1、 指定线程执行函数
2、 args参数指定的是元祖,所以这里要加上逗号,否则会出错
3、执行上面的五个任务并不是由一个线程完成的,因为有全局解释器锁的缘故,所以同一时间只能有一个线程来执行,但是一个线程执行完毕之后,全局锁就会释放

错误异常处理

1、当程序中没有处理这个异常的上下文,就用来抛出异常

2、处理异常防止资源泄漏

try:
r=10/0
except ZeroDivisionError as e:
print(type(e))
print(e)
finally:
#这里用来防止资源泄漏 (防止服务器端的异常泄漏)
print(“Always come here”)

python补充知识点的更多相关文章

  1. 记录我的 python 学习历程-Day11 两个被忽视的坑、补充知识点、函数名的应用、新版格式化输出、迭代器

    补充知识点 函数形参中默认参数的陷阱 针对不可变数据类型,它是没有陷阱的 def func(name, sex='男'): print(name) print(sex) func('Dylan') # ...

  2. python 类知识点总结

    python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象 ...

  3. python Django知识点总结

    python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创 ...

  4. 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?

    参考: https://www.jb51.net/article/23966.htm https://yq.aliyun.com/articles/260389 mysql中的 日期格式是: HHHH ...

  5. Django补充知识点——用户管理

    内容概要 1.Form表单2.Ajax3.布局,Django母板4.序列化5.Ajax相关6.分页7.XSS攻击8.CSRF9.CBV.FBV 10.类中用装饰器的两种方法 11.上传文件 12.数据 ...

  6. python爬虫知识点详解

    python爬虫知识点总结(一)库的安装 python爬虫知识点总结(二)爬虫的基本原理 python爬虫知识点总结(三)urllib库详解 python爬虫知识点总结(四)Requests库的基本使 ...

  7. [转载] Python数据类型知识点全解

    [转载] Python数据类型知识点全解 1.字符串 字符串常用功能 name = 'derek' print(name.capitalize()) #首字母大写 Derek print(name.c ...

  8. 最全Python基础知识点梳理

    本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾.python的详细语法介绍可以查看官方编程手册,也有一些在线网站可以学习 python语言 ...

  9. python中set(集合),深浅拷贝以及一些补充知识点

    1.set集合 特点:无序,不重复,元素必须可哈希(不可变) 作用:去重复 本身是可变的数据类型.有增删改查操作.{集合的增删改查操作应用较少,这里不做详细介绍了(这里的增有一个方法update注意这 ...

随机推荐

  1. 编译包中的 Servlet

    编译包中的类与编译其他的类没有什么大的不同.最简单的方法是让您的 java 文件保留完全限定路径,如上面提到的类,将被保留在 com.myorg 中.您还需要在 CLASSPATH 中添加该目录. 假 ...

  2. 更新mac系统和更新到Xcode7.3版本出现的: cannot create __weak reference in file using manual reference counting

    之前的编程没有遇到过,应该是苹果官方那边又做了新规吧. 不过不要紧,只要根据这个就能解决报错问题.  Set Build Settings -> Apple LLVM 7.1 - Languag ...

  3. C++11写算法之插入排序

      插入排序,是指将从1 –> size-1的数一个个插入到前面已经排序好的数组中. 时间复杂度:O(n^2) , O(nlgn) (lgn指使用二分查找插入点位置) 空间复杂度:O(1) // ...

  4. Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器解析)

    make解析 服务容器对对象的自动解析是服务容器的核心功能,make 函数.build 函数是实例化对象重要的核心,先大致看一下代码: public function make($abstract) ...

  5. 持续集成 解决 Jenkins 中无法展示 HTML 样式的问题

    对于测试报告来说,除了内容的简洁精炼,样式的美观也很重要.常用的做法是,采用HTML格式的文档,并搭配CSS和JS,实现自定义的样式和动画效果(例如展开.折叠等). 在Jenkins中要展示HTML文 ...

  6. SSL证书的生成

    openssl工具下载路径:链接:https://pan.baidu.com/s/1o0-s8OplHZt55Cio2HmjVA 密码:u759 1.使用openssl工具生成一个RSA秘钥      ...

  7. Cocos2d-x Lua中实例:帧动画使用

    下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. 帧动画实例 下面我们再看看具体的程序代码,首 ...

  8. form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

    form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决 一.问题: 页面输入框中的中文内容,在后台乱码,导致搜索功能失效:(详细可以见后面的重现) 二.原因: 浏览器对于数据的默认编码格式为 ...

  9. bfs_迷宫求最短路径

    宽度优先搜索按照距离开始状态由近及远的顺序进行搜索,可以很容易用来求解最短路径或者最少操作等问题. 将已经访问过的状态用标记管理起来,便可以很好地做到由近及远的搜索. import java.util ...

  10. Django的admin定制

    1,models编写 #encoding=utf-8 from django.db import models # Create your models here. class BookInfo(mo ...