python编程开发“人机猜拳”游戏
👨💻个人主页:@开发者-曼亿点
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 曼亿点 原创
👨💻 收录于专栏:机器学习
⭐🅰⭐
—
文章目录
- ⭐🅰⭐
- ⭐前言⭐
- 🎶 一、while语句
- 🎶 二、for语句
- 1.基本语法格式
- 2.range()函数
- 🎶 三、嵌套的循环语句
- 🎶 四、break 和 continue 语句
- (1)break 语句
- (2)continue 语句
- 结束语🥇
⭐前言⭐
“人机猜拳”游戏模拟用户和计算机连续猜拳,一方先赢3次则取得胜利。由于需要进行多次猜拳,须使用循环结构来实现,即利用循环语句让程序执行某些重复操作,然后利用跳转语句结束循环。本任务将带领大家编写Python 程序,开发“人机猜拳”游戏。
循环语句可分为 while 语句、for 语句和嵌套的循环语句。跳转语句可分为break语句和continue 语句。
🎶 一、while语句
while 语句的基本语法格式如下。
while 判断条件:
语句块 #循环体
上述语句的执行过程是:当判断条件为True时,执行循环体;接着再次判断条件,如果为 True,继续执行循环体;如此反复,直到判断条件为False 时结束循环,执行while语句后的语句。
【温馨提示】
while 语句是“先判断,后执行”。如果刚进入循环时判断条件就不满足,则循环体一次也不执行。还需要注意的是,循环体中一定要有语句修改判断条件,使其有为 False的时候,否则将出现“死循环”。
【例1】 输入一个整数n,求 S=1+2+3+…+n 的值。
【题目分析】 本例题可使用循环结构来实现。重复执行循环体n次,每次加一个数继续分析发现,每次累加的数是有规律的,后一个数是前一个数加1。因此,只需在加完上一个数i后,使i加1就可得到下一个数。
【参考代码】
n= int(input('请输入一个整数:')) #输入n的值,并转换为整数
i =1 #创建变量 i,赋值为 1
S =0 #创建变量 S,赋值为 0
while i <= n: #循环,当 i>n 时结束
S += i # 求和,将结果赋给 S
i += 1
#变量i加1
print('S=1+2+3+…+n=',S) #输出S的值
运行结果:
在使用while 语句时,需要注意以下两点。
(1)变量初始化描述要完整、准确。例如,在例 1中,在while语句前要对变量i和S进行初始化。
(2)在循环体中应有使循环趋于结束的语句。例如,在例1中循环结束的条件是“i>n”。因此,循环体中应有使;增大并最终大于n的语句,这里用“i+=1”语句来达到此目的,如果没有这条语句,则i的值始终不变,就会形成死循环。
🎶 二、for语句
1.基本语法格式
for 语句的基本语法格式如下。
for 变量 in 序列:
语句块 #循环体
上述语句的执行过程是:如果序列中包含表达式,则先进行求值计算;然后,列中的第一个元素赋给变量,执行循环体;接着序列中的第二个元素赋给变量,执行循环体;依此类推,直到序列中最后一个元素赋给变量,执行循环体后for 循环结束,执行 for 语句后的语句。
例如,使用 for 循环输出字符串“python”中的每一个字符,可使用下面代码实现。
for x in 'python':
print(x)
运行结果:
【温馨提示】
Python 中的 for 循环常用于遍历列表、元组、字符串及字典等序列中的元素。具体使用方法将陆续在以后项目中介绍。
2.range()函数
for 语句经常与 range0)函数一起使用,range0)函数是 Python 的内置函数,可创建一个整数列表。rangeO函数的语法格式如下。
range([start,]stop[,step])
(1)start:计数从 start 开始,默认为0。例如,range(5)等价于range(0,5)。
(2)stop:计数到 stop结束,但不包含 stop。例如,range(0,5)是[0,1,2,3,4]
(3)step:步长,默认为1。例如,range(0,5)等价于 range(0,5,1)。
【例2】 鸡兔同笼。大约在1500年前,《孙子算经》中记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”编程计算鸡和兔的数量并输出。
【问题分析】 根据题意设鸡和兔的数量分别为cock和rabbit,如果笼中全部是鸡,鸡的最大数量为 35,所以 cock 在 0~35 取值,且 rabbit-35-cock。确定了鸡的范围后进行穷举并判断,由于鸡有两只脚,免有4只脚,所以判断条件为鸡和兔的脚的总数量为94。
【运行代码】
for cock in range(0,35 +1):#循环范围为0~35,cock表示鸡的数量
#计算兔的数量
rabbit=35-cock
if cock*2+rabbit*4== 94: #如果鸡和兔的脚的总数为 94
print('鸡有',cock,'只') #输出鸡的数量
print('免有',rabbit,'只') #输出兔的数量
运行结果
🎶 三、嵌套的循环语句
一个循环语句的循环体内包含另一个完整的循环结构,称为循环的嵌套。嵌套在循环体内的循环称为内循环,嵌套有内循环的循环称为外循环内循环中还可以嵌套循环,这就是多重循环。
while语句和 for 语句可以互相嵌套,自由组合。外层循环体中可以包含一个或多个内层循环结构,但要注意的是,各循环必须完整包含,相互之间不允许有交叉现象。
【例 3】 输出下面九九乘法表。
1 * 1=1
1 * 2=2 2 * 2=4
1 * 3=3 2 3=6 3 * 3=9
1 * 4=4 2 * 4=8 34=12 4*4=16
… … … … … … … … … …
1 * 9=9 2 * 9=18 3 * 9=27 4 * 9=36 ……. 9 * 9=81
【参考代码】
for x in range(1,10):
for y in range(1,x+1):
#循环变量x从1到 9#循环变量y从1到x
print(y,'*','x','=',x*y,'',end='')#输出乘法表达式#输出空字符串,换行
print('')
运行结果
【温馨提示】
print()函数默认是输出一行,且末尾加换行。如果想要末尾不换行且同时加上符号,可使用“end=”实现。例如:print(我爱你,end=‘,")
print(‘中国’, end=’’)
print(‘China’, end='. ")
上述代码输出结果为“我爱你,中国China。”
🎶 四、break 和 continue 语句
前面介绍的循环都是当循环条件为False时退出循环,然而,在某些场合,只要满足一定的条件就应当提前结束正在执行的循环操作。此时,Python提供了break和continue跳转语句来结束循环。
(1)break 语句
在循环结构中,break语句通常与if语句一起使用,以便在满足条件时跳出循环。
【例 4】 身份验证。循环判断用户输入的账号和密码是否正确,如果正确则退出
【问题分析】 首先设定用户的正确账号和密码;然后使用 while 循环,在循环中,输入账号和密码,如果都正确则输出登录成功并跳出循环,否则输出账号或密码输入有误,继续循环。
【参考代码】
name='python'
password='12345678'
while True:
name_input=input('请输入账号:')
password_input=input('请输入密码:')
if name !=name_input:
print('输入的账号有误!')
elif password !=password_input:
print('输入的密码有误!')
else:
print('登陆成功!')
break
运行结果:
(2)continue 语句
有时并不希望终止整个循环的操作,而只希望提前结束本次循环,接着执行下次循环,此时可使用continue语句。与break语句不同,continue语句的作用是结束本次循环,即跳过循环体中 continue 语句后面的语句,开始下一次循环。【例 3-8】 学生休息询问。班级组织徒步,全程5千米,每1千米询问学生是否需要休息,如果需要则休息10分钟,否则继续徒步。
【问题分析】 本例题可使用 for 循环语句,并使用 range(1,6)生成循环变量。在循环中输出已徒步的里程数,然后输入“y”或“n”回答是否需要休息,如果输入为“n”则使用 continue 语句结束本次循环,不输出后面的休息 10分钟。结束循环后,输出到达终点。
参考代码:
for i in range(1,6):
print('以徒步',1,'千米')
if i !=5:
answer=input('是否需要休息?(y/n):')
if answer=='n':
continue
print('休息10分钟')
print('到达终点')
运行结果:
【任务分析】 完成本任务,可首先定义变量user_count和 computer_count 分别用于统计用户和计算机赢的次数,并赋初值为0;然后使用while循环,判断条件为True,在
循环中进行下面操作。
(1)使用inputO)函数输入一个整数(模拟用户出拳),并判断输入的整数是否处于1~3,如果不是,输出错误提示,并使用continue语句结束本次循环。
(2)使用randintO函数生成一个1~3的随机整数(模拟计算机出拳)。
【小提示】
randint(a,b)函数用于生成一个指定范围的随机整数,包含下限a和上限 b。它包含在random 模块中,使用时须导入,且须通过模块名调用。例如,生成一个10~20的随机整数n,可用下面代码实现。
import random #导入 random 模块
n= random,randint(10, 20)#n 可能为 10~20 的任一整数
(3)使用 printO函数输出本次用户和计算机的出拳。
(4)使用关系运算符(=-)和逻辑运算符(and和or)判断输赢,如果用户赢,则user_count加1,并输出 user_count 的值,然后判断 user_count是否等于 3,如果是,则输出用户取得胜利提示,并跳出循环;如果计算机赢,则computer_count加1,并输出computer_count 的值,然后判断 computer_count 是否等于 3,如果是,则输出计算机取得胜利提示,并跳出循环;如果平局,则输出平局提示。
【运行代码】
# from urllib.request import urlopen
# url="http://www.baidu.com"
# resp=urlopen(url)
# with open("mybaiodu.html",mode = "w",encoding="utf-8") as f:
# f.write(resp.read().decode()) #读取到网页的页面源码
# print("over!")
#安装requests
# pip install requests
#
#
# import requests
# query=input("请输入你喜欢的明星:")
# url=f'https://cn.bing.com/search?q={query}'
# resp=requests.get(url)
# print(resp)
# print(resp.text) #拿到页面源代码
# print('Hello , world !')
# print('陶继昌')
# print('2024年9月13日')
# import math
#输入圆半径
# raduis=float(input('请输入圆的半径'))
# if raduis<=0:
# print('请输入大于0的半径')
# else:
# pi=3.14159
# area=pi*(raduis**2)
# print(f"圆的面积是:{area:.2f}")
# name = input("请输入学生的姓名:")
# num1=float(input(f"请输入{name}同学的语文成绩:"))
# num2=float(input(f"请输入{name}同学的数学成绩:"))
# num3=float(input(f"请输入{name}同学的英语成绩:"))
# aver=(num1+num2+num3)/3
# print(f"{name}同学的平均成绩为:{aver:.1f}")
# weather = input('请输入天气情况:') #输入变量 weather的值
# if weather =='晴'or weather =='多云': #如果天气为晴或多云#输出“去公园玩”
# print('去公园玩') # 如果不是
# else:# 输出“在家玩”
# print('在家玩')
# #输入温度 temperature 的值并将其转换为浮点数
# temperature = float(input('请输入温度(℃):'))
# #如果温度大于等于 28.0
# if temperature >=28.0:
# print('穿衣建议:轻棉织物制作的短衣、短裙、短裤等')#输出穿衣建议#如果温度大于等于 24.0小于28.0print('穿衣建议:棉麻面料的衬衫、薄长裙、薄恤等') #输出穿衣建议#如果温度大于等于 21.0小于24.0elif temperature >=2l.0:print('穿衣建议:单层棉麻面料的T恤衫、长裤、薄牛仔裤等’)#输出穿衣建议#如果温度大于等于 18.0小于 21.0elif temperature >=18.0:
# elif temperature >=24.0:
# print('穿衣建议:薄外套、风衣、薄毛衣等')#输出穿衣建议#如果温度大于等于 15.0小于18.0elif temperature >= 15.0:print('穿衣建议:风衣、外套、毛衣等”)elif temperature >=11.0:
# #输出穿衣建议#如果温度大于等于 11.0 小于 15.0
# #输出穿衣建议
# print('穿衣建议:毛衣、风衣、大衣等')
# elif temperature >=6.0:
# #如果温度大于等于 6.0小于11.0
# #输出穿衣建议
# print('穿衣建议:棉衣、冬大衣、薄羽绒服等')
# else:
# #以上条件都不满足
# print('穿衣建议:羽绒服、厚棉衣、冬大衣等')
# #输出穿衣建议
# boy = int(input('请输入男生人数:'))#输入男生人数并转换为整数
# girl = int(input('请输入女生人数:'))#输入女生人数并转换为整数
# # #计算总人数
# total = boy + girl
# #如果总人数小于 5
# if total < 5:
# #输出“打扫街道”
# print('打扫街道')
# #如果总人数大于等于 5
# else:
# #如果男生人数大于女生人数#输出“种树”
# if boy > girl:
# print('种树')
# #如果男生人数小于等于女生人数
# else:
# print('采茶')#输出“采茶”
# AQI= int(input('请输入AQI 的值:'))
# if AQI > 0:#输入AQI的值并将其转换为整数#如果 AQI 大于 0
# if AQI <= 50:
# print('空气质量:一级(优)')
# #如果 AQI 小于等于 50
# print('活动建议:各类人群可正常活动')#输出空气质量等级
# elif AQI <= 100:
# #输出活动建议#如果 AQI 大于 50 小于等于10
# print('空气质量:二级(良)') #输出空气质量等级
# print('活动建议:极少异常敏感人群应减少户外活动')
# # 输出活动建议#如果AQI大于100小于等于150
#
# elif AQI <= 150:
# print('空气质量:三级(轻度污染)') # 输出空气质量等级
# print('活动建议:儿童、老年人及心脏病、呼吸系统疾病患者应减少长')#输出活动建议时间、高强度的户外活动
# elif AQI <= 200: # 如果AQI大于150小于等于200
# print('空气质量:四级(中度污染)')#输出空气质量等级
# print('活动建议:儿童、老年人及心脏病、呼吸系统疾病患者避免长时间、高强度的户外活动,一般人群适量减少户外运动')
# # 输出活动建议
# elif AQI <= 300:
# # 如果AQI大于200小于等于300
# print('空气质量:五级(重度污染)')#输出空气质量等级
# print('活动建议:儿童、老年人及心脏病、肺病患者应停止户外活动,一般人群减少户外活动')
# # 输出活动建议
#
# # 以上条件都不满足
# else:
# print('空气质量:六级(严重污染)')
# # 输出空气质量等级
# print('活动建议:儿童、老年人和病人应停留室内,避免体力消耗,一般人群避免户外活动')
# # 输出活动建议
# else:
# print('数据输入错误!')
# n= int(input('请输入一个整数:')) #输入n的值,并转换为整数
# i =1 #创建变量 i,赋值为 1
# S =0 #创建变量 S,赋值为 0
# while i <= n: #循环,当 i>n 时结束
# S += i # 求和,将结果赋给 S
# i += 1
# #变量i加1
# print('S=1+2+3+…+n=',S) #输出S的值
# for x in 'python':
# print(x)
# for cock in range(0,35 +1):#循环范围为0~35,cock表示鸡的数量
# #计算兔的数量
# rabbit=35-cock
# if cock*2+rabbit*4== 94: #如果鸡和兔的脚的总数为 94
# print('鸡有',cock,'只') #输出鸡的数量
# print('免有',rabbit,'只') #输出兔的数量
# for x in range(1,10):
# for y in range(1,x+1):
# #循环变量x从1到 9#循环变量y从1到x
# print(y,'*','x','=',x*y,'',end='')#输出乘法表达式#输出空字符串,换行
# print('')
# name='python'
# password='12345678'
# while True:
# name_input=input('请输入账号:')
# password_input=input('请输入密码:')
# if name !=name_input:
# print('输入的账号有误!')
# elif password !=password_input:
# print('输入的密码有误!')
# else:
# print('登陆成功!')
# break
# for i in range(1,6):
# print('以徒步',1,'千米')
# if i !=5:
# answer=input('是否需要休息?(y/n):')
# if answer=='n':
# continue
# print('休息10分钟')
# print('到达终点')
import random
user_count=0
computer_count=0
while True:
print('请输入一个整数(1:石头,2:剪刀,3:布)',end='')
user=int(input())
if user <1 or user >3:
print('输入错误,请重新输入!')
continue
computer=random.randint(1,3)
print('用户出拳:',user)
print('计算机出拳',computer)
if(user==1 and computer==2) or(user==2 and computer==3) or(user==3 and computer==1):
user_count+=1
print('用户赢',user_count,'次')
if user_count ==3:
print('用户先赢3次。恭喜用户赢得胜利!')
break
elif(computer==1 and user==2) or(computer==2 and user==3) or(computer==3 and user==1):
computer_count+=1
print('计算机赢',computer_count,'次')
if computer_count==3:
print('计算机先赢3次,恭喜计算机取得胜利!')
break
else:
print('平局')
运行结果:
结束语🥇
以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖