python学习

  1. 这是一个龟兔赛跑的程序,接上昨天的内容。
# _*_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