file.read(1) 读取一个字符
file.seek(0) 将file的指针只想位置0,即文件开始位置
file.tell() 显示文件指针当前位置
file5 = open("name.txt")
fior line in file5.readlines():
print(line)
表示逐行读取文件
file.readline() 表示读取一行文件
file.open("name.txt","w')表示可以写入该文件,默认为r,只读
file.open("name.txt","a')表示可以写入该文件,并且在该文件末尾添加新的内容,如果是w就会覆盖原来的内容
try:
检测异常
except Exception[,reson]:
except ValueError:
except [ValueError,KeyError]: //多个类型的异常捕获
异常处理
finally:
无论异常是否发生,都要执行
try:
print(1/0)
except ZeroDivisionError as c:
print("0不能作为除数 %s" %c)
捕获所有的异常
try:
print(1/0)
except Exception as c:
print("0不能作为除数 %s" %c)
try:
raiseNameError("helloworld)
except NameError:
print("my custom error")
file5 = open("name.txt",encoding="GB18038")支持中文的一个编码
字典的格式
dict{"哈希值":"对象","length":180,"width":80}
dict1={'x':1."y":2}
dict1["z"]=3 //给字典增加一个新的值
//读取字典中的所有值
for each_key in dict1.keys():
print(“%s 的值式 %s”%(each_key,dict1[each_key])) //输出key和value
列表推导式
blist=[i*i for i in range(1,11) if(i%2==0)]
字典推导式
z_num={}
fir i in zodiac_name:
z_num[i]=0
推导之后 z_num ={i:0 for i in zodiac_name}
22.函数
line.strip("\n) 删除换行符
data.split("|") 把字符串用符号“|”分开得到一个列表
with open("sanguo.txt",encoding="GB18038")as f://with会把open得到的值赋值给f
data =f.read().replace("\n","")//读取f中的内容,并且将换行符替换为空
num=re.find(String,data) //需要import re,这个表示String在data中出现的次数,如果出现三次,那么返回值num就会得到一个list=[String,String,String],如果要的得到数字,可以用len(num)
23.函数的可变长参数
def func(a,b,c)
print("a= %s" %a)
print("b= %s" %b)
print("c= %s" %c)
func(1,2,3)得到1,2,3
func(1,c=3,b=2) a,b,c仍然得到的结果是1,2,3, 这个和java不同,可以改变参数位置
def howlong(first,*other)://参数至少要一个,后面随意多少个
print(1+len(other))
howlong(1) //得到1
howlong(1,5543,543)//得到3
24.函数的作用域
var=123
def func():
global var //加了这句,会影响外部的var的值
var=456
print(var)
func()//得到456,
print(var)//得到123 ,因为这个变量只在函数内部变成456,若是在func中 的 var 前面加一个关键字 global,那么得到的结果就是456,因为加了global就可以看成是全局变量的赋值了
25.函数的迭代器和生成器
list=[1,2,3]
it =iter(list)
print(next(it)) //一次输出一个值,超过三次就会报错,因为list的长度是3
def frange(start,stop,step):
x=start
while x<stop:
yield x //使用yield可以让函数一次返回一个值,如果没有这句,下方调用就会报错
x+=step
for i in frange(10,20,0.5):
print(i)
26 Lambda 表达式
lambda x: x<=(month,day) 和下面的函数相等
def function(x)
return x<=(month,day)
lambda x,y:x+y 和下面函数相等
def add(x,y)
return x+y
add(3,5)
lambda item:item1 和下面的函数相等
def func2(item):
return item[1]
adict={'a':'aa','b':'bb'}
for i in adict.items():
print(func2(i))
31.装饰器的使用
def tips(func):
def nei(a,b):
print("start")
func(a,b)
print("end")
return nei
@tips
def add(a,b):
print(a+b)
add(4,5) //输出结果为 start end
print(add(4,5)) //输出届比上面多了一个None
def new_tips(argv):
def tips(func):
def nei(a,b):
print("start %s %s" %(argv,func.__name__)) //可以接受外部的参数argv,获取调用函数的名字
func(a,b)
print("end")
return nei
return tips
@new_tips("add1") //括号中的参数,和方法不是同一个东西
def add(a,b):
print(a+b)
@new_tips("sub")
def sub(a,b):
print(a-b)
add(4,5)
sub(4,5)
结果如下所示:
start add1 add
9
end
start sub sub
-1
end
32.自定义上下文管理器
fd=open("name.txt")
try:
for line in fd:
print(line)
finally:
fd.close()
下面的代码和上面代码功能相同,当使用with打开文件时,若开出现异常那么with会自动掉用close函数来关闭文件
with open ("name.txt") as f:
for line in f:
print(line)
33.模块的定义
import os //库函数
import time as t//库函数 t.time()
import matplotlib as m //库函数,可以把函数的名称简化然后使用
from time import sleep //这样写就可以直接使用sleep(),不需time作为前缀,但是不建议这样写,因为在其他的库函数里面可能也会有sleep这个方法,防止代码混淆
sleep()
import mymode //mymode自己写的模块,在另一个文件中调用这个模块的print方法,这个print是自定义的,不是系统的print
mymode.print()
34.语法规范
PEP8 编码规范 https://www.python.org/dev/peps/pep-0008/
在 DOS 下输入 pip3 install autopep8
在pycharm里面右键鼠标使用pep8,就可以对代码作自动的格式整理