- python3的基础语法整理:
- python3的编码格式默认utf-8,也是多数编码语言的通用编码格式,使用# -- coding: cp-1252 -- 可以修改对应的编码格式,在编码过程中不建议修改。
- python3的标识符由字母,数字,下划线组成起始必须是字母或者下划线不能以数字起始且标识符区分大小写。
-
python3的保留关键字和js/java很像 如下:
python3关键字
- python3的注释:单行注释使用# 多行注释:''' 和 """ 单行注释一个#即可,多行注释需要起始。
- python3的代码块不像其他语言使用{},python3使用缩进来区别代码块,同一代码块需要相同的缩进,挺二的,不同缩进认为是不同的代码块就容易出问题,不过python3也是支持[],{},()多行语句的,不使用这三种包裹有需要多行语句的可以使用/(反斜杠)来标识多行语句。
- python3支持一行写多条语句,之间使用;间隔,多行语句也是使用;间隔,代码规范不建议单行写多语句。
- python3像其他语言一样也支持if/for/while等语句。
- python3的输入/输出方式:
- 使用函数input()可以等待一个键盘输入,通常业务逻辑中使用view事件监听,不会单独使用函数直接输入。
- 使用函数print()换行输出到控制台 若不像换行可以变量末尾添加上end=""。
- 类似于js和java的类或者jar引入,python3也是通过关键字import进行引入操作,包含整个引入和局部引入,如下:
# 整体引入sys模块
import sys
# 从sys模块局部引入argv和path
from sys import argv,path
- python3的基本数据类型:
- python3的变量没有类型的概念,声明变量的时候不需要指明其类型,后续的赋值也不限制其类型,可以随便赋值,python3的变量赋值是指向其内存地址,比如a=4代表其指向4这个值的内存地址,后续a='aaa',则是将a重新指向了aaa这个字符串的内存地址。
- python3的变量赋值使用=,和其他不同的是可以批量赋值即:a=b=c=1,也可以a,b,c = 1,2,3(代表将123分别赋值给abc)。
- python3的基本数据类型包括:Number/String/List/Tuple/Set/Dictionary(词典即java中的map)
- Number:数值性数据结构包括:int/float/bool/complex(复数)四种,需要注意的是python3中bool值属于int,即0是False是True(python3大小写敏感,bool对应的值是首字母大写,非全小写),bool可以用于运算,即a=True 则a+1 = 2,但是其type函数输出是bool且is可以校验变量是不是bool类型即a=True a is bool 输出true。
- Number和其他语言相似基本的赋值和基础计算都支持,不同的是python的除和整除不一样,除是float,整除是int,/是除 //是整除计算符,为乘方运算符ab计算a的b次方。
- python3的数据转换分为两种隐式转换和显示转换。
- 隐式转换即在运算过程中python3会自动进行数据类型转换,低级别到高级别的转换比如float+int最终结果是float。
- python3不支持String+int即运算符+直接进行字符串和数值相加会出现类型异常,此时就需要进行对应的数据格式的显示转换。
-
python3的数据格式显示转换和其他编程语言很像,同样使用其对应函数进行转换即可,转换函数包括:
显示转换转换函数
- python3的type函数可以输出变量的对象类型,同时页支持函数isinstance校验对象的类型不同点是 isinstance支持父类校验,type仅能支持到当前类的输出。
- python3提供了del语句,del语句可以删除变量,即del a,b,c:将abc三个变量删除。
- 和java语言类似,python3也提供了数值型的高阶函数用来平常的逻辑计算等比如:Math函数,随机数函数,三角函数,常量Pi和e(自然常数),和java不同的是在python3的交互环境中可以直接使用这些函数,无需Math.函数调用。
- String(字符串)
- Python3中的字符串用单引号 ' 或双引号 " 括起来,使用三引号(''' 或 """)可以指定一个多行字符串,同时使用反斜杠 \ 转义特殊字符,和java一致,若不想转义字符则在字符串的前面使用r标识即r'abc' 此时会直接输出\不会转义字符串,java使用两个\不转义。具体的转义参考
-
python3中字符串遍历很有意思可以正向遍历也可以反向遍历,正向遍历从0开始,反向遍历从-1开始都是增长遍历。即字符串的索引如下:
字符串索引
- python3支持+串联字符串,且使用复制当前字符串即print('abc')会输出两个abc。
- python3没有char类型,不存在字符类型,单个字符就是长度为1的字符串,且声明后的字符串不能修改其字符,即a='abc',则a[0] = c是发生异常的。
- 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]/变量[头下标:尾下标],截取下标遵循字符串的索引规范,步长表示间隔数即头尾下标内间隔步长取数生成新的字符串,头下标可以不写,不写则默认为0.且遵循左闭右开的原则,即包含左边不包含右边。
- python3同样支持使用%做字符串替换,和Android类似,即%s代表字符串,%d代表数字,其他的格式化字符参考,其特殊格式化字符串关键字如下:
特殊格式化关键字
- python3.6开始提供了f-string特殊格式化语法,即f'{变量/表达式}':f+字符串(字符串内通过{}包含变量或者表达式)可以使用表达式或者变量的值为字符串,同时在3.8版本后提供了f'{变量/表达式=}'语法,借助于=将变量或者表达式与其值进行串联,比如f'{1+2=}':1+2=3.
- python3的string如同java也提供了一系列的内建函数用于简化字符串的操作。
- python的复合数据结构:列表/元祖/集合/词典
-
列表:List:多个元素生成的集合,和String及其相似。但是其元素可以通过下标访问和修改。
- List写在方括号[]之间,元素用逗号隔开,元素的类不固定,不同的元素的类型可以不一样,类型支持数字/String/列表。
- 列表可以截取和索引,截取和索引和String一致,支持正向和反向索引截取 同样也支持步长截取变量,索引值同样是正向0开始反向-1开始:[头下标:尾下标:步长]/变量[头下标:尾下标]。
- 列表使用关键字+可以串联列表使用*可以复制列表。
- 列表和python3提供了一系列的函数用于列表的操作,等同于java的列表的方法等。
-
python3提供了operator模块用于列表的比较,比如:
列表的比较模块
-
元祖:Tuple:和列表类似,也是多个元素的集合,使用()包裹,和列表不同的是元祖的内部元素不可变,即元素声明后不可修改和String一致,列表的其他特性元祖也都支持。
- 空元祖声明使用(),需要注意的是单个元素元祖需要(a,)括号内部的逗号不能省略,不然python3会按照()运算符去处理。
- 和列表一样,元祖也提供了对应的函数用来操作元祖。
-
集合:Set:使用{}包裹也是多个元素的集合,构建可以通过{}直接声明或者Set()函数构建,需要注意的是构建一个空集合只能通过Set函数不能通过{}构建因为{}是构建一个空的字典。
-
Set可以通过下面几个运算符求其子集(差集(给定的a集合存在b集合不存在的元素集合)/交集/并集等)即:
Set运算符
- 集合提供了一系列的内置函数,也是python3中最接近与java的一个数据结构。
-
-
字典:Dictionary:类java中的map,就是key-value键值对集合。
- 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取
- 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。且key固定不可变且唯一。
- 创建字典使用{}创建,注意和集合区分,空元素则肯定是字典,带有元素则看元素类型是字典还是集合。同时可以使用内建函数dict()创建一个空字典。
-
-
python3的运算符运算如下:
python3运算符
- python3的算数运算和比较运算和java运算基本一致,且算数运算前面已有介绍,此处不再重复介绍。
- python3的赋值运算也和java赋值运算基本一致,=赋值和各种运算赋值即+=,-=,=,*=(幂等)等,需要注意的是python3多了一个海象运算符,即:????不明白
海象运算符
- python3的按位运算和java的按位运算也基本一致。
- python3的逻辑运算符也是与或非,和java不同的是关键字不同,python3使用的关键字是 and、or、not(需要注意的是大小写敏感)。
- python3像其他web解释性语言一样存在in和not in运算符,多用于列表等数据结构,校验某一个元素是否在列表,集合中,逻辑上等同于java的contail函数。
- python3提供了校验两个对象是否是同一个对象的运算符即is和is not运算符,比如:a=20;b=20;a is b 则返回True表示a,b指向同一个对象。
- python3的运算符的优先级基本符合数值运算优先级和java的常规运算的优先级,具体可以参考对应的文档。
- python3的错误异常处理
- python3的错误与异常和java类似也是包含开发阶段的断言和程序运行过程中的异常。
- 断言则是用于程序开发过程中调试程序的语法结构,即不满足断言指定的后面的条件的时候会直接抛出断言异常并停止程序的执行,python语法:assert expression [, arguments]:关键字:断言条件:抛出异常的时候附带的消息用于标识当前的条件方便用户测试。
- python3更重要的是处理程序中的运行异常,和java类似也是抛或者抓取,抓/处理异常/最终执行结构依然存在,不同点整理如下:
- 关键字不同:try.....except....else....finally:执行代码无异常继续执行else中的代码,有异常执行except的代码,最终都会执行finally中的代码。
- raise [Exception [, args [, traceback]]]:抛出异常关键字。
- 清理行为:python3对于异常的处理流程:抓取到执行抓取的代码,抓取不到执行finally的代码后将异常抛出
- 预定义清理行为:
-
关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行他的清理方法:即:
with关键字
备注:此时无论是否异常最终文件都是关闭的,节省性能。
-
网友评论