Skip to content

Latest commit

 

History

History
165 lines (115 loc) · 4.19 KB

160-188927-随机数字.sy.md

File metadata and controls

165 lines (115 loc) · 4.19 KB
show version enable_checker
step
1.0
true

随机数字运算

回忆上次内容

  • 这次主要是完成加法程序
  • 输入加数和被加数生成求和公式和结果
    • 先构思
    • 一点点深入
    • 不断进行修改
  • 可以让程序自动生成随机数
    • 并且相加吗?

搜索

图片描述

  • 先去游乐场试试

随机游乐

图片描述

  • 导入 random 包
  • 看起来 random.randint
  • 有两个参数
  • 返回值类型是整数
  • 范围在两个数之间
  • 包括两个数

图片描述

具体使用

图片描述

  • 确实可以返回数字
    • 确实左右两个端点都能到达
  • 可以离开游乐场去写 py 程序了
    • 现在需要生成两个十以内数字
    • 然后显示相加结果

编写程序

图片描述

  • 编写程序
  • 测试成功
  • 注意哦
    • 文件可以叫做 random.py 吗?

胡乱尝试

图片描述

图片描述

  • 会报错
    • 为什么?
  • 还记得以前我们做的那个 input、process、output 的主控程序么?

导入过程

  • 程序会在本地先找 random.py
    • 找到了本地这个文件
    • 就不去找真正需要导入的类库 random 了
    • 可是在当前文件夹 random.py 中找不到 randint 函数
  • 所以就报错了

图片描述

  • 我们的名字不可以和类名相同
    • 不可以和包名相同
    • 最好也不和函数名相同
  • 那当年 input、process、output 的主控程序中
    • input不就是和函数名相同么
  • 为什么还好用呢?

input.py 作为函数名

  • 当年年少无知
  • 最好还是不要用 input.py 这样的名字

图片描述

  • 可为什么他还能用呢?

input

  • 在 input.py 中使用的 input 函数
    • input 是内置函数
    • 不需要引入任何包
    • 所以可以直接用
  • 在引入 input.py 的 process.py 中
    • 他要用的刚好是本地 input.py 中的 a 和 b
  • 所以执行结果不受影响
  • 不过,确实要注意重复的问题、
    • 包名
    • 类名
    • 函数名
    • 变量名
    • 文件名
  • 写的时候多加小心
  • 出了错,也要有大致思路
  • 容易误会不妨改个名字

改个名字

图片描述

  • 真的是随机十以内加法
  • 随机函数是不是绝对产生的是随机的数字呢?

事无绝对

  • 如果上限和下限被钳住
  • 那么随机数也就是固定的数值了

图片描述

  • 如果下限高于上限呢?

胡乱尝试

图片描述

  • 程序报错

    • 在/usr/lib/python3.8/random.py
    • 反向搜索empty range for randrange
  • 暴露位置

    • randint 在 /usr/lib/python3.8/random.py 248 行
    • randrange 在 /usr/lib/python3.8/random.py 226 行
  • 可以找到具体被调用的函数 randint

图片描述

  • 也可以找到具体报错的位置 226 行

图片描述

  • 天哪 😱
    • 随机也是有章可循的
    • 如果把时间控制住了
    • 那么得到的随机数就也许也是可以控制住的

总结

  • 这次主要是随机变量的生成
    • 使用 random 包中的 randint(a,b)方法
    • 生成[a,b]范围中的整数
    • 包括 a,b
  • 这真的可以生成随机数
    • 你感到随机带来的快乐了么?
    • 如果我想生成 6 位数字密码可以么?

图片描述

  • 下次再说 👋