当前位置: 首页 > article >正文

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    3
4=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从19#循环变量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从19#循环变量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('平局')

运行结果:
在这里插入图片描述

结束语🥇

以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述


http://www.kler.cn/news/319212.html

相关文章:

  • 财务报表中科目的指标值范围
  • web学习——day1
  • Python精选200Tips:166-170
  • Redis中String命令的基础操作
  • 简单工厂模式
  • SQL常用语法详解
  • SelMatch:最新数据集蒸馏,仅用5%训练数据也是可以的 | ICML‘24
  • 【深度学习】聊一聊正则化
  • C++之 string(中)
  • 1.1 elasticsearch分布式集群基本搭建(centos7.x + elaticsearch7.11.1)
  • 【代码随想录训练营第42期 Day60打卡 - 图论Part10 - Bellman_ford算法系列运用
  • 什么是集成学习?
  • 如何使用ssm实现基于VUE.js的在线教育系统+vue
  • Go调试工具—— Delve
  • 2024 ICPC ShaanXi Provincial Contest —— C. Seats(个人理解)拓扑+dfs
  • 深度学习(4):torch.nn.Module
  • flink 的 Barrier 对齐 的优劣详解:
  • PHP 中 empty() 函数的作用
  • PAT甲级-1083 List Grades
  • 如何选择渲染集群管理软件?
  • css基础知识笔记
  • 【Pyside】pycharm2024配置conda虚拟环境
  • Jmeter 线程组解析
  • 产品经理如何转到AI赛道?优势在哪?待遇如何?
  • C++系列-STL容器中统计算法count, count_if
  • uniapp调用安卓service实现后台运行
  • 华为OD机试真题-最少交换次数-2024年OD统一考试(E卷)
  • fastadmin前端切换成英文,后台中文,修改JS文件
  • Milvus - 从数据库到 Partition Key 实现多租户
  • STM32 使用 CubeMX 实现按键外部中断