20241307 实验一 《Python程序设计》实验报告
20241307 2024-2025-2 《Python程序设计》实验一报告
课程:《Python程序设计》
班级: 2413
姓名: 张岳峰
学号:20241307
实验教师:王志强
实验日期:2025年3月12日
必修/选修: 公选课
1.实验内容
1.熟悉Python开发环境;
2.练习Python运行、调试技能;(编写书中的程序,并进行调试分析,要有过程)
3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;(编写一个猜数字或猜拳的游戏)
4. 掌握git技能
2. 实验过程及结果
1、安装 python
2、配置 pycharm的 python 环境,下载一些有用的插件
2、熟悉 pycharm的 python 环境,熟悉一下pycharm终端和操作台
4、跟着老师编写书中的猜数字、与机器人程序等,并进行调试分析
5、链接git库并将代码上传至个人码云主页
下载pycharm并配置项目链接个人gitee库:
编写猜数代码,代码如下:
代码实现过程如下:
-
导入模块
import random
此语句的作用是导入random模块,该模块能生成随机数,在后续生成待猜数字时会用到。 -
打印游戏信息
print("""
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
欢迎来到猜数字游戏!你值得拥有!
猜数字1.0版本
请支持正版,V我50!
Pyinstaller:pip install pyinstaller
pyinstaller -F 猜数字.py
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★版权:zyf 开发时间:2025年植树节 适度娱乐,不要沉迷游戏!严禁未满18岁儿童使用。 哈哈哈哈哈哈哈哈哈哈哈哈哈 我命由我不由天!!哈哈
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
""")
这里使用字符串打印了游戏的相关信息
3. 获取游戏难度
level = int(input("请输入难度(三岁小孩:30,五岁小孩:50,十岁小孩:100,......):"))
借助input函数让用户输入游戏难度,接着使用int函数将用户输入的字符串转换为整数类型,存储在变量level中。该变量会用于确定随机数的范围。
4. 生成待猜数字
luckynum = random.randint(1,level)
利用random.randint(1, level)函数生成一个介于 1 和level之间(包含 1 和level)的随机整数,将其作为待猜的数字,存储在变量luckynum里。
5. 获取首次猜测
guess = int(input("请输入你猜的数字:"))
通过input函数让用户输入猜测的数字,再用int函数将输入的字符串转换为整数类型,存储在变量guess中。
6. 循环猜测过程
python
while True:
if guess == luckynum:
print("恭喜你,猜对了!哈哈哈哈")
break
else:
print("哈哈,你猜错了!")
if guess > luckynum:
guess = int(input("大了,请继续输入你猜的数字:"))
else:
guess = int(input("小了,请继续输入你猜的数字:"))
这是一个无限循环while True,用于持续让用户猜测数字,直至猜对为止。
若guess等于luckynum,则表明用户猜对了,打印恭喜信息,并用break语句跳出循环,结束游戏。
若guess不等于luckynum,则打印猜错信息,接着判断guess与luckynum的大小关系:
若guess大于luckynum,提示用户猜大了,让用户继续输入猜测的数字。
若guess小于luckynum,提示用户猜小了,让用户继续输入猜测的数字。
运用debug设置三个断点调试一下,while语句,if-else结构:
运行结果如下:
上传至git仓库:
顺便编写了猜拳程序,代码如下:
实现过程如下:
- 导入模块
import random
此代码行导入 random 模块,该模块用于生成随机数或从序列中随机选择元素,在这个程序里,主要用于模拟出拳的随机选择。 - 初始化变量
lost = 0
win = 0
scissorrockFive = ["剪刀","石头","布"]
lost:用于记录输掉的局数,初始值设为 0。
win:用于记录赢的局数,初始值设为 0。
scissorrockFive:这是一个列表,包含了剪刀石头布游戏中可能出现的三种出拳选项,即 "剪刀"、"石头" 和 "布"。 - 游戏循环
while win != 3 and lost != 3:
这是一个 while 循环,只要玩家赢的局数不等于 3 且输的局数也不等于 3,循环就会持续进行。也就是说,当玩家先赢得 3 局或者先输掉 3 局时,游戏结束。 - 机器人出拳和玩家出拳
robot = random.choice(scissorrockFive)
superman = input("请出拳:")
robot = random.choice(scissorrockFive):使用 random.choice() 函数从 scissorrockFive 列表中随机选择一个元素,将其作为机器人的出拳结果,并存储在变量 robot 中。
superman = input("请出拳:"):通过 input() 函数提示玩家输入出拳信息,玩家输入的内容会被存储在变量 superman 中。 - 判断游戏结果
if superman == robot:
print("平局!")
elif superman == "剪刀" and robot == "石头":
print("你输了")
lost += 1
elif superman == "剪刀" and robot == "布":
print("你赢了")
win += 1
elif superman == "石头" and robot == "布":
print("你输了")
lost += 1
elif superman == "石头" and robot == "剪刀":
print("你赢了")
win += 1
elif superman == "布" and robot == "剪刀":
print("你输了")
lost += 1
elif superman == "布" and robot == "石头":
print("你赢了")
win += 1
这里使用了一系列的 if-elif 语句来判断每一局游戏的结果:
如果玩家的出拳和机器人的出拳相同,那么判定为平局,打印 "平局!"。
对于其他不同的出拳组合,根据剪刀石头布的游戏规则来判断玩家是赢还是输:
如果玩家赢了,打印 "你赢了",并将 win 的值加 1。
如果玩家输了,打印 "你输了",并将 lost 的值加 1。 - 游戏结束判断
if win == 3:
print("你获胜了")
else:
print("你输了")
当 while 循环结束后,根据 win 和 lost 的值来判断整个游戏的最终结果:
如果 win 的值等于 3,说明玩家先赢得了 3 局,打印 "你获胜了"。
否则,说明玩家先输掉了 3 局,打印 "你输了"。
在每个if语句设置断点,调试一下每条条件的功能:
运行结果如图:
3. 实验过程中遇到的问题和解决过程
- 问题1:无法上传至git库,一上传就报错,上传成功在个人gitee仓库也找不到代码
- 问题1解决方案:在实验一配置过的项目创建新的python程序文件,重新链接git库上传并推送源程序,查询资料得知应该以管理员身份运行PyCharm才能上传。
- 问题2:不太了解python中利用while语句实现重复计算界面的语法用法
- 问题2解决方案:看教材、询问豆包帮我纠正代码错误,并学习到了while语句在python的正确用法
和C语言whlie语句区别具体如下:
- 问题3:python语法运用不熟练,编写程序报错
- 问题3解决方案:看教程查资料,多学习python语言语法,更好的编写程序
- ...
其他(感悟、思考等)
编写python代码时设计算法其实和c语言很像,甚至有相同的逻辑,这就是快速学习的基础。只需要了解python各个功能实现的语句,函数接口,和语法便可以运用学习C语言是高效的算法来实现。python的功能比C语言要更丰富一些,甚至可以对文字赋值运算。平时碰到代码报错不要直接给AI询问错误,逐渐尝试并熟练掌握Debug设置断点,可以自己分析并解决问题。AI可以大大提高资料搜索的效率,比翻书查找快很多,可以针对自己的问题给出解决方法和知识,学会合理运用AI,极大的提升学习效率,更快更好地掌握编程能力。
参考资料
- [《零基础学Python》]
- [《Python编程从入门到实践》]
- 豆包AI