简易的Python小游戏,上班可玩一天,零基础小白可练手

news2025/7/18 8:19:03

文章目录

    • 一、第一次写Python小游戏
    • 二、对小游戏进行改进
      • 1.对玩家进行提示
      • 2.提供多次机会给玩家
      • 3.每次答案应该是随机的
    • 三、总结

一、第一次写Python小游戏

刚开始学习Python这门计算机语言,所以在网上找了一个非常简易的小游戏来进行模仿编写,目的是从中学到一些简单的Python语法知识。 (文末送读者福利)

这个小游戏是一个猜数字的小游戏,比较简单,有利于我这种刚开始学习Python的萌新理解。

编程环境使用的是Python自带的集成开发环境IDLE。

程序代码如下:

temp = input("猜一下现在我想的是哪一个数字:")
guess = int(temp)

if guess == 8:
    print("猜对啦!")
else:
    print("猜错啦!")

print("游戏结束!")

运行结果如下:
在这里插入图片描述
没错,就是一个即时的问答小游戏。

部分代码解释:

temp = input("猜一下现在我想的是哪一个数字:")

“=”是赋值运算符,表示赋于;而if后面的“==”是一个数学运算符,表示等于。

input函数用于接收用户的输入并返回给temp,也就是把这个值赋给temp。

guess = int(temp)

input函数返回的是一个字符串,要对它进行转换才能和数字比较,所以使用int函数进行转换。

注:如果输入的是文字,将无法进行转换。

if guess == 8:
    print("猜对啦!")
else:
    print("猜错啦!")

这里是条件分支语句,用于判断,简单来说就是“如果…否则…”。

二、对小游戏进行改进

在成功运行这个小游戏代码并对其中的含义进行理解后,我们可以将代码进行改进。

1.对玩家进行提示

在玩家猜错的情况下,会告诉玩家是大了还是小了。

修改后的代码如下:

temp = input("猜一下现在我想的是哪一个数字:")
guess = int(temp)

if guess == 8:
    print("猜对啦!")
else:
    if guess < 8:
        print("小啦~")
    else:
        print("大啦~")

print("游戏结束!")


运行结果如下:

在这里插入图片描述
实现的方法就是在else语句中再加入一个完整的if-else语句,也叫“嵌套”。

2.提供多次机会给玩家

在玩家猜错后,还有机会进行再一次猜测。

修改后的代码如下:

counts = 3
while counts > 0:
    temp = input("猜一下现在我想的是哪一个数字:")
    guess = int(temp)
    if guess == 8:
        print("猜对啦!")
        break
    else:
        if guess < 8:
            print("小啦~")
        else:
            print("大啦~")
        counts = counts - 1

print("游戏结束!")

运行结果如下:
在这里插入图片描述
要实现多次输入,就要利用循环,这里使用的是while函数,先将counts赋值为3,然后每次减一,这样可以给玩家提供三次机会。

在我第一次编写这个改进时,遇到了以下两个问题:

1.将counts-1放到了循环外面,如下:

#部分代码:
    else:
        if guess < 8:
            print("小啦~")
        else:
            print("大啦~")
        
print("游戏结束!")
counts = counts - 1

这样就会造成counts无法在循环中自减,导致循环进入死循环,用户可以进行无限次输入。

2.没有加入break语句跳出循环:

如果没有加入break来跳出循环的话,猜对了之后这个循环也不会停。如下:

在这里插入图片描述

3.每次答案应该是随机的

如果每次答案都相同,那么在答案被猜出后,游戏就失去了可玩性,所以应该让每次的答案都不同。

修改后的代码如下 :

import random

counts = 3
answer = random.randint(1,10)
while counts > 0:
    temp = input("猜一下现在我想的是哪一个数字:")
    guess = int(temp)
    if guess == answer:
        print("猜对啦!")
        break
    else:
        if guess < answer:
            print("小啦~")
        else:
            print("大啦~")
        counts = counts - 1

print("游戏结束!")

运行结果如下:
在这里插入图片描述
这里运行了两次,可以看出两次的答案不同。

import random

在这次改进中,为了实现随机数,引入了随机函数random,而import就是导入包的意思。

answer = random.randint(1,10)

这行的意思是利用random随机函数从1到10中随机选择一个数,然后赋值给answer。然后用玩家输入的数字和这个随机数进行比较即可,而不再像以前那种与某个固定的值进行比较了。

三、总结

这是第一次编写Python程序,虽然是“抄”的代码,但还是把其中的含义理解通透了。除了代码本身的功能外,通过改进代码,来学习更多的知识,除了if-else语句外,我还学到了while语句、break语句和random函数等。

我也从自身所犯的错误中学到了许多经验。例如,写代码时一定要区分中英文、代码的拼写是否正确、代码的格式(缩进和对齐)等等。

读者福利:知道你对Python感兴趣,便准备了这套python学习资料,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

好文推荐

了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

python有什么用: https://blog.csdn.net/weixin_49892805/article/details/127214402

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据挖掘】聚类分析

聚类分析 Cluster Analysis 肝到爆炸呜呜呜 一、什么是聚类分析 关键词 1️⃣ 簇 Cluster&#xff1a;数据对象的集合&#xff0c;相同簇中的数据彼此相似&#xff0c;不同簇中的数据彼此相异。 2️⃣ 聚类分析 Cluster analysis&#xff1a;根据数据特征找到数据中的相似性…

Servlet | HttpServlet源码分析、web站点的欢迎页面

目录 一&#xff1a;HttpServlet源码分析 二&#xff1a;web站点的欢迎页面 一&#xff1a;HttpServlet源码分析 1、HttpServlet类是专门为HTTP协议准备的&#xff0c;比GenericServlet更加适合HTTP协议下的开发 HttpServlet在哪个包下&#xff1f; jakarta.servlet.http.Ht…

vue - - - - vite创建vue3项目(不使用TS)

vite创建vue3项目 vite官方文档 1. 使用指令创建项目 > npm create vite your-project-name > or > yarn create vite your-project-name此处演示使用npm&#xff0c;执行该指令时&#xff0c;遇到下述7.1所示报错。 Need to install the following packages(需…

asp.net+sqlserver婚纱影楼摄影管理系统C#

目录 1绪论 5 1.1 选题背景目的和意义 5 1.2研究现状 5 1.3 课题理由 5 2系统需求分析 7 2.1可行性分析 7 2.1.1 技术可行性 7 2.1.2 经济可行性 7 2.2.3 操作可行性 8 2.2系统架构 8 2.3 业务流程分析 9 3系统总体设计 10 3.1 系统物理环…

JavaSE——异常

目录 一、基本概念 1.1 什么是异常&#xff1f; 1.2 java提供的异常处理机制有什么作用&#xff1f; 1.3 java语言中异常以什么形式存在&#xff1f; 例1&#xff1a; 二、异常处理机制 2.1 所有Exception的直接子类都叫做编译时异常 2.2 所有的RuntimeException及子类都属于…

Spring面试

1. IOC &#xff08;1&#xff09;如何实现一个IOC容器 &#xff08;2&#xff09;IOC理解 &#xff08;3&#xff09;BeanFactory BeanFactory 是 Spring 框架的基础设施&#xff0c;面向 Spring 本身&#xff1b;ApplicationContext 面向使用 Spring 框架的开发者&#xff…

Zookeeper和Eureka的区别

Zookeeper&#xff1a; CP设计(强⼀致性)&#xff0c;⽬标是⼀个分布式的协调系统&#xff0c;⽤于进⾏资源的统⼀管理。当节点crash后&#xff0c;需要进⾏leader的选举&#xff0c;在这个期间内&#xff0c;zk服务是不可⽤的。 eureka&#xff1a; AP设计&#xff08;高可用&…

动态规划--(不同的子序列,编辑距离,两个字符串的删除)

代码随想录day56 动态规划模块 不同的子序列,编辑距离&#xff0c;两个字符串的删除 文章目录1.leetcode 115. 不同的子序列1.1思路及详细步骤1.2 代码示例2.leetcode 583. 两个字符串的删除操作2.1思路及详细步骤2.2 代码示例3.leetcode 72. 编辑距离3.1思路及详细步骤3.2 代码…

绝对最直白的MySQL MVCC机制总结,免费拿走

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;后端领域优质创作者&#xff0c;阿里云社区技术博主&#xff0c;热爱分享创作 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 绝对最直…

项目实战 - tpshop商城项目环境搭建

一、环境部署准备 1、软件工具准备 1.1、Vmware虚拟机 1. 在本机上安装好Vmware虚拟机 2. 在虚拟机上安装并运行Linux系统 3. 注意: 实际工具中使用云服务器 1.2、远程连接工具 1. 在本机上安装好远程连接工具 (xshell / putty / FinalShell&#xff08;推荐&#xff09;) …

三种常见的特征选择方法

特征选择 特征选择是特征工程里的一个重要问题&#xff0c;其目标是寻找最优特征子集。特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征&#xff0c;从而达到减少特征个数&#xff0c;提高模型精确度&#xff0c;减少运行时间的目的。并且常能听到“数据和特征决定…

k8s master 实现高可用

Kubernetes高可用master架构 k8s的高可用&#xff0c;主要是实现Master节点的高可用。那么我们看看各个组件是如何解决高可用的。 Kubelet、Kube-proxy&#xff1a;只工作在当前Node节点上&#xff0c;无需高可用。 etcd&#xff1a;etcd如果是放在集群内部的&#xff0c;在…

长文讲解Linux内核性能优化的思路和步骤

一.性能调优简介 1.为什么要进行性能调优&#xff1f; 1&#xff09; 编写的新应用上线前在性能上无法满足需求&#xff0c;这个时候需要对系统进行性能调优 2&#xff09; 应用系统在线上运行后随着系统数据量的不断增长、访问量的不断上升&#xff0c;系统的响应速度通常越…

js-学习链表

链表基础概念 链表和数组一样&#xff0c;可以用于存储一系列连续的元素。链表中的元素在内存中不必是连续的空间。链表的每一个元素有一个由一个存储元素本身的节点和一个指向下一个元素的引用组成(指针和连接)。 链表构成 数据指针 链表优点 1.内存空间不是必须连续的&a…

实践分享:30分钟在电脑端运行小程序

预计实现效果&#xff1a;在电脑桌面端实现小程序运行 技术实现&#xff1a;小程序容器技术实现&#xff08;案例使用FinClip SDK) 技术的原理&#xff1a; 该 SDK 主要包括应用交互层、安全防护、网络通信控制和安全运行容器四个组件。 应用交互层&#xff1a;应用交互层是…

DBSCAN算法实现【超详细注释】

DBSCAN 算法步骤 设置每个对象为未访问 随机选择一个未访问的点ppp,标记ppp表示访问 如果p的半径为nnn的邻域中至少存在MinPts个对象 我们就创建一个新的簇&#xff0c;并将ppp加入ccc设N 是ppp邻域中对象的集合对在NNN中的每个点p′pp′ 如果p′pp′是未访问的 标记p′pp′…

Matlab:数值积分与符号计算

Matlab数值积分定积分的数值求解实现自适应积分算法梯形积分法累计梯形积分多重定积分的数值求解实现符号计算符号对象及其运算符号微积分符号极限符号导数求不定积分符号方程求解数值积分 数值积分&#xff0c;用于求定积分的近似值。在数值分析中&#xff0c;数值积分是计算定…

SQL Server简介

SQL Server是微软的一款关系型数据库。某些平台吹得天花烂坠&#xff0c;今天第一次在自己的项目中使用了下&#xff0c;感觉不是那么好&#xff0c;特别是SQL语句的支持度还是很欠缺&#xff0c;如limit等都不支持&#xff0c;还有特别单双引号都是需要特别注意的,下面是SQL S…

从0到1CTFer成长之路——1git(全网最详细)

1.1.2.1 git 泄露 (1) 常规git泄露 安装docker sudo apt-get update sudo apt-get install docker 安装容器 docker pull ubuntu:18.04 然后发现请求超时 我们需要阿里云的镜像加速器 我们按照要求配置文件 没有/etc/docker 就自己创建 sudo mkdir -p /etc/docker 然后写入…

Cookie与Session 以及给CBV添加装饰器

文章目录Cookie与Session1、Django操作cookie简单实现用户登录加入装饰器2、Django操作session设置session获取session过期时间清除sessionCBV添加装饰器Cookie与Session HTTP被设计为”⽆态”&#xff0c;也就是俗称“脸盲”。 这⼀次请求和下⼀次请求 之间没有任何状态保持&…