Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0080
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在:
个人网站: `https://oeasy.org`
蓝桥云课: `https://www.lanqiao.cn/courses/3584`
GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 配套视频
- 上次主要是 随机数的生成
- 使用 random包中的 randint(a,b)函数
- 生成[a,b]范围中的整数
- 包括 两端 a,b
- 手机验证码 可以自己生成吗?🤔
- 但是这样的话
- 最小值 也得是 100000
- 第1位 不能是0 了
- 看起来做了个循环
- 代码可以理解
import random
# 生成一个6位的随机数字,每位数字可以是0-9
random_number = ""
for _ in range(6):
random_digit = random.randint(0, 9)
random_number += str(random_digit)
# 显示生成的随机数字
print(f"生成的6位随机数字是: {random_number}")
- 运行成功
- 我想要结果
- 不止包括数字
- 还包括大小写字母
- 可以吗?
import random
import string
# 定义字符集,包括数字、大写字母和小写字母
characters = string.digits + string.ascii_uppercase + string.ascii_lowercase
# 生成一个6位的随机字符串
random_string = ""
for _ in range(6):
random_char = random.choice(characters)
random_string += random_char
# 显示生成的随机字符串
print(f"生成的6位随机字符串是: {random_string}")
- 看起来 取值范围 扩大了
- characters = string.digits + string.ascii_uppercase + string.ascii_lowercase
- 想要出了数字、大小写字母
- 还包括符号
import random
import string
# 定义字符集,包括数字、大写字母、小写字母和符号
characters = string.digits + string.ascii_uppercase + string.ascii_lowercase + string.punctuation
# 生成一个6位的随机字符串
random_string = ""
for _ in range(6):
random_char = random.choice(characters)
random_string += random_char
# 显示生成的随机字符串
print(f"生成的6位随机字符串是: {random_string}")
- 取值范围 更大了
- characters = string.digits + string.ascii_uppercase + string.ascii_lowercase + string.punctuation
- 结果有可能没有某类符号
- 想要结果
必须包含 - 数字
- 大写字母
- 小写字母
- 符号
- 想要结果
- 在原来的上下文基础上
- 继续追加提问
import random
import string
# 定义字符集
digits = string.digits # 数字
uppercase_letters = string.ascii_uppercase # 大写字母
lowercase_letters = string.ascii_lowercase # 小写字母
punctuation = string.punctuation # 符号
# 确保生成的字符串中包含至少一个数字、一个大写字母、一个小写字母和一个符号
random_string = [
random.choice(digits),
random.choice(uppercase_letters),
random.choice(lowercase_letters),
random.choice(punctuation)
]
# 从所有字符集中选择剩余的两个字符
all_characters = digits + uppercase_letters + lowercase_letters + punctuation
for _ in range(2):
random_string.append(random.choice(all_characters))
# 打乱顺序以确保随机性
random.shuffle(random_string)
# 将列表转换为字符串
random_string = ''.join(random_string)
# 显示生成的随机字符串
print(f"生成的6位随机字符串是: {random_string}")
- 四类字符 各来一个
- 剩下两个 随机得到
- 然后让顺序 随机
- 可以让 随机结果 固定下来 吗?
- 如果上限和下限 被钳位(clamp)
- 那么随机数
- 也就 被 钳成
- 固定数值 了
- 如果下限高于上限呢?
- 程序报错
- ValueError
- 空的范围
- 对于randrange函数
- 去找找
- 这个 报错信息
- 在/usr/lib/python3.8/random.py
- 反向搜索
- /empty range for randrange
- 真的找到了抛出异常的位置
- 按n查找下一个匹配
- 可以找到具体报错的位置 226 行
- 天哪 😱
- 随机也是有章可循的
- 随机数 也是 算法计算得到的结果
- 也就是说
- 随机 也是
可控的?! 😱
- 随机 也是
- 物理世界 中的随机
- 认为是真随机
- 上帝扔骰子
- 存在薛定谔的猫
- 但可能 在概率上 动心思
- 盲盒
- 大乐透
- 虚拟世界的随机
- ssr
- 抽卡
- 除了算法本身的 控制之外
- 随机函数 本身 也是可以 被控制的
- 不存在 真随机
- ai怎么看呢?
- 这次输出了
- 随机数字 密码
- 这下知道
- 平时收到的
验证码 - 怎么来的了
- 平时收到的
- 计算机中 没有所谓的 真·随机
- 一般都是 依靠时间为变量 得到的 随机
- AI 能
如何辅助我们编程呢? - 我们下次再说~ 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。




















