20231213 实验一《Python程序设计》实验报告

20231213 2024-2025-2 《Python程序设计》实验一报告

课程:《Python程序设计》
班级: 2312
姓名: 蔡明辉
学号:20231213
实验教师:王志强
实验日期:2025年3月12日
必修/选修: 公选课

一.实验内容

1.熟悉Python开发环境;
2.练习Python运行、调试技能;
3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;
4.掌握git技能;

二. 实验过程及结果

熟悉Python开发环境

  • 安装python
    image

  • 安装PyCharm并练习编写程序
    image

  • 注册Gitee并创建库
    image

编写猜数程序

  • 设计过程
    将游戏的主体封装在game_guess_number()函数中
    使用一个外层循环来控制游戏的开始和结束
    首先输入猜测数字的起始范围和结束范围。
    接着输入允许的最大猜测次数。
    如果最大猜测次数大于或等于数字范围的总数,则提示重新输入,避免通过穷举法直接猜中数字,确保游戏具有挑战性。
    生成随机数后进入循环,在最大尝试次数内进行猜测。根据输入进行反馈提示,知道猜中或超出尝试次数
    在循环中合理地放置计数器的增加,确保逻辑正确,特别是在最后一次尝试时猜中数字的情况
  • 实验代码
# 日期 2025/3/12
import random
def game_guess_number():
    #luckynum = 231213
    print('='*10+'猜数游戏'+'='*10)
    while True:
        start = int(input('猜数起始范围'))
        end = int(input('猜数结束范围:'))
        max1 = int(input('最大猜数次数:'))

        if end - start + 1 <= max1:
            print('请不要作弊,尝试次数要小于可能数,请重新输入')
        elif max1 == 1:
            print('尝试次数太少了,请重新输入')
        else:
            break

    luckynum = random.randint(start, end)
    guess = 0
    count = 0

    while  count < max1:
        guess = int(input(f'请输入一个{start}—{end}之间的整数:'))
        if guess > luckynum:
            print('猜测的数字太大了,请再试一次。')
        elif guess < luckynum:
            print('猜测的数字太小了,请再试一次。')
        else:
            break
        count += 1 #修改在循环最后,防止恰好在最大尝试次数成功时判定为失败

    if count >= max1:
        print(f'很遗憾,在{max1}次内你没有猜到正确的数字。\n正确的数字是:{luckynum}')
    else:
        print(f'恭喜你,猜对了。共猜{count}次。')

play_again = 1
while play_again:
    game_guess_number()
    sign = input('输入0退出,其它任意键继续:')
    if sign == '0':
        print('='*10+'游戏结束'+'='*10)
        break

设置断点并调试

image

实验结果

image

将代码上传至Gitee

image
https://gitee.com/cloud-lumiere/2025-python-course/blob/master/猜数.py

三. 实验过程中遇到的问题和解决过程

  • 问题1:次数的判断条件与循环的控制条件不一致
  • 问题1解决方案:修改判断猜数是否正确后再加次数计数

思考与感悟

由于有较好的python自学基础,本次实验进行顺利
本次的实验拓展了pyinstaller相关内容,学习如何用pyinstaller将代码文件转化为exe文件,方便非专业人士使用

参考资料

posted @ 2025-03-12 20:08  lumiere_cloud  阅读(60)  评论(1)    收藏  举报