一.分支
1.执行过程
2.if语句
if A1:
B1
elif A2:
B2
else:
B3
先判断A1,如True则执行B1,如False则执行—判断A2;
如果A1,A2都不满足,最后执行else
注:
1.Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
2.每个条件后面要使用冒号 : ,表示接下来是满足条件后要执行的语句块。
3.在 Python 中没有 switch...case 语句,但在 Python3.10 版本添加了 match...case,
3.if嵌套
格式如下
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
实例:
# !/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print ("BOTH YES")
else:
print ("YES 2, NO 3")
else:
if num%3==0:
print ("YES 3, NO 2")
else:
print ("BOTH NO")
4.match...case...
match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
格式如下
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
注:case _: 约等于C 中的 default, 及当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功
一个 case 也可以设置多个匹配条件,条件使用 | 隔开
case 401|403|404:
return "Not allowed"
二.循坏
1.执行过程
2.while 循坏
格式如下:
while A:
B
注:1.注意缩进,python通过缩进来判断语句
2.在python中没有do...while循坏
eg.
#!/usr/bin/env python3
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为: %d" % (n,sum))
3.无限循坏
可以通过设置条件表达式永远不为 false 来实现无限循环
可以使用 CTRL+C 来退出当前的无限循环
4.while + else 语句
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
#!/usr/bin/python3
c = 0
while c < 5:
print (c, " 小于 5")
count = c + 1
else:
print (c, " 大于或等于 5")
此脚本执行结果为:
0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5
注:如果 while 的执行条件只有一行,可以将其如 if 语句 一样写在 : 后面,构成同一行语句
5.for 语句
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串
格式如下:
for A in B:
C1
else:
C2
eg:
#!/usr/bin/python3
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
print(site)
结果如下
Baidu Google Runoob Taobao
其有多种用法:
1. 打印字符串中的每个字符
2.整数范围值可以配合 range() 函数使用
6.for + else 语句
for...else 语句用于在循环结束后执行一段代码,其执行过程类似于while + else 语句
都是在for语句循坏结束后,执行else语句
7.range() 函数
使用内置 range() 函数。它会生成数列
range(A, B, C)其中
A为初始点,如没有A,则从0开始计数
B为终止点
C为步长,range(0,10,3)会出现 0,3,6,9 的执行结果,C值默认为1,可以为负数
8.break 和 continue 语句及循环中的 else 子句
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
9.pass语句
pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句
三.函数
1.定义
注:其函数调用同C,C++一样,需要先进行定义,才能在程序中使用
2.参数传递
可更改 与 不可更改 对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
-
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。
-
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
-
不可变类型:类似 C++ 的值传递,如整数、字符串、元组。如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。如果在 fun(a) 内部修改 a 的值,则是新生成一个 a 的对象。
-
可变类型:类似 C++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会受影响
传不可变对象
def change(a):
print(id(a)) # 指向的是同一个对象
a=10
print(id(a)) # 一个新对象
a=1
print(id(a))
change(a)
传可变对象
#!/usr/bin/python3
def changeme( mylist ):
"修改传入的列表"
mylist.append([1,2,3,4])
print ("函数内取值: ", mylist)
return
mylist = [10,20,30]
changeme( mylist )
print ("函数外取值: ", mylist)
3.参数类型
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
调用函数,你必须传入一个参数,不然会出现语法错误
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。
注:
加了星号 * 的参数会以元组(tuple)的形式导入,如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。
加了两个星号 ** 的参数会以字典的形式导入
如果单独出现星号 *,则星号 * 后的参数必须用关键字传入
4.匿名函数
使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
- 虽然 lambda 函数看起来只能写一行,却不等同于 C 或 C++ 的内联函数,内联函数的目的是调用小函数时不占用栈内存从而减少函数调用的开销,提高代码的执行速度。
格式如下:
lambda [arg1 [,arg2,.....argn]]:expression
#!/usr/bin/python3
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
5.return语句
用于退出函数,选择性地向调用方返回一个表达式。
不带参数值的 return 语句返回 None。
四.集合
1.定义
- 集合概述:Python中的集合(set)与数学中的集合概念类似
- 也是用于保存不重复的元素。它有可变集合(set)和不可变集合(frozenset)两种。
- 在形式上,集合的所有元素都放在一对大括号中,两个相邻元素间使用逗号“”分隔。
- 集合最好的应用就是去重,因为集合中的每个元素都是唯一的。
2.创建
{}直接创建
collection = {1, 2, 3, 4, 5}
print(collection)
set()转换
lists = [1, 2, 3, 4, 5, 6]
collection = set(lists)
print(collection)
set函数 可以将列表,元组等可迭代对象转换为集合
3.集合操作函数
add函数——添加元素,追加末尾值
update函数——添加序列
eg:
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.update(y)
print(x)
结果如下:
del函数——删除整个集合
clear函数——清空整个集合
discard函数——删除指定元素
pop函数——弹出第一个元素
in——在集合中用in判断数据在集合序列; not in:判断数据不在集合序列
collection = {1, 2, 3}
print(1 in collection)
print(4 not in collection)
4.交集,并集,差集数学运算
五.文件处理
1.打开
open() 函数有两个参数:文件名和模式。
有四种打开文件的不同方法(模式):
- "r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
- "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。
- "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。
- "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。
此外,可以指定文件是应该作为二进制还是文本模式进行处理。
- "t" - 文本 - 默认值。文本模式。
- "b" - 二进制 - 二进制模式(例如图像)。
注:因为 "r"
(读取)和 "t"
(文本)是默认值,所以不需要指定它们
2.读取
此对象有一个 read()
方法用于读取文件的内容
f=open("D:/test.txt")
print(f.read())
注:read(5)表示读取前五个字符
readline()表示读取一行
逐行遍历:
f=open("test.txt","r")
for x in f:
print(x)
注:记得用close()函数关闭文件
3.写入
如需写入已有的文件,必须向 open()
函数添加参数:
"a"
- 追加 - 会追加到文件的末尾"w"
- 写入 - 会覆盖任何已有的内容
创建新文件:
如需在 Python 中创建新文件,请使用 open()
方法,并使用以下参数之一:
"x"
- 创建 - 将创建一个文件,如果文件存在则返回错误"a"
- 追加 - 如果指定的文件不存在,将创建一个文件"w"
- 写入 - 如果指定的文件不存在,将创建一个文件
4.删除
如需删除文件,必须导入 OS 模块,并运行其 os.remove()
函数:
import os
os.remove("test2.txt")
删除文件夹:
import os
os.rmdir("test")
注:python其余总结请见 python特殊函数及总结