1.选择结构
if语句用法:
if 条件1:
代码块1 #注意缩进
elif 条件2:
代码块2
elif 条件3:
代码块3
...
...
elif 条件n-1:
代码块n-1
else
代码块n
2.循环结构
1.While循环
while 条件:
代码块
2.For循环
for 循环变量 in 可迭代对象:
代码段
如:
for i in range(star, end, step):
代码段
#循环变量i从star开始,每次循环后i增加step,直至超过end跳出循环。
eg:
#计算50-100的和
sum = 0
for i in range(50, 101, 1): #1可以省略
sum += i
print(sum)
3.break, continue, pass
- break 语句用于跳出 for 和 while 循环过程,跳出后对应的 else 部分将不执行。
- continue 语句用于跳过 for 和 while 循环中的本次循环,其后的语句在本次循环中将不再执行,同时程序将执行下一轮循环。
- pass语句主要用于占位,不会有任何效果。
3.函数的定义与使用
1.定义
def ask_me_to(string):
print(f'You want to {string}? ')
if string == 'swim':
return 'OK!'
else:
return "Don't even think about it. "
- def : 函数定义关键字
- ask_me_to :函数名
- string :参数,用逗号分隔
- 结尾冒号不能掉
2.调用
print(ask_me_to('dive')) # 两个函数嵌套,先调用ask_me_to,返回值传给print,再输出
3.函数的参数
参数的形式:
- 不带默认参数的:def func(a):
- 带默认参数的:def func(a, b=1):
- 任意位置参数:def func(a, b=1, *c):
- 任意键值参数:def func(a, b=1, *c, **d):
注:四种参数可以同时使用,定义时应满足非默认参数,默认参数,任意位置参数,任意键值参数
调用时分为位置相关参数(前三个)按顺序传入,关键词参数(第四个)可以乱序传入。
4.修改传入的参数
字符串,数值类型和Tuple是一个不可变的对象,对于这些不可变类型,每次修改都会创建一个新的对象,然后修改引用为新的对象。
如:
num = 1
def edit_num(number):
number += 2
edit_num(num) #引用时,为num += 1创建了新的对象
print(num) #输出为旧的num--即1
可以改为:
num = 1
def edit_num(number):
number += 2
return number
num = edit_num(num)
print(num)
5.函数的返回值
- 返回一个值----return 值或表达式
- 什么都不返回----return 或return None
- 返回多个值----return 值或表达式1, 值或表达式2, ...
6.函数的嵌套
1.作用域
- 局部作用域:在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。
- 全局作用域:在 Python 代码主体中创建的变量是全局变量,属于全局作用域,全局变量在任何范围(全局和局部)中可用。
2.Global 关键字
如果您需要创建一个全局变量,但被卡在本地作用域内,则可以使用 global 关键字。
global 关键字使变量成为全局变量。
3.nonlocal关键字
nonlocal 关键字用于在嵌套函数内部使用变量,其中变量不应属于内部函数。
请使用关键字 nonlocal 声明变量不是本地变量。
eg:
d = 1
def func4():
global d # 访问到了全局变量d
e = 5
d += 2
def inner():
nonlocal e # 访问到了闭包中的变量e
e += 3
inner()
print(e)
func4()
print(d)
关于以上专业名词我也不太懂,参考以下链接可能得到解决
Python内部函数:它们有什么好处?– 真正的Python (realpython.com)
7.使用“轮子”
1.随机库
import random
print(random.randint(1, 5)) # 随机生成1-5以内的整数
import 的基本用法是:import 包名,包名提供的函数的用法是包名 . 函数名。
当然包里面的常量和类都可以用类似的方法调用
以上代码还有一种特殊的写法:
import random as rnd
print(rnd.randint(1,5)) # 同上,只是给了random一个方便输入的别名
2.日期库
import datetime
print(datetime.datetime.now())
3.数学库
import math
print(math.sin(math.pi / 2))
print(math.cos(math.pi / 2))
输出:
1.0
6.123233995736766e-17 # 其实就是0,由于浮点数的精度问题无法精准表示为0
注:在编写代码涉及浮点数比较的时候一定要这么写
EPS = 1e-8
print(abs(math.cos(math.pi / 2)) < EPS)
# EPS指的是允许误差范围。也就是浮点数没有真正的相等,也就是在一定误差范围内相等
4.操作系统库
import os
print(os.listdir('.'))
5.第三方库
可以用pip安装各种第三方库,安装好了就可以在代码中正常import 第三方库了