# num = 0 # 上一次执行时的次数 with open('resource/count.txt', encoding='utf-8') as f: num = int(f.read()) num += 1 print(num) with open('resource/count.txt', 'w', encoding='utf-8') as f: f.write(str(num))
程序报错又叫程序出现异常;如果在执行程序的异常中出现异常,那么这个程序会在出现异常的地方结束
print('========') list1 = [1, 2] # print(list1[3]) print('-----------')
异常捕获就是让程序在出现异常的时候不崩溃,可以继续执行
什么时候捕获异常:明明知道某段代码可能会出现异常,但是又没有办法或者必要去通过修改这段代码来避免异常的时候,就可以使用异常捕获
语法一:
try:
代码段1(需要捕获异常的代码段)
except:
代码段2(出现异常后会执行的代码)
其他语句。。。
执行过程:先执行代码段1,如果没有出现异常不执行代码段2直接执行后面其他语句;
如果出现异常,程序不崩溃,马上执行代码段2,执行完后才执行后面其他的语句。
语法二:
try:
代码段(需要捕获的代码段)
except 异常类型:
代码段2()出现指定异常后执行的代码
语法三:
try:
代码段1(需要捕获异常的代码段)
except(异常类型1,异常类型2,…):
代码段2(异常出现异常后执行的代码)
语法四:
try:
代码段1(需要捕获异常的代码段)
except 异常类型1:
代码段2(异常出现异常后执行的代码)
except 异常类型2:
代码段3(异常出现异常后执行的代码)
except 异常类型3:
代码段4(异常出现异常后执行的代码)
try: age = int(input('请输入年龄:')) except: print('输入的年龄有误!') print('游戏!')
写在其他语句代码块之前的语句,
所有的try-except结构后面都可以跟一个finally,它不影响原来代码的执行。
finally后面的代码段,不管前面的try-except发生什么,都会执行(包括出现异常没有捕获到)
print('================================') try: print([1, 2][0]) except: print('出现异常') finally: print('最后的挣扎') print('其他语句')
randint(m, n) - 产生m-n的随机整数
random() - 产生[0,1)的随机小数
# random.random()*x - y - 产生[y,x+y)的随机小数 print(random.random()) print(random.random()*100) # - 产生[0,100)的随机小数 print(random.random()*10 + 10) # - 产生[10, 20)的随机小数
random.shuffle(列表) - 洗牌(随机打乱列表中元素的顺序)
nums = [10, 20, 50, 44, 64] random.shuffle(nums) print(nums)
random.choice(列表) - 从列表中随机获取一个元素
# random.choices(列表,k = N) - 从列表中随机获取N个元素 nums = [10, 20, 50, 44, 64] print(random.choice(nums)) nums = [10, 20, 50, 44, 64] print(random.choices(nums, k=2))