首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

“石头剪刀布”游戏:while、函数自调用实现循环游戏

  • 24-01-06 06:04
  • 4093
  • 5842
blog.csdn.net

if…else实现“石头剪刀布”游戏,while、函数自调用实现循环游戏。


  (本笔记适合学过if…else的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


if...else...实现游戏
循环游戏“剪刀石头布”
(while、函数自调用实现循环游戏)


本文质量分:

【 95 】
本文地址: http://iyenn.com/rec/1968562.html

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 循环游戏“剪刀石头布“”
    • 1、问题
    • 2、问题解析
    • 3、打印出出拳中文名比数字更好
    • 4、循环游戏
      • 4.1 while实现循环游戏
      • 4.2 函数自调用实现循环游戏


◆ 循环游戏“剪刀石头布“”


1、问题

  • 问题截屏图片
    在这里插入图片描述
    【题目来源于 CSDN 问答社区提问“Python剪刀石头布”



回页目录


2、问题解析


问题代码

import random
print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
    print("您出的拳为{}".format(user))
    a = random.randint(1, 3)
print("电脑出的为{}".format(a))
if user == a:
     print("您与电脑达成平局")
elif((user == 1 and a==2)
    or(user == 2 and a==3)
    or(user == 3 and a==1)):
    print("电脑不服气要和您再来一把!")
else:
  print("不要气馁,胜败乃兵家常事")
else
print("请输入符合规则的1-3内的数")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • “都是缩进惹的祸”?
    在这里插入图片描述
    Python,是用缩进(一般为四个英文空格长度,也是python的默认长度。其长度可以自由设定,但我强烈建议用“四个英文空格”的默认长度,最好不使用制表键tab。)分隔代码语句块的。初学有一定“混乱”很正常,当您“熟识”后,才明白她的简洁与优雅。

    1、第一条print() 语句少了一个缩进;
    2、第二层if语句块应该全部有一个缩进,以标榜她是内层if语句块;
    3、第一层if的else语句漏掉了行末冒号;
    4、最后一行print() 应有一个缩进。

修改缩进,加上漏掉的冒号后代码

#!/sur/bin/nve python
# coding: utf-8
import random

print("*************欢迎来到猜拳游戏*****************")
user=int(input("请输入你所要出的拳,1拳头2剪刀3布\n"))
if user >=1 and user <=3:
    print("您出的拳为{}".format(user))
    a = random.randint(1, 3)
    print("电脑出的为{}".format(a))

    if user == a:
        print("您与电脑达成平局")
    elif((user == 1 and a==2) or (user == 2 and a==3) or (user == 3 and a==1)):
        print("电脑不服气要和您再来一把!")
    else:
        print("不要气馁,胜败乃兵家常事")

else:
    print("请输入符合规则的1-3内的数")


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 代码运行效果截屏图片
    在这里插入图片描述


回页目录

3、打印出出拳中文名比数字更好


  • 直接打印所出拳“石头、剪刀、布”,更好
    在这里插入图片描述

代码

#!/sur/bin/nve python
# coding: utf-8
import random

print(f"\n{' 欢迎来到猜拳游戏 ':*^33}")
user=int(input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'请您出拳:':>14}"))
user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
if user >=1 and user <=3:
    print("\n您出的拳为“{}”".format(user_s))
    a = random.randint(1, 3)
    a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
    print("电脑出的为“{}”".format(a_s))

    if user == a:
        print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
    elif (user == 1 and a==2) or (user == 2 and a==3) or (user == 3 and a==1):
        print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
    else:
        print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")

else:
    print("请输入符合规则的1-3内的数")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23


回页目录

4、循环游戏


  还可以用一个while循环把游戏代码“包”起来,设置一个“开关”,就可以与“机器”玩儿到不想玩才退出。也可以用函数自调用,实现循环游戏。


4.1 while实现循环游戏

在这里插入图片描述

代码

#!/sur/bin/nve python
# coding: utf-8
import random


clear = '\033[2J' # 清屏控制字符串,清除终端可见屏幕字符。

while True:
    print(f"{clear}\n\n{' 欢迎来到猜拳游戏 ':*^33}")
    user = input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'(直接回车退出程序)':^33}\n\n{'请您出拳:':>14}")
    
    if not user:
        print(f"{clear}\n\n{' 欢迎下次再玩猜拳游戏 ':*^31}\n")
        break
    
    user = int(user)
    user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
    if user >=1 and user <=3:
        print(f"\n\n{'':>8}{'':.^22}\n\n{'':>12}您出的拳为“{user_s}”")
        a = random.randint(1, 3)
        a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
        print(f"{'':>12}电脑出的为“{a_s}”\n\n{'':>8}{'':.^22}\n")

        if user == a:
            print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
        elif ((user == 1 and a==2)
        	     or (user == 2 and a==3)
        	     or (user == 3 and a==1)):
            print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
        else:
            print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")

    else:
        print(f"\n{'':~^41}\n{'请输入1-3内的数字。':^33}")

    input(f"\n{' 任意键继续…… ':~^35}")



  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

4.2 函数自调用实现循环游戏

  • 函数自调用实现循环游戏代码运行效果截屏图片
    在这里插入图片描述

代码

#!/sur/bin/nve python
# coding: utf-8
import random


def play():
    clear = '\033[2J' # 清屏控制字符串,清除终端可见屏幕字符。
    print(f"{clear}\n\n{' 欢迎来到猜拳游戏 ':*^33}")
    user = input(f"\n{'1. 拳头 2. 剪刀 3. 布':^36}\n{'':~^41}\n{'(直接回车退出程序)':^33}\n\n{'请您出拳:':>14}")
    
    if not user:
        print(f"{clear}\n\n{' 欢迎下次再玩猜拳游戏 ':*^31}\n")
        return
    
    user = int(user)
    user_s = '拳头' if user == 1 else '剪刀' if user == 2 else '布'
    if user >=1 and user <=3:
        print(f"\n\n{'':>8}{'':.^22}\n\n{'':>12}您出的拳为“{user_s}”")
        a = random.randint(1, 3)
        a_s = '拳头' if a == 1 else '剪刀' if a == 2 else '布'
        print(f"{'':>12}电脑出的为“{a_s}”\n\n{'':>8}{'':.^22}\n")

        if user == a:
            print(f"\n{'':~^41}\n{'您与电脑打成平局。':^32}")
        elif ((user == 1 and a==2)
        	     or (user == 2 and a==3)
        	     or (user == 3 and a==1)):
            print(f"\n{'您赢了!':^37}\n{'':~^41}\n{'电脑不服气要和您再来一把!':^28}")
        else:
            print(f"\n{'您输了!':^37}\n{'':~^41}\n{'不要气馁,胜败乃兵家常事。':^28}")

    else:
        print(f"\n{'':~^41}\n{'请输入1-3内的数字。':^33}")

    if input(f"\n\n{'任意键退出……':^35}\n{'':~^41}\n{'(直接回车继续游戏)':^33}"):
        print(f"{clear}\n\n{' 欢迎下次再玩猜拳游戏 ':*^31}\n")
        return 
    play() # 函数自调用实现循环。

if __name__ == '__main__':
    play()



  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44



回页首


上一篇:  切片[::-1]解析列表list表示的“非负整数加1”(列表数位表示非负整数,熟练操作“满十进位”)
下一篇: 

我的HOT博:

  本次共计收集 223 篇博文笔记信息,总阅读量 38.53w,平均阅读量 1727。已生成 25 篇阅读量不小于 3000 的博文笔记索引链接。数据采集于 2023-08-20 06:08:51 完成,用时 4 分 54.78 秒。


  1. 让QQ群昵称色变的神奇代码
    ( 57556 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:24   踩 :0  收藏:81  打赏:0  评论:17
    本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。
  2. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    ( 57260 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    点赞:125   踩 :0  收藏:793  打赏:0  评论:75
    本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-07-03 05:50:55 修改。
  3. pandas 数据类型之 DataFrame
    ( 8983 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:6   踩 :0  收藏:31  打赏:0  评论:0
    本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。
  4. 个人信息提取(字符串)
    ( 7041 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:1   踩 :0  收藏:12  打赏:0  评论:0
    本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。
  5. 罗马数字转换器|罗马数字生成器
    ( 6851 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。
  6. Python字符串居中显示
    ( 6742 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    点赞:1   踩 :0  收藏:6  打赏:0  评论:1
    本篇博文笔记于 2021-12-26 23:35:29 发布。
  7. Python列表(list)反序(降序)的7种实现方式
    ( 6014 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:5   踩 :0  收藏:19  打赏:0  评论:8
    本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。
  8. 斐波那契数列的递归实现和for实现
    ( 5462 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    点赞:4   踩 :0  收藏:2  打赏:0  评论:8
    本篇博文笔记于 2022-01-06 23:27:40 发布。
  9. 练习:字符串统计(坑:f‘string‘报错)
    ( 5027 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2021-12-04 22:54:29 发布。
  10. python清屏
    ( 4876 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    点赞:0   踩 :0  收藏:6  打赏:0  评论:0
    本篇博文笔记于 2021-10-14 13:47:21 发布。
  11. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    ( 4849 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    点赞:14   踩 :0  收藏:42  打赏:0  评论:0
    本篇博文笔记于 2021-11-30 23:43:17 发布。
  12. 回车符、换行符和回车换行符
    ( 4843 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:1   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。
  13. 密码强度检测器
    ( 4169 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。
  14. 练习:生成100个随机正整数
    ( 4156 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    点赞:1   踩 :0  收藏:6  打赏:0  评论:0
    本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。
  15. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    ( 4054 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
  16. 我的 Python.color() (Python 色彩打印控制)
    ( 3878 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    点赞:2   踩 :0  收藏:7  打赏:0  评论:0
    本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。
  17. 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
    ( 3805 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124424935
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2022-04-26 12:46:25 首发,最晚于 2022-04-27 21:22:07 修改。
  18. 练习:仿真模拟福彩双色球——中500w巨奖到底有多难?跑跑代码就晓得了。
    ( 3567 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/125415626
    点赞:3   踩 :0  收藏:5  打赏:0  评论:3
    本篇博文笔记于 2022-06-22 19:54:20 首发,最晚于 2022-06-23 22:41:33 修改。
  19. random.sample()将在python 3.9x后续版本中被弃用
    ( 3460 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120657230
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2021-10-08 18:35:09 发布。
  20. 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
    ( 3365 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124539589
    点赞:4   踩 :0  收藏:2  打赏:0  评论:3
    本篇博文笔记于 2022-05-02 13:02:39 首发,最晚于 2022-05-21 06:10:42 修改。
  21. Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义
    ( 3341 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123087606
    点赞:0   踩 :0  收藏:4  打赏:0  评论:3
    本篇博文笔记于 2022-02-23 13:08:07 首发,最晚于 2022-04-04 23:52:38 修改。
  22. 练习:小炼二维数组
    ( 3190 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/125175592
    点赞:9   踩 :0  收藏:5  打赏:0  评论:9
    本篇博文笔记于 2022-06-07 23:54:43 首发,最晚于 2022-06-08 00:31:49 修改。
  23. 练习:求列表(整数列表)平衡点
    ( 3179 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121737612
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2021-12-05 23:28:10 发布。
  24. 练习:银行复利计算(用 for 循环解一道初中小题)
    ( 3079 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123854548
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2022-03-30 20:06:37 首发,最晚于 2022-04-06 18:15:16 修改。
  25. 练习:柱状图中最大矩形
    ( 3070 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122032365
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2021-12-19 23:47:07 发布。
推荐条件 阅读量突破三千
(更多热博,请点击蓝色文字跳转翻阅)

回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费?下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


回页首

◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

注:本文转载自blog.csdn.net的梦幻精灵_cq的文章"https://blog.csdn.net/m0_57158496/article/details/132439530"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top