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)数据类型转换

常用函数

描述

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

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)类的专有方法

__init__ : 构造函数,在生成对象时调用

__del__ : 析构函数,释放对象时使用

__repr__ : 打印,转换

__setitem__ : 按照索引赋值

__getitem__: 按照索引获取值

__len__: 获得长度

__cmp__: 比较运算

__call__: 函数调用

__add__: 加运算

__sub__: 减运算

__mul__: 乘运算

__div__: 除运算

__mod__: 求余运算

__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基础入门-知识点简记的更多相关文章

  1. 2. Python3 基础入门

    Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...

  2. javascript基础入门知识点整理

    学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: media JavaScript基础 HTML和CSS 京东 课前娱乐 众人皆笑我疯癫,我笑尔 ...

  3. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  4. Python基础入门知识点——if 语句简介

    前言 if 语句是最简单的选择结构.如果满足条件就执行设定好的操作,不满足条件就执行其他其他操作. 判断的定义 如果 条件满足,才能做某件事情, 如果 条件不满足,就做另外一件事情,或者什么也不做 判 ...

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

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

  6. Python基础入门知识点——深浅拷贝

    深浅拷贝 对象引用.浅拷贝.深拷贝(拓展.难点.重点) Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝 ...

  7. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  8. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  9. Python基础入门一文通 | Python2 与Python3及VSCode下载和安装、PyCharm激活与安装、Python在线IDE、Python视频教程

    目录 1. 关键词 2. 推荐阅读 2.1. 视频教程 3. 本文按 4. 安装 4.1. 视频教程 4.2. 资源下载 4.3. 安装教程 1. 关键词 Python2 与Python3及VSCod ...

随机推荐

  1. ubuntu 修复 could not open file '/etc/apt/sources.list'

    问题描述:could not open file '/etc/apt/sources.list' 问题分析:软件源被清空了,也就是 /etc/apt/sources.list 被删除了 解决问题:1. ...

  2. PostgreSql问题:ERROR: operator does not exist: timestamp without time zone > character varying

    问题描述: ERROR:  operator does not exist: timestamp without time zone > character varying 解决方法: //注意 ...

  3. [转] Freemarker的常用技巧总结

    1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. <= lte. > gt. >= gte < ...

  4. 2017-06-26(groupadd groupmod groupdel)

    groupadd groupadd  组名  (创建用户组) groupadd -g  组编号   组名 (创建组名 并且指定编号) groupmod groupmod  -n   新组名  旧组名 ...

  5. 通过Azure Powershell获取asm及arm虚拟机的配置信息

    1.asm虚拟机可以使用类似如下Azure Powershell命令获取虚拟机的基本信息,包括发行版本,虚拟机名称及size[备注:虚拟机需要是使用平台image创建的] PS C:\Users\he ...

  6. Linkin大话Java和internet概念

    整理电脑,无意中翻到不知道哪里来的文章,觉得里面写的很好,仔细看过一遍后,整理了下贴了出来,其中的好多概念我觉得讲的很透彻. 既然Java不过另一种类型的程序设计语言,为什么还有这么多的人认为它是计算 ...

  7. Java的IO系统

     Java IO系统     "对语言设计人员来说,创建好的输入/输出系统是一项特别困难的任务."     由于存在大量不同的设计方案,所以该任务的困难性是很容易证明的.其中最大的 ...

  8. CURL处理POST、GET请求

    Curl是一个库,它允许你通过各种协议和各种不同的服务器进行连接和通讯 a.php <?php function curlRequest($url,$data=''){ $ch=curl_ini ...

  9. viim命令行模式查找替换

    1.查找 /   向上查找 ? 向下查找 2.替换 1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sk ...

  10. C#将图片背景从透明变成白色

    var img = System.Drawing.Image.FromStream(ms); int width = img.Width; int height = img.Height; var x ...