Python3基础
python基础语法
1. 标识符
第一个字符必须是字母表中字母或下划线 _
标识符的其他的部分由字母、数字和下划线组成。
标识符对大小写敏感。
2. python保留字
import keyword
print(keyword.kwlist)
3. 注释
单行注释以
多行注释可以使用 ''' ''' 或者 """ """
4. 行与缩进
python使用缩进来表示代码块不需要使用大括号
5. 多行语句
使用一个反斜杠 \ 实现多行语句
在 [], {}, 或 () 中的多行语句 不需要使用 \
6. 空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。
类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行并不是 Python 语法的一部分 作用在于分隔两段不同功能或含义的代码
7. 等待用户输入
input("\n\n按下 enter 键后退出。")
\n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。
8. 同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号 ;
9. 多个语句构成代码组
缩进相同的一组语句构成一个代码块称之代码组。
10. print 输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
11. import 与 from...import
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule >>>>>>使用模块中的对象,必须通过模块名作为前缀来调用
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import * >>>>>>所有的公开对象(函数、类、变量等)都导入到当前命名空间中
12. 命令行参数
......
python基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
1. 多个变量赋值
a, b, c = 1, 2, "string"
2. 标准数据类型
2.1 python3有 6 个标准数据类型
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
2.2 查看数据类型
2.2.1 内置的 type() 函数可以用来查询变量所指的对象类型
2.2.2 使用isinstance() 函数判断变量所指的对象类型
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
2.2.3 通过 is 来判断类型
>>>1 is True
False
3. Number(数字)
3.1 整型 int
python3 不支持 Long 类型
3.2 浮点数float
3.3 布尔类型bool
在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
Python3 中,bool 是 int 的子类
True 和 False 可以和数字相加, True==1、False==0
3.4 复数complex
实部a 虚部b
a + bj
complex(a,b)
3.5 数值运算
在混合计算时,Python会把整型转换成为浮点数。
加法 +
减法 -
乘法 *
除法
得到一个浮点数 /
得到一个整数
取余 %
乘方 **
4. String(字符串)
4.1 定义
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
反斜杠 \ 转义特殊字符
\n 换行
在字符串前面添加一个 r,表示原始字符串:
4.2 字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引序号
从前面索引 0 1 2 3 4 5
str = "a b c d e f"
从后面索引 -6 -5 -4 -3 -2 -1
str[0] a
str[2:4] cde
str[2:] cdef
.....还没懂截取
使用[]操作符对字符串进行切片。切片操作接受两个参数,即起始索引和结束索引。注意,起始索引的字符被包含在切片内,而结束索引的字符不被包含在切片内。
如果未指定起始索引,默认为0(字符串开头),如果未指定结束索引,默认为字符串长度。
切片操作还支持使用负数索引,表示从字符串末尾开始计算的位置。
通过灵活运用切片操作,你可以方便地截取字符串中的子串。
4.3 加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数
4.4 Python 没有单独的字符类型,一个字符就是长度为1的字符串。
4.5 Python中的字符串不能改变 赋值会发生错误
4.6 在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
#!/usr/bin/python3
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
4.7 python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
5. bool(布尔类型)
5.1 布尔类型特点:
布尔类型只有两个值:True 和 False。
布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。
布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。
布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。
6. List(列表)[]
6.1 定义及要求
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
6.2 相关操作
List也可以使用+操作符进行拼接 使用*操作符进行重复
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
Python 列表截取可以接收第三个参数,参数作用是截取的步长
eg:翻转字符串:
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
与Python字符串不一样的是,列表中的元素是可以改变的。
内置了有很多方法,例如 append()、pop() 等等
7. Tuple(元组)()
7.1 定义及要求
元组中的元素类型也可以不相同。
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
元组写在小括号 () 里,元素之间用逗号隔开。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
7.2 特殊的语法规则
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
7.3 内置函数
len(tuple) 计算元组元素个数。
max(tuple) 返回元组中元素最大值。
min(tuple) 返回元组中元素最小值。
tuple(iterable) 将可迭代系列转换为元组。
8.Set(集合){}
8.1 定义及要求
Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
8.2 创建set
可以使用 set() 函数创建集合。
创建空集合必须用set()
9. Dictionary(字典)
9.1 定义及要求
是Python中另一个非常有用的内置数据类型
字典是无序的对象集合:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
9.2 创建Dictionary
构造函数 dict()
dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
dict(Runoob=1, Google=2, Taobao=3)
推导式
10. bytes 类型
10.1 定义及要求
bytes 类型表示的是不可变的二进制序列(byte sequence)
bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
10.2 创建
10.2.1 使用 b 前缀
10.2.2 bytes() 函数将其他类型的对象转换为 bytes 类型
第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码:
10.3 用途
bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
10.4 操作
bytes 类型也支持许多操作和方法,如切片、拼接、查找、替换等等。
同时,由于 bytes 类型是不可变的,因此在进行修改操作时需要创建一个新的 bytes 对象。
bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数值
ord() 函数用于将字符转换为相应的整数值。
del语句用于删除对象引用。它可以将一个或多个对象从内存中删除,以便释放资源或销毁不再需要的对象。
当使用del语句删除对象引用时,Python解释器会检查该对象的引用计数。引用计数是指对该对象的引用数量。当引用计数为0时,表示没有任何引用指向该对象,该对象就可以被垃圾回收机制回收并释放内存。
del语句只是删除对象引用,而不是直接删除对象本身。对象的销毁和释放内存是由Python解释器的垃圾回收机制自动处理的。当对象没有任何引用指向时,垃圾回收机制会将其标记为垃圾,并在适当的时候进行回收和释放。
Python3 数据类型转换
1. 隐式类型转换
2. 显式类型转换
int() 强制转换为整型
float() 强制转换为浮点型:
str() 强制转换为字符串类型:
Python3 推导式
1. 列表推导式格式
[表达式 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]
2. 字典推导式格式
{ key_expr: value_expr for value in collection }
或
{ key_expr: value_expr for value in collection if condition }
3. 集合推导式格式
{ expression for item in Sequence }
或
{ expression for item in Sequence if conditional }
4. 元组推导式(生成器表达式)
(expression for item in Sequence )
或
(expression for item in Sequence if conditional )
Python3 迭代器与生成器
1. 迭代器
迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器: