导图社区 Python基本概念
Python基本概念
函数
def <函数名>(<参数(0个或多个)>): <函数体> return <返回值>
参数
可选参数传递 def <函数名>(<非可选参数>,<可选参数>): <函数体> return <返回值> 如:def fact(n,m=1):
可变参数传递 def <函数名>(<参数>,*b): <函数体> return <返回值>
函数定义时可以设计可变数量参数,即不确定参数总数量
参数传递 如:def fact(n,m=1):
位置传递 如:fact(10,5)
名称传递 如fact(m=5,n=10)
返回值
return保留字用来传递返回值
函数可以有返回值,也可以没有,可以有return,也可以没有
return可以传递0个返回值,也可以传递任意多个返回值
局部变量和全局变量
局部变量和全局变量是不同变量
局部变量为函数内部的占位符,与全局变量可能重名但不同
函数运算结束后,局部变量被释放
可用global保留字在函数内部使用全局变量
局部变量为组合数据类型且未创建,等同于全局变量
lambda函数
<函数名>=lambda<参数>:<表达式>
匿名函数,函数名是返回结果
数据处理
一维数据
表示
有序:列表类型
无序:集合类型
存储
空格分隔
逗号分隔
其他:使用其他符号或符号组合分隔
处理
读出 txt=open(fname).read() ls=txt.split()[若非空格,加特殊符号] f.close()
写入 f=open(fname,'w') f.write(' '.join(ls))[若非空格,加特殊符号] f.close
二维数据
表示:两层列表类型
存储
CSV格式
一般索引习惯:ls[row][column],先行后列 根据一般习惯,外层列表每个元素是一行,按行存
处理
从CSV格式文件中读入数据 fo=open(fname) ls=[ ] for line in fo: line=line.replace("\n"," ") ls.append(line.split(",")) fo.close()
将数据写入CSV ls=[[ ],[ ],[ ]] f=open(fname,'w') for item in ls: f.write(','.join(item)+'\n') f.close()
采用二层循环逐一处理 for row in ls: for column in row: print(column)
多维数据
由一维或二维数据在新维度上扩展形成
高维数据
仅利用最基本的二元关系展示数据间的复杂结构
文件的使用
类型
文本文件 .txt,.py
二进制文件 .png,.avi
打开
打开模式
r只读,默认值,若文件不存在,返回FileNotFoundError
w覆盖写,存在则完全覆盖,不存在则创建
x创建写,不存在创建,存在返回FileExistsError
a追加写,不存在创建,存在在则在文件最后追加内容
b二进制文件模式
t文本文件模式,默认值
+与r/w/x/a一同使用,在原功能基础上增加同时读写功能
关闭 <变量名>.close()
内容的读取
<f>.read(size=-1)读入全部内容,若有参数,读入前size长度
<f>.readline(size=-1)读入一行内容,若有参数,读入该行前size长度
<f>readlines(hint=-1)读入所有行,以每行为元素形成列表,若有参数,读入前hint行
遍历文本
全文本
一次读入,统一处理 fname=input("请输入要打开的文件名称:") fo=open(fname,"r") txt=fo.read() fo.close()
按数量读入,逐步处理 fname=input("请输入要打开的文件名称:") fo=open(fname,"r") txt=fo.read(2) while txt !=" ": txt=fo.read(2) fo.close()
逐行遍历
一次读入,分行处理 fname=input("请输入要打开的文件名称:") fo=open(fname,"r") for line in fo.readlines(): print(line) fo.close()
分行读入,逐行处理 fname=input("请输入要打开的文件名称:") fo=open(fname,"r") for line in fo: print(line) fo.close()
数据的文件写入
<f>.write(s)写入一个字符串或字节流
<f>.writelines(lines)将一个元素全为字符串的列表写入文件
<f>.seek(offset)改变指针位置 offset含义:0-文件开头;1-当前位置;2-文件结尾 注:文件输出要注意指针位置