【10月更文挑战第9天】「Mac上学Python 17」小学奥数篇3 - 找出神秘数字

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本篇将通过 Python 和 Cangjie 双语解决一个有趣的数字谜题,培养学生的数学推理能力以及编程的逻辑思维。

本篇将通过 PythonCangjie 双语解决一个有趣的数字谜题,培养学生的数学推理能力以及编程的逻辑思维。

guess.pngguess.png


关键词
  • 小学奥数
  • Python + Cangjie
  • 数字谜题

一、题目描述

老师设定了一个1到100之间的神秘数字。小朋友每次可以猜一个数字,如果猜错了,程序会提示猜测的数字是大了还是小了。小朋友需要通过多次尝试找到神秘数字。

  • 输入格式:用户每次从控制台输入一个猜测的数字。
  • 输出格式:如果猜对了,输出 "恭喜你,猜对了!";如果没猜对,提示 "大了""小了",并继续猜。

解题思路
  1. 生成神秘数字:在1到100之间随机生成一个神秘数字。
  2. 用户猜测:通过循环不断接收用户的猜测。
  3. 判断结果:根据用户的输入,提示猜测是否正确,并给出进一步的提示。
  4. 循环终止:猜对神秘数字后结束循环。

二、Python 实现

import random

# 随机生成1到100之间的神秘数字
secret_number = random.randint(1, 100)

print("请猜一个1到100之间的数字:")

while True:
    guess = int(input("你的猜测: "))

    if guess == secret_number:
        print("恭喜你,猜对了!")
        break
    elif guess < secret_number:
        print("小了")
    else:
        print("大了")

三、Cangjie 实现

package cjcDemo

import std.console.*
import std.random.*
import std.convert.*

main(): Int64 {
    let secret_number = Int64(Random().nextUInt64(100))
    println("请猜一个1到100之间的数字:")

    while (true) {
        print("你的猜测: ")
        let guess: Int64 = Int64.parse(Console.stdIn.readln().getOrThrow())

        if (guess == secret_number) {
            println("恭喜你,猜对了!")
            break
        } else if (guess < secret_number) {
            println("小了")
        } else {
            println("大了")
        }
    }

    return 0
}

四、图形展示(扩展部分)

以下为扩展内容,使用Python代码生成了一幅图来模拟猜数字游戏的交互过程。本部分是进阶扩展内容,当前阶段不要求理解

from PIL import Image, ImageDraw, ImageFont

# 创建画布
img = Image.new('RGB', (800, 400), color='white')
draw = ImageDraw.Draw(img)

# 绘制标题
draw.text((10, 10), "Guess the Secret Number", fill="black", align="left")

# 绘制模拟的猜测结果
draw.text((10, 50), "Attempt 1: Guess 50 - Too Low", fill="blue")
draw.text((10, 90), "Attempt 2: Guess 75 - Too High", fill="blue")
draw.text((10, 130), "Attempt 3: Guess 63 - Correct!", fill="green")

# 绘制装饰性的数字和提示框
draw.rectangle([10, 170, 790, 300], outline="black", width=2)
draw.text((20, 180), "Tips: Keep narrowing down your guesses!", fill="black")

# 保存图片
img_path = "guess_game_simulation.png"
img.save(img_path)
print(f"图形已保存到 {img_path}")

生成的图像如下:
guess_game_simulation.pngguess_game_simulation.png


五、示例执行

示例 1

请猜一个1到100之间的数字:
你的猜测: 50
小了
你的猜测: 75
大了
你的猜测: 63
恭喜你,猜对了!

六、小结

这道神秘数字的谜题让学生学会了循环控制条件判断的使用,锻炼了学生的逻辑推理能力,也展示了如何使用随机数在程序中制造不确定性。


上一篇: 「Mac上学Python 16」小学奥数篇2 - 分糖果问题

下一篇: 「Mac上学Python 18」小学奥数篇4 - 分数加减法


目录
相关文章
|
18天前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
54 5
|
20天前
|
数据安全/隐私保护 Python
【10月更文挑战第17天】「Mac上学Python 28」基础篇9 - 条件语句与逻辑判断
在Python中,条件语句和逻辑判断是控制程序执行流程的关键工具,帮助程序在不同条件下做出不同决策。通过本篇的学习,您将掌握单选、双分支、多选结构、单行条件表达式、条件嵌套、条件判断的类型和逻辑运算符的用法,从而更灵活地控制程序执行流程。
45 5
|
19天前
|
Python
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
34 2
|
21天前
|
存储 算法 Python
【10月更文挑战第16天】「Mac上学Python 27」小学奥数篇13 - 动态规划入门
本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。
87 3
|
23天前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
61 1
|
25天前
|
移动开发 数据可视化 Python
【10月更文挑战第13天】「Mac上学Python 24」小学奥数篇10 - 数列求和
本篇将通过 Python 和 Cangjie 双语实现数列求和的计算。通过这个题目,学生将学会如何通过公式法和循环法求解等差数列与等比数列的和。
63 3
|
23天前
|
算法 数据可视化 Python
【10月更文挑战第14天】「Mac上学Python 25」小学奥数篇11 - 最大公约数与最小公倍数
本篇将通过 Python 和 Cangjie 双语实现最大公约数(GCD)和最小公倍数(LCM)的计算。这个题目帮助学生理解如何运用数学算法,并将其与编程实现结合。
47 1
|
1天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####
|
1天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
1天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!