Python基础
基础语法
注释
python中单行注释以#号开头
多行注释可以用多个#或者'''.....'''与"""...."""
行与缩进
python使用缩进来标识代码块,不需要使用大括号。缩进的空格数是可变的,但是同一个代码块中的语句必须包含相同的缩进,空格数不一样会导致运行错误
多行语句
python通常是一行写完一条语句,但是如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如
total = item_one + \
item_two + \
item_three在 [ ] , { } 或 ( ) 中的多行语句不需要使用反斜杠 \
数字(Number)类型
python中数字有四种类型:int,bool,float,complex (复数)
字符串(String)类型
python中单引号 ‘ 和双引号 " 使用完全相同
使用三引号 ''' 或 """ 可以指定一个多行字符串
转义符 \
反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义,例如
print(r'\n\n\n') #输出\n\n\n
空行
函数之间或类的方法之间用空行分割,表示一段新的代码的开始。类和函数的入口之间也用一行空行分割,以突出函数入口的开始。
空行与代码缩进不同,空行并不是python语法的一部分。书写时不插入空行,python解释器也不会出错。但是空行的作用在于分割两段不同功能或含义的代码,便于日后代码的维护和重构。
记住:空行也是程序代码的一部分
等待用户输入
使用input()等待用户输入
同一行显示多条语句
python可以在同一行中使用多条语句,语句之间使用分号 ; 分割
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之为代码组
像 if 、while、de 和 class这样的复合语句,首行以关键字开始,以冒号 : 结束,该行之后的一行或者多行代码构成代码组
我们将首行及后面的代码组称为一个子句( clause )
print输出
print默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=" " ,例如:
print(str ,end=" ")
print(str)import 与 from...import
import导入整个模块 import somemodule
从某个模块中导入某个函数 from somemodule import somefunction
从某个模块中导入多个函数 from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入 from somemodule import *
基本数据类型
python中变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。
在python中,变量就是变量,它没有类型,我们所说的“类型”是变量所指的内存中对象的类型。
多个变量赋值
python中允许同时为多个变量赋值
a = b = c = 1也可以为多个对象指定多个变量
a, b, c = 1, 2, "abc"标准数据类型
python中有六个标准数据类型:
Number, String, List, Tuple(元组), Set, Dictionary(字典)
不可变数据:Number, String, Truple
可变数据:List, Dictionary, Set
Number
python3中有int, float, bool, complex(复数)
python3中int就是长整型,没有long
type()可以用来查询变量所指的对象类型
type()与isinstance()
type()不会认为子类是一种父类类型
isinstance()会认为子类是一种父类类型
可以使用del来删除单个或多个对象
一个变量可以通过赋值指向不同类型的对象
/ 返回一个浮点数 // 返回一个整数
混合计算时,python会把整形转换为浮点型
String
索引值以0为开始值,-1为末尾的开始位置
print(str[0:-1]) #输出第一个到倒数第二个字符python中字符串不能被改变,向一个索引位置赋值会导致错误,比如:str[0]='a'
用 * 重复输出
List
列表被截取后返回一个包含所需元素的新列表
List中的元素是可以改变的
可以设置步长,例如:list[1:4:2]
Tuple(元组)
元组与列表类似,但元组的元素不能修改,元组写在小括号 () 中,元素之间用逗号隔开。
元组也可以截取,可以把字符串看作一种特殊的元组
虽然元组的元素不可变,但是他可以包含可变的对象,比如list列表
构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则
tuple1 = () #0个元素
tuple2 = (20,) #1个元素Set
集合是由一个或数个形态各异的大小整体组成的,构成集合的事物和对象乘坐元组或是成员。
基本功能使进行成员关系测试和删除重复元素
可以用大括号 {} 或者 set() 函数创建集合
注意:创建一个空几个必须用 set() 而不是 { } ,因为 { } 是用来创建一个空字典
Dictionary(字典)
字典是python中另一个非常有用的内置数据类型
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典中的元素是通过键来存取的,而不是通过偏移存取
字典是一种映射类型,字典用 {} 标识,它是一个无序的 key-value 集合
数据类型转换
有时候我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下只需要将数据类型作为函数名即可
python数据类型转换可分为两种:隐式转换,显示转换(使用类型函数转换)
隐式类型转换
python会自动将一种数据类型转换为另一种数据类型,不需要我们去干预
整形和字符串类型运算结果会报错,输出TypeError
显式的类型转换
使用函数进行类型转换
python推导式
python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列结构体。
python支持各种数据结构的推导式:列表(List)推导式,字典(dict)推导式,集合(set)推导式,元组(tuple)推导式。
列表推导式
[表达式 for 变量 in 列表] [out_exp_res for out_exp in input_list]
或者
[表达式 for 变量 in 列表 if 条件] [out_exp_res for out_exp in input_list if condition]
out_exp_res: 列表生成元素表达式,可以有返回值的函数
for out_exp in input_list:迭代input_list将out_exp传入到out_exp_res表达式中
if condition:条件语句,可以过滤列表中不符合条件的值
字典推导式
{key_expr : value_expr for value in collection}
或
{key_expr : value_expr for value in collection if condition}
集合推导式
{expression for item in Squence}
或
{expression for item in Squence if condition}
元组推导式
(expression for item in Sequence)
或
(expression for item in Sequence if coditional)
元组推导式返回的结果是一个生成器对象
python运算符
** 幂运算 a**b 返回a的b次方
// 取证除 向下取整
:= 海象运算符 可在表达式内部为变量赋值 if (n := len(a) ) > 10
逻辑运算符
and / or / not
成员运算符
in / not in
身份运算符
is / is not 判断是不是同一变量