《毫无障碍学Python》邓文渊著 学习笔记
1.函数
1.1 函数基本
(1)语法:
.
def 函数名(参数1,参数2,参数3,…): #参数可无
程序块
return 返回值1,返回值2,返回值3… #返回值可无
#输入摄氏求华氏
def cToF(c):
f = c*1.8+32
return f
inputc = float(input("Plaese input ℃:"))
print("The 华氏度 is %.1f"%cToF(inputc))
(2)参数顺序:
def A(a1,a2):
return a1*a2
a = A(1,2) #同下及下下
a = A(a1 = 1,a2 = 2)#同上及下
a = A(a2 = 2,a1 = 1)#同上及上上
(3)参数缺省:缺省值参数必须在后
def GetArea(w,h=10): #缺省值参数必须为后
return w*h
rel1 = GetArea(6) #rel1 = 6*10
(4)不定参函数
语法:
*def 函数名称(参数)
…
#不定参函数解决求n个参数的总和
def calsum(*params): #python通过元组的方式把所有参数存于params元组中
total = 0
for param in params:
total +=param
return total
print(calsum(2,3))
print(calsum(2,3,4))
print(calsum(2,3,4,5))
(5)变量有效范围 :
- 全局变量:定义在函数外的变量,有效范围整个python文件
- 局部变量:定义在函数内的变量,在函数内有效
局部变量和全局变量同名,函数内使用局部,函数外使用全局
def scope():
v1 = 1
print(v1,v2)
v1 = 10
v2 = 20
scope() #v1 == 1,v2 == 20
print(v1,v2) #v1 == 10,v2 == 20
若要在函数内使用全局变量,需要在函数内部用global关键字声明
def so():
global v1 #声明v1是全局变量
v1 = 1 #把全局变量的值改为1
v2 = 2
print(v1,v2)
v1 = 10
v2 = 20
so() # 1 2
print(v1,v2) # 1 20
(6)系统内置函数
python 常用系统内置函数 |
---|
abs(x) 返回x的绝对值 |
chr(x) 返回x所表示的字符 #chr(65) 即A |
divmod(x,y) 返回x除以y的商及余数组成的元组 #divmod(44,6) 即 (7,2) |
float(x) 将x转换为浮点数 |
hex(x) 将x转化为十六进制数 |
int(x) 将x转换为整数 |
len(x) 返回参数x的元素个数 len([1,3,5,7]) 即4 |
max(列表型参数) 返回列表型参数中最大值 |
min(列表型参数) 返回列表型参数中最小值 |
oct(x) 将x转化为八进制数 |
ord(x) 返回x的Unicode编码 ord(“我”) ->25105 |
pow(x,y) x的y次方 pow(x,y,z) 表示x的y次方除以z的余数 |
round(x) 返回x的四舍六入 round(x,y) 4及以下舍,6及以上进位,5则前一位偶舍奇进round() round(3.65,1)->3.6,round(3.75,1)->3.8 |
sorted(列表) 由小到大排列 默认 小->大 排 若用reverse = true作为第二个参数,则大->小 |
str(x) 将x转换成字符串 |
sum(列表) 计算列表中元素总和 |
type(对象) 返回对象的数据类型 |
innum = 0
list1 = []
while(innum!=-1):
innum = int(input("Please input a positive integer(end of -1):"))
list1.append(innum)
list1.pop()
print("integer number:%d"%len(list1))
print("max is %d"%max(list1))
print("min is %d"%min(list1))
print("sum is %d"%sum(list1))
print("from large to small:{}".format(sorted(list1,reverse = True)))
2.导入包
python有很多内建包(package,包,亦称模块)
- 内建包导入1:import 包名称
import random # random产生随机数的内建包
包中有许多函数,使用语法:包名称.函数名称
- 包导入2: from 包名称 import , 则使用包中函数可不写包名,可能产生同名函数错误风险,则3
- 包导入3: from 包名称 import 函数一,函数二,…
- 包导入4: import 包名称 as 别名 则可用 别名.函数名 调用
3.文件管理 和 目录管理
os (提供创建目录、删除目录、删除文件、执行操作系统命令等),使用时必须导入os包
remove()方法:删除指定文件,一般结合os.path的exists()方法使用,即先检查该文件是否存在,再决定是否删除该文件
import os
file = "myFile.txt"
if os.path.exists(file):
os.remove(file)
else:
print(file+" coule not be found!")
.
mkdir()方法:可创建指定名称的目录,执行后在当前目录创建目录,若该目录存在则会产生错误,所以一般先检查该目录是否存在,再决定是否创建该文件(创建一级目录)
import os
dir = "myDir"
if not os.path.exists(dir):
os.mkdir(dir)
else:
print(dir+" already exists!")
os.makedirs()函数可创建多级目录
os.makedirs('d:\\books\\book') #os.makedirs()函数创建多级目录
.
rmdir()方法:可删除指定目录,删除目录前必先删除其中文件,一般检查目录是否存在再决定是否删除目录
import os
dir = "MyDir"
if os.path.exists(dir):
os.rmdir(dir)
else:
print(dir+" dir coule not be found!")
.
system()方法:执行操作系统命令
import os
cur_path = os.path.dirname(__file__) #取得当前路径
os.system("cls") #清屏
os.system("mkdir dir2") #创建dir2目录
os.system("copy ossystem.py dir2//copyfile.py") #复制文件
file = "d://python_code//dir2//copyfile.py"
os.system("notepad "+file) #以记事本打开copyfile.py文件
os.path 用于处理文件路径及文件名称、检查文件或路径是否存在或计算文件大小
首先导入os.path 包 import os.path
包含方法:
abspath() 返回文件完整路径名 |
basename() 返回文件路径名最后部的文件或路径名,若测试的是文件返回文件名,测试的是路径会返回路径最后部分 |
dirname() 返回指定文件完整路径,用dirname(file)则可以取得当前目录路径 |
exists() 检查指定文件或路径是否存在 |
getsize() 返回指定文件大小(Bytes) |
isabs() 检查指定路径是否是为完整路径 |
isfile() 检查指定路径是否为文件 |
isdir() 检查指定路径是否为目录 |
split() 把文件路径分割为路径和名称 |
splitdrive() 把文件路径名分割为磁盘名和文件路径名 |
join() 把路径和文件名和并成完整路径 |
import os.path
cur_path2 = os.path.dirname(__file__) #获取当前目录路径
print("current file rout is "+cur_path2)
filename = os.path.abspath(__file__)
if os.path.exists(filename):
print("当前目录路径为:"+filename)
print("文件大小:",os.path.getsize(filename))
basename = os.path.basename(filename)
print("路径最后的文件名为:"+basename)
dirname = os.path.dirname(filename)
print("当前文件路径为:"+dirname)
print("是否为目录:",os.path.isdir(filename))
fullpath,fname = os.path.split(filename)
print("目录路径:"+fullpath)
print("文件名称:"+fname)
Drive,fpath = os.path.splitdrive(filename)
print("盘名:"+Drive)
print("路径名称:"+fpath)
fullpath = os.path.join(fullpath+"\\"+fname)
print("合并路径为="+fullpath)
os.walk 用于搜索指定目录及其子目录,它会返回一个包含三个元素的元组分别为:文件夹名、下一层文件夹列表、文件夹中所有文件列表
import os
cur_path = os.path.dirname(__file__) # 取得当前路径
sample_tree = os.walk(cur_path)
for dirname2,subdir,files in sample_tree:
print("文件路径:",dirname2)
print("目录列表:",subdir)
print("文件列表:",files)
print()
shutil包 一个可跨平台的文件处理包
导入包:import shutil
常用方法: |
---|
copy(src,dst) 复制src(源文件)到dst(目标文件) |
copytree(src,dst) 将src目录及目录中所有文件复制到dst |
rmtree(dir) 删除dir目录和目录中所有文件 |
move(src,dst) 将src目录转移到dst(转移后源文件被删除) |
glob包 可返回指定条件下的文件列表
导包 import glob
glob.glob(“路径名称”) #glob.glob方法指定条件的文件列表,文件路径可指定确定名称,也可使用通配符" * "
import glob
files = glob.glob("day20190331笔记.py")+glob.glob("day*.py")+glob.glob("*.txt")
for file in files:
print(file)