liuyulin
发布于 2024-02-02 / 31 阅读
0
0

Python

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

显式的类型转换

使用函数进行类型转换

函数

描述

int()

转换为整形

float()

转换为浮点型

complex()

创建一个复数

str()

转换为字符串

repr()

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

eval()

用来执行一个字符串表达式,并返回表达式的值

tuple()

转换为元组

list()

转换为list

set()

转换为set

dict()

创建一个字典

frozenset()

转换为不可变集合

chr()

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

ord()

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

hex()

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

oct()

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

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 判断是不是同一变量


评论