python 随机数_Python 初体验 神奇的数字

800af429561979f28afdee34c323b3a6.png

趣乐博思少儿编程系列

趣乐博思少儿编程系列,以乐趣为首要前提,向少儿讲解最基本的计算机科学常识,在动手实践中培养孩子的创造力,思考力,想象力,逻辑思维能力和协同工作能力。

针对不同年龄段的孩子,从初始的可视图形化编程逐步过渡到高级计算机语言,并结合开源电子器件进行软硬件结合的项目制作,激发孩子们的积极性和对计算机科学的兴趣。


前言

Hello!小朋友们,又见面啦!

昨天我们复习了 for 循环的用法和注意事项,又谈到了在程序中“可读”的重要性。

今天我们继续学习新知识,探索 Python 的神奇世界。

我们的作品是一个有趣的小游戏,加油!

随机数

随机数是一个数学上的概念,在各种计算机语言里都有大量的使用场景,Python 语言自然也不例外。

816557fdf4a5bbcb8a297032df5b16eb.png什么是随机?

e972623071856a5244146827e4a9d8a7.png就是不确定的意思

怎么理解随机呢?

比如说你和同学玩石头剪刀布,每一次他出什么对你而言是不确定的,这就是随机。

268aa9ce26ed025d02f3fbc5c9425abf.png

rock-paper-scissors

再比如说,从一个鱼缸里抓阄儿,能抓到什么也是随机的。

5651265be7343cf833aa5d8d422fffa7.png

draw lots 

那么在 Python 中,怎么实现随机数呢?

方法非常简单,Python 有一个内置的模块,名字就叫做 random,这个模块提供好几种与随机相关的函数,所以,导入这个模块就可以实现随机数的生成了:

import random

r = random.random()

print(r)

89147f262f251a43d20e62b5475278e2.png

随机数的生成

这个随机数是从 0 到 1 但不包括 1 的一个小数,每运行一次都会变换一个。

816557fdf4a5bbcb8a297032df5b16eb.png会不会两次都一样?

e972623071856a5244146827e4a9d8a7.png理论上会的,那运气真是爆棚了...

好了,有了生成随机数的新技能,我们来做一个小游戏。

一个小游戏

我们现在来设计一个跟随机数有关的小游戏,规则非常简单:

  • 每次生成一个随机的自然数

  • 我们每次猜一个数,由程序来判断

  • 每次猜完,程序会提示答案是大了还是小了

  • 一直猜下去,知道猜对了为止,看谁猜的最快

我们来分析一下,这个程序应该怎么实现。

思路很重要

写程序并不是一直守在计算机前,更多的时候是在分析问题,寻找解决问题的思路。

06b76c1b276f24ee627f55d49a4fe9a9.png

别误解,我在寻找编程的思路

首先,怎么生成随机数我们已经知道了,但我们生成的是小数,没关系,函数 random.randint() 可以生成自然数,第一个问题解决了。

其次,计算机怎么来接受我们输入的一个数字?

这个用 input() 函数来实现,一个小例子,大家自己试试:

name = input('请问,你的名字是:')
print('你好', name)

6178b66ce0f8b90b345fc8d93e5f7b4d.png

接收用户的输入

最后,怎么实现由计算机进行判断,并且一直到猜对为止?

好,答案马上揭晓。

选择判断

选择判断的实现是我们今天的重点,也就是我们上次课提到的程序中的三种控制结构的最后一种。

在 Python 语言中,我们使用 if...elif...else 结构来实现选择结构

816557fdf4a5bbcb8a297032df5b16eb.png什么意思?

e972623071856a5244146827e4a9d8a7.png还是看图来理解吧

9771afbba36b8709c01b6752c3ac7525.png

岔路口

在岔路前,我们需要做一下判断,进而选择一条路来走下去,这就是判断选择的含义,用代码表示是这样的:

star = input('你为自己的勤奋打几星')

# int() 函数把字符转换为数字
star = int(star)

if star > 4:
print('很满意!')
elif star > 2:
print('还行吧!')
else:
print('需要改进啦')

0cc0910e8b3422a980d983b697222489.png

一个完整的选择结构

无限循环

到目前,还剩下一个问题,就是在猜对以前,程序需要一直不停的接收我们输入的数字,怎么才能做到这一点?

这个就要使用非常特殊的循环了,也是除了 for 循环外的另外一种循环 —— while

while True:
print('快按停止!')

大家可以试一下这两行代码。

打印的文字会快速闪现无数遍,直到你按下停止为止,这就是无限循环,也叫做死循环,一般是要在程序中避免出现的。

但是,在我们这个特定的场景中,恰好需要用到它。

那么,在猜对时,怎么来让无限循环停止呢?

我们加一行代码,看这个例子:

while True:
print('不用着急,只打印一次')
break

在循环中,一旦遇到 break,循环就会马上终止,无论是 for 还是 while循环,都是一样的。

游戏的实现

经过以上一系列的分析和学习,我们已经彻底的解决了这个小游戏的各方面的问题!

这就像是我们已在心中有了文章的脉络,剩下的就是提笔书写了,一份完整的代码是这样的:

import random

# 限制数的范围为 1 到 100
r_int = random.randint(1, 101)

while 1:
answer_str = input('请输入一个你猜的数:')
answer_int = int(answer_str)
if answer_int < r_int:
print('你猜的数:' + answer_str + '小了')
elif answer_int > r_int:
print('你猜的数:' + answer_str + '大了')
else:
print('你猜对啦!答案是:' + answer_str)
break

来玩一次游戏吧:

思考一个问题,怎么才能更快的猜中这个随机数?

呼!今天的内容有点多哈,老师把这一讲早点发出来,大家马上可以实践啦!

还是那句话,有问题,我们留言区见~


「 Python 初体验 

从零开始,以通俗易懂的方式,快乐有趣的开启 Python 语言的大门~

清华计算机系哥哥专业讲解

d465dbc20c71f809f8bf1150aef73661.png


趣乐博思教育

遇见你更优秀的孩子

6bbbcbfc262be37121a92e04793d8934.png

‏r

如果您喜欢 趣乐博思教育,请关注我们的公众号,发现您更优秀的孩子!

如果您从这篇文章有所收获,请点亮下方 在看,或转发到朋友圈,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值