重点笔记:

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. Python学习笔记之 Python设计思想&设计原则

    Python设计思想&设计原则 设计思想 1.封装 数据角度 多种数据合为一种数据 优势:代码可读性高            将数据与行为相关联 例如:电脑(内存,储存空间,...) 行为角度 ...

  2. Linux探测工具BCC(可观测性)

    BCC(可观测性) 目录 BCC(可观测性) 简介 动机 版本要求 安装 安装依赖 安装和编译LLVM 安装和编译BCC windows源码查看 BCC的基本使用 工具讲解 execsnoop ope ...

  3. 收集邮票 (概率dp)

    收集邮票 (概率dp) 题目描述 有 \(n\) 种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是 \(n\) 种邮票中的哪一种是等概率 ...

  4. SpringMVC 注解方式进行配置页面跳转

    @ 目录 修改IndexController 修改springmvc-servlet.xml 效果 修改IndexController 在类前面加上@Controller 表示该类是一个控制器 在方法 ...

  5. arp_ignore与arp_announce

    arp_ignore:定义接收到ARP请求时的响应级别0:只要本地设置的有相应的地址,就给予响应.(默认)1:仅回应目标IP地址是本地的入网地址的arp请求.2:仅回应目标IP地址是本地的入网地址,而 ...

  6. .NET 设计模式 思维导图

    关于.NET 设计模式 思维导图 背景说明 以前都在匆匆忙忙写代码,在无穷无尽的需求中间左冲右突,最近终于有一些闲暇的时间,来总结和思考编程中的一些核心思想,磨刀不误砍柴的功夫,期望通过总结和学习,能 ...

  7. 2020.5.25 第五篇 Scrum冲刺博客

    Team:银河超级无敌舰队 Project:招新通 项目冲刺集合贴:链接 目录 一.每日站立会议 1.1 会议照片 1.2 项目完成情况 二.项目燃尽图 三.签入记录 3.1 代码/文档签入记录 3. ...

  8. A Review on Generative Adversarial Networks: Algorithms, Theory, and Applications

    1 Introduction GANs由两个模型组成:生成器和鉴别器.生成器试图捕获真实示例的分布,以便生成新的数据样本.鉴别器通常是一个二值分类器,尽可能准确地将生成样本与真实样本区分开来.GANs ...

  9. Locust性能测试3--参数化、数据依赖

    场景链路压测的时候通常都是按照用户实际使用流程进行压测,同接口自动化一样,一定会涉及到数据依赖的问题 1.举例 Django后台通常需要csrf验证,而一般csrftoken需要通过get接口获得 f ...

  10. SpringBoot(19)---SpringBoot整合Apollo

    SpringBoot(19)---SpringBoot整合Apollo 有关Apollo之前已经写了两篇文章: 1.[Apollo](1)--- Apollo入门介绍篇 2.[Apollo](2)-- ...