【Python】Python 实现猜单词游戏——挑战你的智力和运气!

文章目录

  • 前言
  • 学到什么?
  • 导入 random 模块
  • 定义生命次数
  • 定义神秘单词并进行随机选择
  • 定义 clue(猜测进度) 列表,用问号 '?' 初始化
  • 定义心形符号的 Unicode 编码
  • 初始化 guessed_word_correctly 变量
  • 定义更新猜测进度函数 update_clue
  • 主循环,直到生命次数用尽或猜对了整个单词才结束
  • 判断用户猜对了整个单词的情况
  • 判断用户猜对了某个字母的情况
  • 判断用户猜错了字母的情况
  • 根据游戏结果判断胜负,并输出相应信息
  • 完整代码
  • 结束语

在这里插入图片描述

前言

大家好!欢迎来到我们精心准备的文字游戏世界。今天,我将向大家介绍一款有趣而又考验智力的游戏——猜单词游戏。在游戏中,你将面临一个神秘的单词,你需要凭借自己的智慧和运气来猜测这个单词是什么。每猜错一次,你将失去一条生命线,当生命线用尽时,你将面临失败。但只要你成功猜对了整个单词,那么胜利就属于你!现在,让我们开始挑战吧!

学到什么?

在这里插入图片描述

  1. 使用random模块来随机选择元素。

    • 在这个代码中,使用random.choice()函数从一个含有多个单词的列表中随机选择一个单词作为神秘单词。
  2. 字符串操作和列表操作。

    • 利用字符串的乘法运算符可以将某个字符重复多次,例如heart_symbol * lives会生成一个由心形符号组成的字符串,表示剩余生命次数。
    • 将字符串转换为列表,可以使用list()函数,例如clue = list('?????'),将包含五个问号的字符串转换为一个包含五个元素的列表。
  3. 循环的使用。

    • 主循环使用了while语句,可以在满足条件(lives > 0)的情况下重复执行一段代码块。
    • while循环的终止条件是生命次数不大于0,即玩家没有生命次数剩余。
  4. 条件判断和分支控制。

    • 使用if语句进行条件判断,根据用户的猜测结果进行不同的操作。
    • 如果用户猜对了整个单词,则结束循环并显示胜利信息。
    • 如果用户猜对了某个字母,则更新显示猜测进度。
    • 如果用户猜错了字母,则扣除一次生命次数。
  5. 函数的定义和调用。

    • 定义了一个update_clue函数,用于根据用户猜对的字母更新显示猜测进度。
    • 在主循环中,通过调用update_clue函数来更新clue列表。
  6. 用户输入的获取。

    • 使用input()函数获取用户的猜测,用户可以输入单个字母或者整个单词。

导入 random 模块

在这里插入图片描述

import random

通过 import random 语句,导入了 Python 的 random 模块,使我们能够使用随机选择功能。

定义生命次数

lives = 3

通过 lives = 3 语句,初始化了一个变量 lives,表示玩家的生命次数,初始值为 3。

定义神秘单词并进行随机选择

words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']
secret_word = random.choice(words)

通过 words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane'] 定义了一个包含多个单词的列表。然后,使用 secret_word = random.choice(words) 随机选择其中一个单词作为神秘单词,将其保存在 secret_word 变量中。

定义 clue(猜测进度) 列表,用问号 ‘?’ 初始化

clue = list('?????')

通过 clue = list('?????') 将一个包含五个问号 '?????' 的字符串转换为一个包含五个元素的列表 clue

定义心形符号的 Unicode 编码

heart_symbol = u'\u2764'

通过 heart_symbol = u'\u2764' 定义了一个变量 heart_symbol,表示心形符号的 Unicode 编码。这个符号将用于显示剩余生命次数。

初始化 guessed_word_correctly 变量

guessed_word_correctly = False

通过 guessed_word_correctly = False 初始化了一个布尔变量 guessed_word_correctly,用于标记是否猜对了整个单词,默认值为 False。

定义更新猜测进度函数 update_clue

def update_clue(guessed_letter, secret_word, clue):
    index = 0
    while index < len(secret_word):
        if guessed_letter == secret_word[index]:
            clue[index] = guessed_letter
        index = index + 1

通过 def update_clue(guessed_letter, secret_word, clue) 定义了一个名为 update_clue 的函数。该函数接受三个参数:guessed_letter 表示用户猜测的字母,secret_word 表示神秘单词,clue 表示猜测进度列表。在函数体内部,使用 while 循环和条件判断,根据用户猜测的字母更新猜测进度列表。

主循环,直到生命次数用尽或猜对了整个单词才结束

while lives > 0:
    print(words)
    print('剩余生命次数: ' + heart_symbol * lives)
    guess = input('猜测字母或者是整个单词: ')

通过 while lives > 0: 定义了一个主循环。在每次循环中,打印可选的单词列表,显示剩余生命次数,并通过 input() 函数获取用户的猜测。

判断用户猜对了整个单词的情况

    if guess == secret_word:
        guessed_word_correctly = True
        break

通过 if guess == secret_word: 判断用户猜测是否等于神秘单词,如果相等,则将 guessed_word_correctly 设置为 True,并跳出循环。

判断用户猜对了某个字母的情况

    if guess in secret_word:
        update_clue(guess, secret_word, clue)

通过 if guess in secret_word: 判断用户猜测是否在神秘单词中存在。如果存在,则调用 update_clue 函数,更新猜测进度列表。

判断用户猜错了字母的情况

    else:
        print('错误。你丢了一条命\n')
        lives = lives - 1

如果用户猜测既不是整个单词又不是某个字母,则输出错误信息,并扣除一次生命次数。

根据游戏结果判断胜负,并输出相应信息

if guessed_word_correctly:
    print('你赢了! 秘密单词是 ' + secret_word)
else:
    print('你输了! 秘密单词是 ' + secret_word)

通过 if guessed_word_correctly: 判断玩家是否猜对了整个单词,如果是,则输出胜利信息。否则,输出失败信息,同时显示正确的神秘单词。

完整代码

import random

# 生命次数
lives = 3

# 神秘单词, 随机选择
words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']
secret_word = random.choice(words)
# print(secret_word)

clue = list('?????')
heart_symbol = u'\u2764'

guessed_word_correctly = False


def update_clue(guessed_letter, secret_word, clue):
    index = 0
    while index < len(secret_word):
        if guessed_letter == secret_word[index]:
            clue[index] = guessed_letter
        index = index + 1


while lives > 0:
    print(words)
    print('剩余生命次数: ' + heart_symbol * lives)
    guess = input('猜测字母或者是整个单词: ')

    if guess == secret_word:
        guessed_word_correctly = True
        break

    if guess in secret_word:
        update_clue(guess, secret_word, clue)
    else:
        print('错误。你丢了一条命\n')
        lives = lives - 1


if guessed_word_correctly:
    print('你赢了! 秘密单词是 ' + secret_word)
else:
    print('你输了! 秘密单词是 ' + secret_word)

结束语

经过精彩的文字游戏旅程,你成功挑战了猜单词游戏!无论输赢,都对 Python 的随机选择、字符串操作、条件判断等方面有了更深入的了解。希望这次的游戏能够让你愉快并且有所收获。继续探索编程的乐趣吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/57071.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用上 Spring 的事件机制

本文主要是简单的讲述了Spring的事件机制&#xff0c;基本概念&#xff0c;讲述了事件机制的三要素事件、事件发布、事件监听器。如何实现一个事件机制&#xff0c;应用的场景&#xff0c;搭配Async注解实现异步的操作等等。希望对大家有所帮助。 Spring的事件机制的基本概念 …

邪恶版ChatGPT来了!

「邪恶版」ChatGPT 出现&#xff1a;每月 60 欧元&#xff0c;毫无道德限制&#xff0c;专为“网络罪犯”而生。 WormGPT 并不是一个人工智能聊天机器人&#xff0c;它的开发目的不是为了有趣地提供无脊椎动物的人工智能帮助&#xff0c;就像专注于猫科动物的CatGPT一样。相反&…

Ansible —— playbook 剧本

Ansible —— playbook 剧本 一、playbook的概述1.playbook简介2.什么是Ansible playbook剧本&#xff1f;3.Ansible playbook剧本的特点4.如何使用Ansible playbook剧本&#xff1f;5.playbooks 本身由以下各部分组成 二、playbook示例1.运行playbook2.定义、引用变量3.指定远…

JAVA 反编译工具

Releases deathmarine/Luyten GitHub 安装exe 打开拖入文件即可

九耶|阁瑞钛伦特:产品经理面试题—产品经理在工作中是如何划分需求优先级的?

产品经理在工作中划分需求优先级是为了指导产品团队的开发和发布流程。以下是产品经理在划分需求优先级时通常考虑的因素&#xff1a; 业务目标&#xff1a;产品经理会与企业领导层或业务方合作&#xff0c;了解公司的战略目标和销售策略。然后&#xff0c;他们会根据这些目标评…

图像 检测 - YOLOv3: An Incremental Improvement (arXiv 2018)

YOLOv3: An Incremental Improvement - 增量改进&#xff08;arXiv 2018&#xff09; 摘要1. 引言2. 处理2.1 边界框预测2.2 类别预测2.3 跨规模预测2.4 特征提取器2.5 训练 3. 我们的做法4. 我们尝试过但没有成功的事情5. 这一切意味着什么References 声明&#xff1a;此翻译仅…

Netty:从ByteBuf中读出数据

介绍 Netty的ByteBuf数据位置索引是0开始的。 可以用ByteBuf的getByte(int index)方法从指定位置读出一字节&#xff0c;这个操作不会改变ByteBuf的readerIndex 或者 writerIndex 的位置。如果index小于0&#xff0c;或者index 1大于ByteBuf的容量&#xff0c;就会抛出IndexO…

下载列表视频的具体操作

主要是介绍怎样获取上篇博客需要的HAR文件和请求域名

Vulnhub靶机DC-2 writeup

靶机介绍 靶机介绍&#xff1a;https : //download.vulnhub.com/dc/DC-2.zip ​ 信息搜集 获取IP地址 扫描靶机的IP的方法 1. nmap -sP 192.168.142.0/24 #nmap进行ping扫描发现存活主机 2. arp-scan -l #基于ARP发现内网存活主机 3. netdiscover -r 192.168.142.0/24 -…

Java导出数据到Excel

Java导出数据到Excel分3步处理 1、构建Workbook 数据 2、设置Workbook 格式 3、导出到Excel 1、构建Workbook 数据 public static void buildData(Workbook wb, List<Person> list) {Sheet sheetName wb.createSheet("sheetName");Row row sheetName.creat…

Java 中的 7 种重试机制

随着互联网的发展项目中的业务功能越来越复杂&#xff0c;有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务&#xff0c;但是远程服务的健壮性和网络稳定性都是不可控因素。 在测试阶段可能没有什么异常情况&#xff0c;但上线后可能会出…

C++---list常用接口和模拟实现

list---模拟实现 list的简介list函数的使用构造函数迭代器的使用list的capacitylist element accesslist modifiers list的模拟实现构造函数&#xff0c;拷贝构造函数和迭代器begin和endinsert和eraseclear和析构函数 源码 list的简介 list是用双向带头联表实现的一个容器&…

【Python】从同步到异步多核:测试桩性能优化,加速应用的开发和验证

目录 测试工作中常用到的测试桩mock能力 应用场景 简单测试桩 http.server扩展&#xff1a;一行命令实现一个静态文件服务器 性能优化&#xff1a;使用异步响应 异步响应 能优化&#xff1a;利用多核 gunicorn 安装 gunicorn 使用 gunicorn 启动服务 性能优化&#…

PHP 前后端分离,运行配置

H5 WEB目录:安装 yarn install、npm install &#xff08;依赖包&#xff09; 在电脑&#xff1a;安装nodejs Composer下载 &#xff1a;https://getcomposer.org/

Amazon Aurora Serverless v2 正式发布:针对要求苛刻的工作负载的即时扩展

我们非常兴奋地宣布&#xff0c;Amazon Aurora Serverless v2 现已面向 Aurora PostgreSQL 和 MySQL 正式发布。Aurora Serverless 是一种面向 Amazon Aurora 的按需自动扩展配置&#xff0c;可让您的数据库根据应用程序的需求扩展或缩减容量。 亚马逊云科技开发者社区为开发者…

SAP 集成以及PO异步接口调优

前言&#xff1a;目前国内的SAP相关的技术文档实在是少得可怜&#xff0c;PO相关的就更少了&#xff0c;基本上都是需要摸索&#xff0c;官方的技术专家很多时候的回复都是说了又似乎没说。。。 背景&#xff1a;由于目标系统接收数据缓慢或者是异步线程出现异常导致错误积压。…

动手学深度学习(一)预备知识

目录 一、数据操作 1. N维数组样例 2. 访问元素 3. 基础函数 &#xff08;1&#xff09; 创建一个行向量 &#xff08;2&#xff09;通过张量的shape属性来访问张量的形状和元素总数 &#xff08;3&#xff09;reshape()函数 &#xff08;4&#xff09;创建全0、全1、…

c语言基础知识帮助理解(函数递归详解)

"从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚和一个小和尚。有一天老和尚对小和尚说:“从前有座山.山里有座庙&#xff0c;庙里有个老和尚和一个小和尚&#xff0c;有一天老和尚对小和尚说&#xff1a;“从前有座山.山里有座庙&#xff0c;庙里有个老和尚…

微信小程序tab加列表demo

一、效果 代码复制即可使用&#xff0c;记得把图标替换成个人工程项目图片。 微信小程序开发经常会遇到各种各样的页面组合&#xff0c;本demo为list列表与tab组合&#xff0c;代码如下&#xff1a; 二、json代码 {"usingComponents": {},"navigationStyle&q…

Github Pages自定义域名

Github Pages自定义域名 当你想在网上发布内容时&#xff0c;配置Github Pages是一个很好的选择。如果你想要在自己的域名上发布&#xff0c;你可以使用Github Pages来创建自己的网站。本文将介绍如何使用Github Pages自定义域名。 这里呢先列出前置条件&#xff1a; 您的Gi…