python学习
- 这是一个龟兔赛跑的程序,接上昨天的内容。
# _*_coding : UTF-8_*_
# 开发团队 : 梦之队
# 开发人员 : User
# 开发时间 : 2020/8/20 10:48
# 文件名称 : 龟兔赛跑.PY
# 开发工具 : PyCharm
T = 0#表示时间
s1 = 0#兔子行驶的距离
s2 = 0#乌龟行驶的距离
v1 = input('兔子的速度:')
v1 = int(v1)
v2 = input('乌龟的速度:')
v2 = int(v2)
t = input('兔子刚刚停下休息时两者的距离:')
t = int(t)
s = input('兔子停下休息的时间:')
s = int(s)
l = input('路程总长:')
l = int(l)
while not(s1 == l or s2 == l):
if(s1 - s2 >= t):
s1 = s1
s2 += v2 * s
T += s
else:
s1 += v1
s2 += v2
T += 1
if(s1 == l and s2 == 20):
print('D')
elif(s1 == l):
print('R')
else:
print('T')
print(T)
兔子的速度:10
乌龟的速度:5
兔子刚刚停下休息时两者的距离:5
兔子停下休息的时间:2
路程总长:20
D
4
2.接下来一块全部是异常处理部分:
(1)try - expect语句:
首先,执行try子句;
如果没有异常发生,忽略expect子句,执行完try语句后结束;
如果try子句发生了异常,那么try子句剩下的部分将被忽略,如果异常的类型与expect后面的名称相符,那么对应的expect子句将被执行。最后执行try语句之后的代码;
try:
f = open('text.txt')
print(f.read())
f.close()
except OSError:
print('打开文件出错')
打开文件出错
一个try后面可以接多个expect语句。而只执行其中一个expect语句。
(2)try - expecct - finally语句
不管try中有没有异常发生,都会执行finally之后的语句。
def divide(x,y):
try:
result = x / y
print('result is', result)
except ZeroDivisionError:
print('division by zero!')
finally:
print('executing finally clause')
divide(2,1)
result is 2.0
executing finally clause
(3)try - expect - else语句
如果try子句执行时没有发生异常,将执行else后的语句
try:
fh = open('textfile','w')
fh.write('这是一个测试文件,用于测试异常!!')
except IOError:
print('Error:没有找到文件或读取文件失败')
else:
print('内容写入文件成功')
fh.close()
内容写入文件成功
(4)raise语句
raise语句可以抛出一个指定的异常
try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
An exception flew by!
3.下面是一个与抛出异常相关的程序
import random
num = random.randint(0,100)
print(num)
print('猜测一个0到100之间的整数')
print('第1次猜,请输入一个整形数字:')
try:
x = int(input())
except ValueError:
print('您输入的不是整数,请重新输入:')
x = int(input())
count = 2
while x != num:
if(x < num):
print('太小')
else:
print('太大')
print('第',count,'次猜,请输入一个整形数字:')
try:
x = int(input())
except ValueError:
print('您输入的不是整数,请重新输入:')
x = int(input())
count += 1
print('恭喜你猜到了这个数是:',x)
28
猜测一个0到100之间的整数
第1次猜,请输入一个整形数字:
5
太小
第 2 次猜,请输入一个整形数字:
l
您输入的不是整数,请重新输入:
9
太小
第 3 次猜,请输入一个整形数字:
28
恭喜你猜到了这个数是: 28