Python中自己不熟悉的知识点记录
重点笔记:
Python 它是动态语言
动态语言的定义:动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在 运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的 ECMAScript ( JavaScript )便是一个动态语言,除此之外如 PHP 、 Ruby 、Python 等也都属于动态语言,而 C 、 C++ 等语言则不属于动态语言。
Python中变量可以不指定类型,会自动根据赋值语句来决定类型
同时,使用前必须赋值,在赋值的同时变量也就创建了
Python 标识符
在 Python 里,标识符由字母、数字、下划线组成。
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
Python 中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。
以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
python中主要存在四种命名方式:
1、object #公用方法
2、_object #半保护
#被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,
在模块或类外不可以使用,不能用’from module import *’导入。
#__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父
类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是
_classname__methodname。
3、_ _ object #全私有,全保护
#私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访
问到这个数据,不能用’from module import *’导入。
4、_ _ object_ _ #内建方法,用户不要这样定义
python中的list、tuple、dict、set
1、list
(1)构造list,使用[ ]把list的所有元素都括起来就是一个列表,用变量L表示。其中的元素不要求是同一种数据类型。
(2)列表中元素是有序的。可以通过索引来访问。
(3)访问list的元素,L[0]:表示列表中的第一个元素,L[-1]:表示列表中的最后一个元素。
L[起始索引:终止索引]:表示访问列表中的多个元素,包含头,不包含尾。
(4)列表是可以被修改的,包括添加元素,删除元素,替换元素。
1)添加元素:L.append(元素)、L.insert(元素插入到列表中的位置,元素)
2)删除元素:L.pop()<==>L.pop(-1),L.pop(要删除元素在列表中的位置)、L.remove(要删除元素),删除列表中第一次匹配到的元素
3)替换元素:L[要替换元素在列表中的位置]=新的元素值
(5)计算列表的长度:len(L)
(6)计算列表中某一个元素在列表中出现的次数:L.count(要统计的元素)
(7)列表拼接,用+,L1=[1,2],L2=[3,4],L1+L2=[1,2,3,4]
(8)列表中元素复制,用*,L= [2,3],L*3 = [2,3,2,3,2,3]
2、tuple
(1)构造tuple,使用()把tuple的所有元素都括起来就是一个元组,用变量T表示。python规定只有单个元素的元组应表示成(元素,),避
免歧义。其中的元素不要求是同一种数据类型。
(2)元组中元素是有序的。可以通过索引访问。
(3)访问tuple的元素,T[0]:表示元组中的第一个元素,T[-1]:表示元组中的最后一个元素。
(4)元组是不可以被修改的,因此它没有append()、insert()、pop()等方法。
注意:元组中可以包含列表,如T= (1,2,[4,5]),
T[2] = [ ],错误
T[2][0] =5,正确
3、dict
(1)构造dict,使用{ }把dict所有元素都括起来就是一个字典,用D表示。D中元素的形式是key:value的形式。其中的key或者value都不要求是
同一种数据类型。
(2)字典是 Python 语言中唯一的映射类型。
(3)字典中元素是无序的。不可以通过索引访问。
(4)访问dict的元素,使用D[key]来查找对应的value。如果key不存在,则会报错。为避免报错:
1)访问前先判断
if key in D:
print(D[key])
2)使用get()方法
print(D.get[key]),key不存在会输出None
(5)字典是可以被修改的。D[key] = 新的value,如果key不存在,则会想字典中添加这一键值对。
注意:
字典的一个最明显的特点是查找速度快,无论字典中有多少个数据,查找的速度都是一样的,因为它是按照key来查找的。但是它占用的内存大。典型的以空间换时间的思想。
4、set
(1)构建set,S = set(传入一个列表),或者S = {元素1,元素2,....}。其中的元素不要求是同一种数据类型。如:
S= set([1,2,3,3,4,5])
print(S) #{1,2,3,4,5}
注意:创建空集合只能使用S = set(),而不能使用S = { },这是用来创建空字典的。
(2)集合中元素是无序的。不可以通过索引来访问元素。
(3)集合是可以被修改的。
(4)添加元素和删除元素。
1)S.add(元素)
2)S.remove(元素)。删除之前要进行判断:if 元素 in S: S.remove(元素),否则会报错。
复制赋值深浅
=、 import copy a=3 b=copy.copy(a) 都是浅拷贝,a变,b也变;
a.copy(), copy.deepcopy(a) 都是深拷贝,a变,b不变。
1、b = a: 赋值引用,a 和 b 都指向同一个对象。
2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。
b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。
return会跳出函数(遇到它,函数就结束) return可以返回多个值,执行到return时,程序将停止函数内return后面的语句
break会跳出当前循环
continue 跳出当前循环并执行下一次
函数使用
append 列表尾增加元素 insert 列表某个位置插入元素 sort 列表排序默认升序
下列程序打印结果为( [1,2,3,4,5,5,7 ] )
nl = [1,2,5,3,5]
nl.append(4)
nl.insert(0,7)
nl.sort()
print nl
第一步 nl=[1,2,5,3,5,4]
第二步 nl=[7,1,2,5,3,5,4]
第三步 nl=[1,2,3,4,5,5,7]
指定对文件打开方式即文件内容操作方式
b 二进制模式
r 只读,指针将会放在文件的开头
rb 二进制只读,指针将会放在文件的开头
r+ 读写,指针将会放在文件的开头
rb+ 二进制读写,指针将会放在文件的开头
w 写入, 如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
wb 二进制写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等
w+ 读写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 二进制读写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等
a 追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
ab 二进制追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
a+ 读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 二进制读写,如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
Python 生成随机数、随机字符串
#!/usr/bin/python
# -*- coding: UTF-8 -*- import random
import string # 随机整数:
print random.randint(,) # 随机选取0到100间的偶数:
print random.randrange(, , ) # 随机浮点数:
print random.random()
print random.uniform(, ) # 随机字符:
print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()') # 多个字符中生成指定数量的随机字符:
print random.sample('zyxwvutsrqponmlkjihgfedcba',) # 从a-zA-Z0-9生成指定数量的随机字符:
ran_str = ''.join(random.sample(string.ascii_letters + string.digits, ))
print ran_str # 多个字符中选取指定数量的字符组成新字符串:
print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], )) # 随机选取字符串:
print random.choice(['剪刀', '石头', '布']) # 打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print random.shuffle(items)
Python中自己不熟悉的知识点记录的更多相关文章
- 归纳整理Python中的控制流语句的知识点
归纳整理Python中的控制流语句的知识点 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句.例如,清单 1 展示了几个简单的语句.当把它们键 ...
- python中类似c++静态方法的一个记录
个人学习c++出身,在后面的工作中接触到python,见到一些classmethod的字眼有点疑惑,所以进行一些记录. 都知道的是,c/c++中有着静态成员,静态方法的存在,比如: class A: ...
- python中使用正则表达式处理文本(仅记录常用方法和参数)
标准库模块 python中通过re模块使用正则表达式 import re 常用方法 生成正则表达式对象 compile(pattern[,flags]) pattern:正则表达式字符串 flags: ...
- python中利用logging包进行日志记录时的logging.level设置选择
之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...
- angular4开发过程中遇到的问题和知识点记录
1. angular2中的属性有什么区别,为什么会报错呢? 元素上有两种属性:property和attribute,attribute是通过getAttribute()和setAttribute()方 ...
- python中的装包与拆包
python中的装包与拆包 *args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收 ...
- python中字符串的几种表达方式(用什么方式表示字符串)
说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 ...
- python中字符串的四种表达方式
今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 > ...
- 通过编写聊天程序来熟悉python中多线程及socket的用法
1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...
随机推荐
- Schema约束, dom4j解析
Schema是新的XML文档约束:Schema要比DTD强大很多,是DTD替代者;Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml .Schema功能更强大,数据类型更 ...
- Properties类的使用 序列化与反序列化
Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 特点: 1.Hashtable的子类,map集合中的方法都可 ...
- C#LeetCode刷题之#463-岛屿的周长(Island Perimeter)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3794 访问. 给定一个包含 0 和 1 的二维网格地图,其中 1 ...
- Spring Boot整合ElasticSearch和Mysql 附案例源码
导读 前二天,写了一篇ElasticSearch7.8.1从入门到精通的(点我直达),但是还没有整合到SpringBoot中,下面演示将ElasticSearch和mysql整合到Spring Boo ...
- Python基础入门知识点——Python中的异常
前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...
- hdfs学习(二)
一.HDFS文件限额配置 在多人共用HDFS的环境下,配置设置非常重要.特别是在Hadoop处理大量资料的环境,如果没有配额管理,很容易把所有的空间用完造成别人无法存取.Hdfs的配额设定是针对目录而 ...
- Elasticsearch第五篇:PlainElastic.Net 操作 Elasticsearch
再次强调,我安装的Elasticsearch 版本是 7.8.0 ,C# 操作 Elasticsearch 的驱动有 NEST.Elasticsearch.net .PlainElastic.Net ...
- 如何解决spring boot 项目导入依赖后代码报错问题
如何解决spring boot 项目导入依赖后代码报错问题 2020-08-15 14:17:18 代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片)
- python 常用函数集合
1.常用函数 round() : 四舍五入 参数1:要处理的小数 参数2:可选,如果不加,就是不要小数,如果加,就是保留几位小数 abs() :绝对值 ...
- 封装Vue Element的table表格组件
上周分享了几篇关于React组件封装方面的博文,这周就来分享几篇关于Vue组件封装方面的博文,也好让大家能更好地了解React和Vue在组件封装方面的区别. 在封装Vue组件时,我依旧会交叉使用函数式 ...