show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解的是
- 整型数字类变量
- integer
- 前缀为i
- 整型变量 和 字符串变量 不同
- 整型变量 是 直接存储二进制形式的
- 可以用 int()函数
- 将 2进制形式的 字符串
- 转化为 十进制整数
- 将 2进制形式的 字符串
int()
函数- 接受两个变量
- 待转化的字符串
- 字符串使用的进制
- int("101001",2)
- 接受两个变量
- 可以得到一个随机的整数吗?🤔
- 网站登陆的 验证码 就是随机数
- 验证码 是随机生成的
- 如果 不随机的话 就容易被人 破解
- 那 python 可以 生成随机数吗?
- 搜索到 random.randint函数
- 去游乐场 一探究竟
- 导入 random 包
- 然后查询 random.randint 的 帮助
- 看起来 random.randint
- 有两个参数
- 随机数产生的范围 在两个数之间
- 包括两个边界端点
- 返回值类型是整数
- 去试试
- 确实可以返回数字
- 左右两个端点都能到达
- 确实找到了这random包
- 就像当时 找到 自定义的
- get_fruits
- process
- out
- 一样
- 就像当时 找到 自定义的
- 可以离开游乐场
- 去写 py 程序了
- 先尝试一下 生成随机数
- vi random.py
- 保存并运行
-
注意红框中的
- 报错信息
-
random模块
- 来自于 /home/shiyanlou/random.py
- 这不是系统的random包
- 回忆之前的程序
- 在主控程序main.py中
- 试图导入input.py
- 文件的名字input.py
- 和系统中的要用的函数名input
- 起冲突了
- 无法调用函数 了
- 和系统中的要用的函数名input
- 要注意 标识符撞车的问题
- 包名
- 类名
- 函数名
- 变量名
- 文件名
- 系统的random包
- 本该在哪里呢?
- 搜索
- 注意file前后都是
双
下划线- dunder
- double underline
-
找到了 random模块 的位置
- /usr/lib/python3.8/random.py
-
找到了 random模块 的位置
- /usr/lib/python3.8/random.py
-
程序会在本地先找 random.py
- 找到了 本地这个文件
- /home/shiyanlou/random.py
- 找到了 本地这个文件
-
就再找了
- 真正需要导入的
- /usr/lib/python3.8/random.py
- 就无法导入了
- /usr/lib/python3.8/random.py
- 真正需要导入的
-
当前文件夹的random.py 中
- 找不到 randint 函数
- 所以就报错了
-
出了错
- 是我们前进的见证
- 慢慢 找到原因
- 就要修改
- 把本地的random.py改名
- 改为 random_add.py
mv random.py random_add.py
- 将random.py的文件名
- 改为 random_add.py
- 目前状态
- random.py消失了
- 可以看到 random_add.py
import random
i_left = random.randint(1,9)
i_right = random.randint(1,9)
i_sum = i_left + i_right
print(i_left, "+", i_right, "=", i_sum)
- 修改代码
- 保存并运行
- 测试成功
- 真的是 十以内随机加法
- 随机函数 可以产生 固定数值吗?
- 如果上限和下限 被钳位住
- 那么随机数 也就是固定的数值 了
- 如果下限高于上限呢?
- 程序报错
- 在/usr/lib/python3.8/random.py
- 反向搜索
- /empty range for randrange
- 真的找到了抛出异常的位置
- 按n查找下一个匹配
- 可以找到具体报错的位置 226 行
- 天哪 😱
- 随机也是有章可循的
- 随机数 也是 算法计算得到的结果
-
这次主要是 随机数的生成
- 使用 random包中的 randint(a,b)函数
- 生成[a,b]范围中的整数
- 包括 a,b
-
这真的可以 生成随机数
- 你感到随机 带来的快乐了 么?
- 如果我想生成 6位数字密码 可以么?🤔
- 下次再说 👋