重点笔记:

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中的listtupledictset

1list

(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]

2tuple

(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,正确

3dict

(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来查找的。但是它占用的内存大。典型的以空间换时间的思想。

4set

(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 都指向同一个对象。

2b = 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中自己不熟悉的知识点记录的更多相关文章

  1. 归纳整理Python中的控制流语句的知识点

    归纳整理Python中的控制流语句的知识点 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句.例如,清单 1 展示了几个简单的语句.当把它们键 ...

  2. python中类似c++静态方法的一个记录

    个人学习c++出身,在后面的工作中接触到python,见到一些classmethod的字眼有点疑惑,所以进行一些记录. 都知道的是,c/c++中有着静态成员,静态方法的存在,比如: class A: ...

  3. python中使用正则表达式处理文本(仅记录常用方法和参数)

    标准库模块 python中通过re模块使用正则表达式 import re 常用方法 生成正则表达式对象 compile(pattern[,flags]) pattern:正则表达式字符串 flags: ...

  4. python中利用logging包进行日志记录时的logging.level设置选择

    之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...

  5. angular4开发过程中遇到的问题和知识点记录

    1. angular2中的属性有什么区别,为什么会报错呢? 元素上有两种属性:property和attribute,attribute是通过getAttribute()和setAttribute()方 ...

  6. python中的装包与拆包

    python中的装包与拆包 *args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收 ...

  7. python中字符串的几种表达方式(用什么方式表示字符串)

    说明: 今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 ...

  8. python中字符串的四种表达方式

    今天在学习python的基础的内容,学习在python中如何操作字符串,在此记录下. 主要是python中字符串的几种表达,表示方式. python的几种表达方式 1 使用单引号扩起来字符串 > ...

  9. 通过编写聊天程序来熟悉python中多线程及socket的用法

    1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...

随机推荐

  1. Schema约束, dom4j解析

    Schema是新的XML文档约束:Schema要比DTD强大很多,是DTD替代者;Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml .Schema功能更强大,数据类型更 ...

  2. Properties类的使用 序列化与反序列化

    Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 特点: 1.Hashtable的子类,map集合中的方法都可 ...

  3. C#LeetCode刷题之#463-岛屿的周长​​​​​​​(Island Perimeter)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3794 访问. 给定一个包含 0 和 1 的二维网格地图,其中 1 ...

  4. Spring Boot整合ElasticSearch和Mysql 附案例源码

    导读 前二天,写了一篇ElasticSearch7.8.1从入门到精通的(点我直达),但是还没有整合到SpringBoot中,下面演示将ElasticSearch和mysql整合到Spring Boo ...

  5. Python基础入门知识点——Python中的异常

    前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...

  6. hdfs学习(二)

    一.HDFS文件限额配置 在多人共用HDFS的环境下,配置设置非常重要.特别是在Hadoop处理大量资料的环境,如果没有配额管理,很容易把所有的空间用完造成别人无法存取.Hdfs的配额设定是针对目录而 ...

  7. Elasticsearch第五篇:PlainElastic.Net 操作 Elasticsearch

    再次强调,我安装的Elasticsearch 版本是 7.8.0 ,C# 操作 Elasticsearch 的驱动有 NEST.Elasticsearch.net .PlainElastic.Net ...

  8. 如何解决spring boot 项目导入依赖后代码报错问题

    如何解决spring boot 项目导入依赖后代码报错问题 2020-08-15  14:17:18 代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片)

  9. python 常用函数集合

    1.常用函数     round() :  四舍五入         参数1:要处理的小数         参数2:可选,如果不加,就是不要小数,如果加,就是保留几位小数     abs() :绝对值 ...

  10. 封装Vue Element的table表格组件

    上周分享了几篇关于React组件封装方面的博文,这周就来分享几篇关于Vue组件封装方面的博文,也好让大家能更好地了解React和Vue在组件封装方面的区别. 在封装Vue组件时,我依旧会交叉使用函数式 ...