目录
分支结构
if
当 if 条件成立,执行里面的内容。C条件用小括号,Python条件直接写,最后加上冒号结尾;C的执行指令用大括号括起来(单条可以不用),Python指令用Tab缩进对齐。
//C
if(条件)
{
执行的指令;
}
# Python
if 条件:
执行的指令 #结尾没有分号
elif
与 if 配套使用,当 if 不成立会继续判断后面的 elif 是否成立。C中是else if(条件),Python是elif 条件:
if(条件1) //不成立
{
执行的指令1; //不执行
}
else if(条件2) //判断条件2是否成立
{
执行的指令2; //条件2成立就执行,反之不执行
}
if 条件1: # 不成立
执行的指令1 # 不执行
elif 条件2: # 判断条件2是否成立
执行的指令2 # 条件2成立就执行,反之不执行
else
与 if 或 elif 配套使用,当 if 或 elif 都不成立就会执行 else 下的指令。
if(条件1) //不成立
{
执行的指令1; //不执行
}
else
{
执行的指令2; //若条件1不成立,此处指令必定执行
}
if 条件1: # 不成立
执行的指令1 # 不执行
else:
执行的指令2 # 若条件1不成立,此处指令必定执行
相关函数
randint()
生成一个指定范围内的随机数。
from random import randint # 引用库
randint(最小值, 最大值) # 随机数>=最小值 and 随机数<最大值
abs()
返回整型、浮点型或复数的绝对值(复数返回其大小)。
math.sqrt()
求平方根,即开方。
import math # 引用库
print(math.sqrt(要开方的数字))
locals()
指向局部命名空间,即里面包含了所有局部变量的信息。如果不在函数中调用该函数将指向全局命名空间。
globals()
指向全局命名空间,即里面包含了所有全局变量的信息。即使在函数内调用也返回所有全局变量的信息而非该函数内局部变量的信息。
由此也可以看出在第一篇文章中提到的 _ _ name _ _ 此时等于字符串‘_ _ main _ _’;而 _ _ file _ _指向当前文件所在的目录。
导入模块
概念:
- 模块(module):Python文件。
- 函数(function):模块中的def 函数名:
- 包(package):Python文件所在的文件夹。
- from module:导入目标包中模块到当前模块的命名空间中。
- import module:导入模块或函数到当前模块中,不包含命名空间。
使用 from 时 import 函数。
不使用 from 时 import 模块。
导入方式
使用其他文件的函数前,要先将该模块导入进当前的的文件中。下面就不同文件夹下自定义模块调用做说明:
同级导入
文件结构:
导入命名空间
代码:
# t.py
def func():
print("t: twz")
# tmain.py
from t import func
func()
将 t.py 导入命名空间后,直接调用。
直接导入
# t.py
def func(x):
print("t: twz", x)
# tmain.py
import t
t.func(1)
直接 import 并不会把命名空间也导入进去,所以在调用时需要把该函数所在的文件名加上。
子目录导入
目录结构:
- test
- pack :子目录
- init.py :
- p.py
- t.py
- tmain.py
- pack :子目录
导入命名空间
# tmain.py
from pack.p import func1 # 这里import的是函数
func1()
# p.py
def func1():
print("p: twz1")
运行 tmain.py :
说明:p.py作为模块使用时其同级目录下要有_ _ init_ _.py文件,该文件可以什么都不写。
直接导入
# tmain.py
from pack import p # 这里import的是模块
p.func1()
# p.py
def func1():
print("p: twz1")
运行 tmain.py :
父目录导入
目录结构:
- test
- pack :子目录
- init.py :
- p.py
- t.py
- tmain.py
- pack :子目录
绝对路径
导入父级目录的模块想要使用相对路径的方式似乎不太可行,但是可以将父级目录添加到绝对路径再去导入。导入命名空间/直接导入的方式
# pmain.py
import sys # 下面的路径添加需要用到
sys.path.append('../') # 添加父级目录到绝对路径, "../" 表示上级目录
from t import func
func()
# t.py
def func():
print("t: twz")
运行 pmain.py :