数分正式篇之第四节


欢迎来到煊煊周末小课堂!蹭了非常善良的热心学长的网课,七次感谢!让我们一起祝福他飞黄腾达!
让我们继续上次的Python知识

异常处理

try:
	var=float(input("请输入数字:"))
	print(1/var)
except ZeroDivisionError:
	print("分母不能为0")
except ValueError:
	print("值错误")
print("其他语句不受影响")

当不知道是什么异常的时候,可以用exception通用
finally,最终执行操作,格式如下:

try:
#except:
finally:

如果想看具体的异常信息的时候,再用raise抛出异常即可,不想看在注释掉,例如:

try:
	var=float(input("请输入数字:"))
	print(1/var)
except ZeroDivisionError:
	print("分母不能为0")
raise ZeroDivisionError

import语句

#语法1
import math
math.sqrt(4)
#语法2
from math import sqrt,log10
print(sqrt(4))
print(log10(10))
#语法3
import math as mm
mm.sqrt(4)
#以后会学到的
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#语法4,导入包下面的所有函数
from math import *

生成器与迭代器

#iter()创建爱你迭代器
dict={'a':1,'b':2,'c':3}
dict_iter=iter(dict)
#next实现迭代
next(dict_iter)
#也可以用for循环来实现
for i in dict_iter:
	print i

当执行第一次迭代时,输出a,第二次执行的时候输出b,第三次执行的时候输出c。第四次显示执行结束。
生成器:一边循环一边计算的一种计算机制

#复习列表推导式生成列表
#L=[x*x for x in range(5)]
#print(L)
#创建生成器
g=[x*x for x in range(5)]
print(next(g))
print(next(g))
print(next(g))

输出:

0
1
4

用for循环来继续实现上述功能

for i in g:
	print(i)

此时输出:

9
16

没错,他会接在上面的语句继续输出,因为生成器会记住上次的位置
通过函数创建生成器,yield:

#普通写法
def seq(max):
	x=1
	d=2
	while x<max:
		print(x)
		x+=d
seq(7)

输出:

1
3
5
#用yield来实现上面功能
def seq_g(max):
	x=1
	d=2
	while x<max:
		yield(x)
		x+=d
seq_g(7)

此时输出不会有内容

next(seq_g(7))

此时才会一个一个的显示1,3,5

类和对象

这里其实主要概念都和其他面向对象语言没什么区别

#创建Animal类
class Animal:
	def __init__(self,name,age):
		self.name=name
		self.age=age
	def sit(self):
		return self.name+" is now sitting"
#创建对象或者说类的实例
dog=Animla('汪汪',3)
print(dog.name)
print(dog.age)
dog.sit()
#创建新对象
cat=Animal('喵喵',2)
#创建Dog类,继承Animal
classs Dog(Animal)def sit(self):
		print(self.name+"is now sitting.my age is%d"%self.age)
Taidi=Dog('小太',2)
Taidi.name
Taidi.sit()

文件读取

#文件读取
file_object=open('../data/pi.txt')
contents=file_object.read()
print(contents)
#文件关闭,文件使用后必须关闭
file_object.close()

with open:文件读写可能出现异常,后面的close方法就不会调用,此时Python引用了with语句就可以自动调用close()方法。

with open('../data/pi.txt') as file_object:
	contents=file_object.read()
	print(contents)

逐行读取

with open('../data/pi.txt') as file_object:
	contents=file_object.readline()
	print(contents)

此时输出就会只读取第一行内容
多行读取:

with open('../data/pi.txt') as file_object:
	contents=file_object.readlines()
	print(contents)

此时输出是以列表形式输出,比如['第一行的内容\n','第二行的内容\n']
但此时也可以用引用contents[0]的方式引用第一行
strip:去除字符串两端的空格以及换行符,比如contents[0].strip()

L=[]
for i in contents:
	L.append(i.strip())
print(L)

文件写入

#后面的参数w代表以写入的方式打开文件
with open('../data/pi.txt','w') as file_object:
	file_object.write("哈哈")
	file_object.write("嘿嘿")
#后面的参数a代表append追加
with open('../data/pi.txt','a') as file_object:
	file_object.write("追加的内容")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值