python学习实验报告(第八周)

本文通过实例演示如何在Python中处理用户输入异常,如非整数输入和范围问题,以及如何处理文件读写时的异常,确保程序健壮性。通过random模块生成随机数,os.path模块实现文件操作的异常捕获与创建。
摘要由CSDN通过智能技术生成

一、实验目的

1. 了解异常基本概念及其常见表现形式

2. 理解异常出现的各种原因和处理异常的必要性

3. 掌握常用的异常处理结构

二、实验内容及结果

1. 编写程序,让用户输入两个整数start和end,然后输出这两个整数之间的一个随机数。要求考虑用户输入不是整数的情况,以及start>end的情况。根据实际情况进行适当提示或输出。

import random

my_input = input("请输入两个整数start和end(start>end,且用空格分隔):")
start, end = [eval(i) for i in my_input.split(" ")]
judge_int = isinstance(start, int) and isinstance(end, int)
judge_gl = start <= end
while not judge_int or not judge_gl:
    if not judge_int:
        my_input = input("start或end不是整数,请重新输入:")
    else:
        my_input = input("start大于end,请重新输入:")
    start, end = [eval(i) for i in my_input.split(" ")]
    judge_int = isinstance(start, int) and isinstance(end, int)
    judge_gl = start <= end
print("输出{}和{}之间的一个随机数:{}".format(start, end, random.randint(start, end)))

图片描述

2. 编写程序,在指定文件路径读方式打开指定文件名,要求如果文件不存在提示异常错误并且创建新的同名文件。

import os

direc = input("请输入要读取文件的路径:")
filename = input("请输入要读取的文件名:")
file = os.path.join(direc, filename)
if os.path.isfile(file):
    with open(file, "r", encoding="utf-8") as fread:
        print("文件存在,以只读方式打开:", file)
else:
    with open(file, "w", encoding="utf-8") as fwrite:
        print("文件不存在,新建该文件:", file)

图片描述
图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验名称:Python万年历 实验目的:使用Python编写一个可以输出任意年份和月份的日历的程序,并学习Python的基本语法和日期时间模块的使用。 实验步骤: 1. 导入模块 在Python中要使用日期时间模块,需要先导入模块。在程序的开头使用以下代码导入日期时间模块。 ```python import datetime ``` 2. 输入年份和月份 使用`input()`函数让用户输入要查询的年份和月份。 ```python year = int(input("请输入要查询的年份:")) month = int(input("请输入要查询的月份:")) ``` 3. 获取当月第一天的星期几 使用`datetime.date()`函数获取当月第一天的日期,再使用`.weekday()`函数获取星期几。 ```python first_day = datetime.date(year, month, 1) weekday = first_day.weekday() ``` 4. 计算当月天数 使用`datetime.timedelta()`函数计算当月的天数。 ```python if month == 12: days = (datetime.date(year+1, 1, 1) - datetime.timedelta(days=1)).day else: days = (datetime.date(year, month+1, 1) - datetime.timedelta(days=1)).day ``` 5. 输出日历 使用循环输出当月的日历。 ```python print("日 一 二 三 四 五 六") for i in range(weekday): print(" ", end="") for i in range(1, days+1): if i < 10: print("", end=" ") print(i, end=" ") if (i+weekday) % 7 == 0 or i == days: print("") ``` 6. 完整代码 ```python import datetime year = int(input("请输入要查询的年份:")) month = int(input("请输入要查询的月份:")) first_day = datetime.date(year, month, 1) weekday = first_day.weekday() if month == 12: days = (datetime.date(year+1, 1, 1) - datetime.timedelta(days=1)).day else: days = (datetime.date(year, month+1, 1) - datetime.timedelta(days=1)).day print("日 一 二 三 四 五 六") for i in range(weekday): print(" ", end="") for i in range(1, days+1): if i < 10: print("", end=" ") print(i, end=" ") if (i+weekday) % 7 == 0 or i == days: print("") ``` 实验结果: 输入年份和月份,程序会输出该月的完整日历,例如输入2022年3月,输出结果如下: ``` 请输入要查询的年份:2022 请输入要查询的月份:3 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ``` 实验总结: 通过这个实验,我学习Python的基本语法和日期时间模块的使用,并且实现了一个实用的小程序。在编写代码的过程中,我也遇到了一些问题,例如计算当月天数时需要考虑闰年的情况,但是通过查找资料和思考,我最终解决了这些问题。这个实验让我更加深入地了解了Python语言,也为我今后的编程学习打下了基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值