python3基础入门-知识点简记
1、基础语法
编码、标识符、保留字、注释、行与缩进...
2、变量类型
(1)Python3有6个标准的数据类型:
- Numbers(数字)
数字数据类型用于存储数值
不可改变的数据类型
可细分为 int、float、bool、complex(复数),没有python2中的long
- String(字符串)
字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符
变量[头下标:尾下标]
反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
字符串可以用+运算符连接在一起,用*运算符重复。
Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
Python中的字符串不能改变。
- List(列表)
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号([])之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式:变量[头下标:尾下标],索引值以 0 为开始值,-1 为从末尾的开始位置。
- Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
元组写在小括号(())里,元素之间用逗号隔开。
元组中的元素类型也可以不相同
- Sets(集合)
集合(set)是一个无序不重复元素的序列
基本功能是进行成员关系测试和删除重复元素
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:parame = {value01,value02,...} 或者 set(value)
- Dictionary(字典)
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合
键(key)必须使用不可变类型
在同一个字典中,键(key)必须是唯一
(2)数据类型转换
常用函数 |
描述 |
将x转换为一个整数 |
|
将x转换到一个浮点数 |
|
创建一个复数 |
|
将对象 x 转换为字符串 |
|
将对象 x 转换为表达式字符串 |
|
用来计算在字符串中的有效Python表达式,并返回一个对象 |
|
将序列 s 转换为一个元组 |
|
将序列 s 转换为一个列表 |
|
转换为可变集合 |
|
创建一个字典。d 必须是一个序列 (key,value)元组。 |
|
转换为不可变集合 |
|
将一个整数转换为一个字符 |
|
将一个字符转换为它的整数值 |
|
将一个整数转换为一个十六进制字符串 |
|
将一个整数转换为一个八进制字符串 |
3、注释
l 单行注释以 # 开头
l 多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
4、运算符
(1)算术运算符: +、-、*、/、%、**(幂 - 返回x的y次幂,如a**b 为10的21次方)、//(取整除 - 返回商的整数部分);
(2)比较运算符:==、!=、>、<、>=、<=
(3)赋值运算符:=、+=、-=、*=、/=、%=、**=(幂赋值运算符)、//=
(4)位运算符:&、|、^、~、<<、>>
(5)逻辑运算符:and、or、not
(6)成员运算符:in(如果在指定的序列中找到值返回 True,否则返回 False),not in(与in相反)
(7)身份运算符:is(is 是判断两个标识符是不是引用自一个对象)、is not(is not 是判断两个标识符是不是引用自不同对象)
(8)运算符优先级(从高到低):
运算符 |
描述 |
** |
指数 (最高优先级) |
~ + - |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ - |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 'AND' |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
5、条件控制
if 语句:
if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3
6、循环语句
(1)while
while 判断条件: 语句 else: statement_block
注:while … else 在条件语句为 false 时执行 else 的语句块。
(2)for
for <variable> in <sequence>: <statements> else: <statements>
(3)break、continue与pass
break语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
pass 不做任何事情,一般用做占位语句。
7、函数
(1)函数定义:
def 函数名(参数列表): 函数体
(2)参数传递:
实际传递的是可变类型(list,dict )和不可变类型(strings, tuples, numbers和Sets )。
(3)参数类型:
1) VAR_POSITIONAL
参数类型为VAR_POSITIONAL时,即*args参数(接收的是一个tuple),只能通过位置传值,如:
def func_a(*args): print(args) # 通过位置传值 func_a('alex', 'timeflow')
2)VAR_KEYWORD
参数类型为VAR_KEYWORD,即 **kwargs参数(接收的是一个dict),只能通过关键字传值,如:
def func_b(**kwargs): print(kwargs) # 通过关键字传值 func_b(a=1, b=2)
3)POSITIONAL_OR_KEYWORD
此参数前面没有VAR_POSITIONAL类型参数,可以通过位置或关键字传值,如:
def func_c(args): print(args) # 通过位置传值 func_c(1) # 通过关键字传值 func_c(args=1)
4)KEYWORD_ONLY
此参数前面存在VAR_POSITIONAL类型的参数,只能通过关键字传值,如:
def func_d(*args, age, sex): print(args, age, sex) # 只能通过关键字传值 func_d('alex', age=24, sex='man')
5)POSITIONAL_ONLY
只能通过位置传值的参数。Python并没有明确的语法去定义一个只能通过位置传值的函数参数,但是在很多内置和扩展模块的函数会接受这种类型的参数。
(4)匿名函数
可使用 lambda 来创建匿名函数。
lambda 函数的语法:
lambda [arg1 [,arg2,.....argn]]:expression
示例:
#lambda sum = lambda arg1, arg2: arg1 + arg2; # 调用sum函数 print ("相加后的值为 : ", sum( 10, 20 ))
(5)变量
1)作用域
u L (Local) 局部作用域
u E (Enclosing) 闭包函数外的函数中
u G (Global) 全局作用域
u B (Built-in) 内建作用域
以L –> E –> G –>B 的规则查找。
2)global 和 nonlocal关键字
当内部作用域想修改外部作用域的变量时,就可用到global和nonlocal关键字:
l 修改全局变量,global
l 修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量,使用 nonlocal 关键字
8、文件读写
常用的读写模式:
模式 |
r |
r+ |
w |
w+ |
a |
a+ |
读 |
+ |
+ |
+ |
+ |
||
写 |
+ |
+ |
+ |
+ |
+ |
|
创建 |
+ |
+ |
+ |
+ |
||
覆盖 |
+ |
+ |
||||
指针在开始 |
+ |
+ |
+ |
+ |
||
指针在结尾 |
+ |
+ |
9、面向对象
(1)类定义
class ClassName: <statement-1> . . <statement-N>
(2)继承
class DerivedClassName(Base1, Base2, Base3): <statement-1> . . <statement-N>
(3)类属性和方法
1)类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
2)类的方法
在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定是用 self。
3)类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods。
(4)类的专有方法
u __init__ : 构造函数,在生成对象时调用
u __del__ : 析构函数,释放对象时使用
u __repr__ : 打印,转换
u __setitem__ : 按照索引赋值
u __getitem__: 按照索引获取值
u __len__: 获得长度
u __cmp__: 比较运算
u __call__: 函数调用
u __add__: 加运算
u __sub__: 减运算
u __mul__: 乘运算
u __div__: 除运算
u __mod__: 求余运算
u __pow__: 乘方
可对运算符进行重载。
10、标准库
库 |
说明 |
操作系统接口 |
os模块提供了不少与操作系统相关联的函数。 |
文件通配符 |
glob模块提供了一个函数用于从目录通配符搜索中生成文件列表: |
命令行参数 |
通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。 |
错误输出重定向和程序终止 |
sys 还有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息。 |
字符串正则匹配 |
re模块为高级字符串处理提供了正则表达式工具。 |
数学 |
math模块为浮点运算提供了对底层C函数库的访问;random提供了生成随机数的工具 |
网络 |
urllib.request、smtplib |
日期和时间 |
datetime |
数据压缩 |
zlib,gzip,bz2,zipfile,以及 tarfile |
... |
... |
11、多线程
Python3 中thread 模块已被废弃。目前可以使用 threading 模块代替。但为了兼容性,Python3 将 thread 重命名为 "_thread"。
(1)创建线程的两种方式:
1)调用 _thread 模块中的start_new_thread()函数来产生新线程
_thread.start_new_thread ( function, args[, kwargs] ):
参数说明:
u function - 线程函数。
u args - 传递给线程函数的参数,他必须是个tuple类型。
u kwargs - 可选参数。
2)threading
从 threading.Thread 继承创建一个新的子类,并实例化后调用 start() 方法启动新线程,即它调用了线程的 run() 方法;
(2)线程同步
使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire 和 release 方法之间。
主要参考:python教程
python3基础入门-知识点简记的更多相关文章
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
- javascript基础入门知识点整理
学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...
- MyBatis基础入门--知识点总结
对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...
- Python基础入门知识点——if 语句简介
前言 if 语句是最简单的选择结构.如果满足条件就执行设定好的操作,不满足条件就执行其他其他操作. 判断的定义 如果 条件满足,才能做某件事情, 如果 条件不满足,就做另外一件事情,或者什么也不做 判 ...
- Python基础入门知识点——Python中的异常
前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...
- Python基础入门知识点——深浅拷贝
深浅拷贝 对象引用.浅拷贝.深拷贝(拓展.难点.重点) Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝 ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Python3零基础入门学习视频+源码+课件+习题-小甲鱼
目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...
- Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程
目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...
随机推荐
- addTarget:self 的意思是说,这个方法在本类中
addTarget:self 的意思是说,这个方法在本类中也可以传入其他类的指针*/
- mysql索引使用注意事项
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- C# winform引用com组件,创建AXHOST组件失败解决方案
解决方法非常简单,请首先关闭你的开发工具然后删除所有*.vshost.exe 的文件. 重新打开visual studio开发工具,重新编译你的程序.
- jinja2.exceptions.TemplateNotFound: home/index.html
问题: 检查路由路径和模版渲染方式,其他文件路径都正确,可以返回字符串,就是无法返回定义的模版,为什么flask无法启找到这个模版? 那,问题原因在哪? 在flask中,目录有着严格的定义,模版目录必 ...
- linkin大话面向对象--方法详解
1,方法的参数传递机制:值传递. 首先弄懂2个概念:形参和实参. 形参(形式参数):相当于函数(Java中也把函数称之为方法)中的局部变量,在函数被调用时创建,并以传入的实参作为起始值,函数调用结束时 ...
- CentOS7搭建时间服务器-chrony(不坑)
标签(linux): chrony 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 之前centos6我们一直用的ntp时间服务器,虽然到CentOS7上也可以装 ...
- 跨域资源共享 CORS 详解(转)
add by zhj: 公司在一个web产品上,做前后端分离,前后端提供独立的服务,使用不同的域名,通过http进行交互,在 前端,会涉及到跨域访问的问题,前端使用了CORS,后端同时需要做相应修改, ...
- 自定义Func模块
自定义Func模块 (1)自定义模块步骤 (2)生成模块 [root@controller modules]# cd /usr/lib/python2.7/site-packages/func/min ...
- [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
Newtonsoft.Json 序列化时的一些其它用法 在进行序列化时我们一般会选择使用匿名类型 new { },或者添加一个新类(包含想输出的所有字段).但不可避免的会出现以下情形:如属性值隐藏(敏 ...
- maven项目引入sqljdbc4 找不到包的完美 解决方案。
今天碰到了这个问题,解决了,顺便做一下记录.首先来 重现 一下这个问题,maven install报错,说 找不到这个包,但是其实 我已经安装了. 我们 再来 看看 maven本地仓库里面有 什么,这 ...