python基础知识点梳理
摘要:
本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象,也算是对于学习这门语言的一个总结与回顾。
为了方便聚焦知识点,本文涉及的操作实例并不多,想学好一门语言关键还得自己多编码多实践。
python语言介绍
python是一门解释型语言,python的设计目标:
- 一门简单直观的语言并与主要竞争者一样强大
- 开源,以便任何人都可以为它做贡献
- 代码像纯英语那样容易理解
- 适用于短期开发的日常任务
设计哲学是:
- 优雅
- 明确
- 简单
python基础语法
标识符
- 第一个字符必须是字母表中字母或下划线 。
- 标识符的其他的部分由字母、数字和下划线组成。
- 标识符对大小写敏感。
注释
类型 | 语法 |
---|---|
单行注释 | 以 # 开头,编程规范建议#后面跟一个空格 |
多行注释 | 用一对连续的三个引号,单引号或者双引号均可("""/’’’) |
行与缩进
- python与其他语言明显的区别是没有大括号,而是用缩进表示代码块。
- 另外,每行语句不需要以分号结束。
多行语句
如果语句很长,可以使用反斜杠(\)来实现多行语句
说明:在 [], {}, 或 () 中的多行语句不需要使用反斜杠
算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 两个对象相加 | 10 + 9 = 19 |
- | 两个对象相减 | 10 - 9 = 1 |
* | 两个数相乘法,用于字符串时可以重复多次 | 10 * 9 = 90 |
/ | x除以y | 10 / 2 = 5 |
// | 取整除 | 10 // 9 = 1 |
% | 取余数 | 10 % 8 = 2 |
** | 返回x的y次幂 | 10 ** 2= 100 |
判断语法
if else语句
if 和 else用于对条件进行判断并进行处理,语法如下:
if 要判断的条件: 条件成立时要做的事情 ... else: 条件不成立时要做的事情
逻辑运算符
对于同时判断多个条件的情况可以用逻辑运算符,有如下三种:
符号 | 说明 | 语法 |
---|---|---|
and | 与,两个都成立才返回True | 条件1 and 条件2 |
or | 或,两个只要有一个满足就返回True | 条件1 or 条件2 |
not | 非,对条件取反 | not 条件 |
elif 语句
elif语句用于有多个条件进行判断的场景,语法如下:
if 条件1: 条件1满足时执行的代码 elif 条件2: 条件2满足时执行的代码 elif 条件3: 条件3满足时执行的代码 else: 以上都不满足时执行的代码
循环语法
循环的作用就是让指定的代码重复执行
while循环
while循环是python中常见的循环,用于让执行的代码按照指定次数重复执行,语法如下:
初始条件设置,通常是计数器 while 条件(判断计数器是否达到目标次数): 条件满足时候执行的代码 ... 处理条件(计数器 + 1)
for循环
for循环可以方便地遍历列表,元组,字典等数据类型,比如遍历一个列表的代码片段如下:
nameList = ["zhangsan", "lisi", "wangwu"] for name in nameList: print(name)
python中,for循环经常与range函数搭配使用,如下:
for i in range(1, 10): print(i)
python数据类型介绍
- 按照是否是数字可以按照如下表格分类:
数字类型 | 非数字类型 |
---|---|
整型(int)/ 浮点型(float)/ 布尔型(bool)/ 复数型(complex) | 字符串(str)/ 列表(list)/ 元组(tuple) / 字典(dict) |
说明:使用type函数可以返回变量的数据类型
按照是否可变可以分为:
不可变类型 | 可变类型 |
---|---|
整型(int)/ 浮点型(float)/ 布尔型(bool)/ 复数型(complex)/ 字符串(str)/ 元组(tuple) | 列表(list)/ 字典(dict) |
列表
列表(list)是python中使用最频繁的数据类型,类似其他语言的数组
列表的符号是中括号[],初始化一个列表语法如下:
program_list = ["c++", "java", "python", "php"]
列表中常见的几种操作如下:
序号 | 分类 | 方法 | 说明 | 实例 |
---|---|---|---|---|
01 | 查询 | list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 | program_list.index(“java”)) |
02 | 增加 | list.insert(index, obj) | 在列表中指定位置插入数据 | program_list.insert(1, “kotlin”) |
03 | 增加 | list.append(obj) | 在列表末尾追加数据 | program_list.append(“C#”) |
04 | 增加 | list.extend(list1) | 在列表1的数据追加到列表中 | program_list.extend([“C#”, “kotlin”, “bash”]) |
05 | 增加 | list.extend(list1) | 在列表1的数据追加到列表中 | program_list.extend([“C#”, “kotlin”, “bash”]) |
06 | 修改 | list[index] = obj | 修改指定索引的数据 | program_list[2] = “Go” |
07 | 删除 | list.clear() | 清空列表 | program_list.clear() |
08 | 删除 | list.remove(obj) | 删除第一个出现的指定数据 | program_list.remove(“java”) |
09 | 删除 | list.pop() | 删除末尾的数据 | program_list.pop() |
10 | 删除 | list.pop(index) | 删除指定索引的数据 | program_list.pop(1) |
11 | 统计 | len(list) | 计算列表长度 | len(program_list) |
12 | 统计 | list.count(obj) | 统计数据在列表中出现的次数 | program_list.count(“java”) |
13 | 排序 | list.sort() | 将列表升序排列 | program_list.sort() |
14 | 排序 | list.sort(reverse=True) | 将列表降序排列 | program_list.sort(reverse = True) |
15 | 翻转 | list.reverse() | 将列表翻转 | program_list.reverse() |
元组
元组(tuple)与列表类似,区别是元组的数据不能修改,元组的符号是小括号(),初始化一个元组的语法如下:
program_tuple = ("c++", "java", "python", "php")
元组主要用于函数的参数和返回值,格式化字符串,以及保护列表数据,由于元组的数据无法修改,因此提供的方法也比较少:
序号 | 分类 | 方法 | 说明 | 实例 |
---|---|---|---|---|
01 | 查询 | tuple.index(obj) | 从元组中找出某个值第一个匹配项的索引位置 | program_tuple.index(“java”) |
02 | 统计 | len(tuple) | 计算元组长度 | len(program_tuple) |
03 | 统计 | tuple.count(obj) | 统计数据在列表中出现的次数 | program_tuple.count(“python”) |
元组在python中还可以用于交换两个变量的值:
a = 10 b = 9 a, b = (b, a)
字典
字典(dict)通常用于描述一个物体的相关信息,使用键值对存储数据,键必须唯一,由于要使用hash算法,只有不可变类型才能用作键,字典的符号是大括号{},初始化一个字典的语法如下:
human_dic = {"name": "zhangsan", "age": 26, "height": 1.75, "weight": 66}
字典的常用操作函数如下:
序号 | 分类 | 方法 | 说明 | 实例 |
---|---|---|---|---|
01 | 取值 | dict[key] | 从字典中取出键对应的值 | human_dic[“name”] |
02 | 取值 | dict.get(key) | 从字典中取出键对应的值 | human_dic.get(“name”) |
03 | 取值 | dict.items() | 以列表返回可遍历的(键, 值) 元组数组 | list(human_dic.items()) |
04 | 取值 | dict.keys() | 以列表返回一个字典所有的键 | list(human_dic.keys()) |
05 | 取值 | dict.values() | 以列表返回字典中的所有值 | list(human_dic.values()) |
06 | 增加/修改 | dict[key] = value | key存在则更新value,否则增加键值对 | human_dic[“gender”] = “male” |
07 | 删除 | dict.pop(key) | pop函数返回key对应的value值,并删除键值对 | human_dic.pop(“gender”) |
08 | 删除 | dict.popitem() | 返回并删除字典中的最后一对键和值 | human_dic.popitem() |
09 | 合并 | dict.update(dic2) | 合并字典dic2中的数据,已存在的key跟新value的值 | human_dic.update({“weight”: 64, “age”: 27}) |
10 | 复制 | dict.copy() | 返回字典的浅复制 | new_dic = human_dic.copy() |
11 | 清空 | dict.clear() | 清空字典 | human_dic.clear() |
字符串
字符串(str)的使用也非常广泛,可以使用引号('或")来创建字符串,初始化一个字符串的语法如下:
testStr = "Wasting time is robbing oneself"
python对于str提供了很多实用的方法,比较常用的有以下这些:
- 对字符串进行判断的方法:
序号 | 方法 | 说明 |
---|---|---|
01 | str.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False |
02 | str.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False |
03 | str.isdecimal() | 如果 string 只包含数字则返回True,否则返回False |
04 | str.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回True |
05 | str.isupper() | 如果 string 所有区分大小写的字符都是大写,则返回True |
06 | str.islower() | 如果 string 所有区分大小写的字符都是小写,则返回True |
07 | str.isspace() | 如果 string 中只包含空格,则返回 True,否则返回 False |
- 对字符串进行修改(包括格式化,大小写转换):
序号 | 分类 | 方法 | 说明 |
---|---|---|---|
01 | 格式化 | str.format() | 格式化字符串 |
02 | 格式化 | str.strip() | 去掉字符串左右两边的空白字符 |
03 | 格式化 | str.lstrip() | 去掉字符串左边的空白字符 |
04 | 格式化 | str.rstrip() | 去掉字符串右边的空白字符 |
05 | 文本对齐 | str.ljust(width) | 返回一个原字符串左对齐,并使用空格填充宽度至长度width的新字符串 |
06 | 文本对齐 | str.rjust(width) | 返回一个原字符串右对齐,并使用空格填充宽度至长度width的新字符串 |
07 | 文本对齐 | str.center(width) | 返回一个原字符居中对齐,并使用空格填充宽度至长度width的新字符串 |
08 | 大小写 | str.title() | 把字符串的每个单词首字母大写 |
09 | 大小写 | str.lower() | 把字符串的所有大写字符转换成小写 |
10 | 大小写 | str.upper() | 把字符串的所有小写字符转换成大写 |
11 | 大小写 | str.swapcase() | 翻转字符串的大小写 |
- 字符串的查找和替换:
序号 | 方法 | 说明 |
---|---|---|
01 | str.count(str1, beg=0, end=len(string)) | 返回 str1 在字符串中出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
02 | str.startswith(obj, beg=0,end=len(string)) | 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. |
03 | str.endswith(obj, beg=0, end=len(string)) | 检查字符串是否以 obj 结束,是则返回 True,否则返回 False。如果beg 或者 end 指定值,则在指定范围内检查 |
04 | str.find(str1, beg=0, end=len(string)) | 检测 str1是否包含在字符串中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内。如果是则返回开始的索引值,否则返回-1 |
05 | str.rfind(str1, beg=0,end=len(string) ) | 类似于find函数,不过是从右边开始查找 |
06 | str.index(str1, beg=0, end=len(string)) | 跟find()方法一样,只不过如果str1不在 字符串中会报一个异常. |
07 | str.rindex(str1, beg=0, end=len(string)) | 类似于index函数,不过是从右边开始 |
08 | str.replace(str1, str2, num=string.count(str1)) | 把 字符串中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次. |
- 字符串的拆分和连接:
序号 | 方法 | 说明 |
---|---|---|
01 | str.split(str1="", num=str.count(str1)) | 以 str1 为分隔符切片字符串,如果 num 有指定值,则仅分隔 num+1 个子字符串 |
02 | str.splitlines([keepends]) | 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
03 | str.join(seq) | 以 字符串作为分隔符,将 列表seq 中所有的元素(用字符串表示)合并为一个新的字符串 |
公共方法
内置函数
对于列表,元组,字典,字符串,python也提供了一些公共方法,如下:
函数 | 描述 | 说明 |
---|---|---|
len(item) | 计算元素的总个数 | |
del(item) | 删除变量 | 可以删除整个变量,加上索引可以只删除指定的元素 |
max(item) | 返回元素的最大值 | 字典只针对key比较 |
min(item) | 返回元素的最小值 | 字典只针对key比较 |
运算符
高级数据类型同样支持以下常见的运算符:
序号 | 运算符 | 描述 | 支持的数据类型 |
---|---|---|---|
01 | + | 合并 | 列表,元组,字符串 |
02 | * | 重复 | 列表,元组,字符串 |
03 | in | 元素是否存在 | 列表,元组,字典,字符串 |
04 | not in | 元素是否不存在 | 列表,元组,字典,字符串 |
05 | > < >= <= == | 比较 | 列表,元组,字符串 |
切片
切片使用索引值可以方便地截取容器中一定范围的数据,适用于列表,元组,字符串。
切片语法如下:
item[N:M:S]
其中N表示要截取的开始位置,M表示结束位置,S表示step也就是步长,默认是1,截取的时候[N:M]是个半闭合区间,等效于数学上[N,M)取值范围,取N不取M, N和M都可以省略。python中,-1可以表示最后一个元素,字符串利用切片完成翻转的代码如下:
>>> test_str = "Hello World" >>> print(test_str[::-1])
python函数语法
在python中定义一个函数需要使用def关键字,相比其他语言,返回值不需要声明,定义一个函数的语法如下:
def print_hello(): print("Hello, World!")
缺省参数
除了常见的必须参数外,python支持缺省参数,即为参数指定一个默认值,可以不传入这个参数,代码例子如下:
def print_human(name, age = 23): print("body info: name is %s, age is %s" % (name, age) ) print_human("wangwu") print_human("lisi", 25) print_human("zhangsan", age = 36)
多值参数
如果函数处理的参数的个数不确定,就可以用多值参数:
- 参数名前面增加一个*可以接收元组
- 参数名前面增加两个*可以接收字典
使用了这两个多值参数的代码例子如下:
def print_info(*args, **kwargs): print(args) print(kwargs) program_list = ["c++", "java", "python", "php"] human_dic = {"name": "zhangsan", "age": 26, "height": 1.75, "weight": 66} print_info(*program_list, **human_dic)
返回多个值
python中可以利用元组返回多个值,多个返回值的代码如下:
def measure_rect(): width = 12 height = 6 return width, height w, h = measure_rect() print("width is %d, height is %d" % (w, h))
python常用函数
print输出函数
python使用print函数将信息输出到控制台,输出数据时经常会用到格式化操作符,不同的格式化字符串含义如下表:
格式化字符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数(%07d 表示显示7位整数,不足就用0补全) |
%f | 浮点数(%.02f 表示小数点后显示两位) |
%% | 输出% |
语法格式如下:
print("格式化字符串" % 变量1) print("格式化字符串" % (变量1, 变量2...))
print函数默认会自动在内容末尾增加换行,如果不希望换行,可以用end参数指定需要输出的内容
语法格式如下:
print("Hello word!", end="")
input输入函数
使用input函数从键盘等待用户的输入,默认都是一个字符串
语法格式如下:
字符串变量 = input("提示信息:")
类型转换函数
常见的类型转换函数如下:
函数 | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(list) | 将列表转换为字符串 |
tuple(list) | 将列表转换为元组 |
list(tuple) | 将元组转换为列表 |