大家好,欢迎来到IT知识分享网。
视频加载中…
如何生成验证码_随机数字密码_真随机
回忆上次内容
- 上次主要是 随机数的生成
- 使用 random包中的 randint(a,b)函数
- 生成[a,b]范围中的整数
- 包括 两端 a,b
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图1 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-axegupay5k/98ef71dca7b64cc9b5f4ba8798dd852c~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=TaGfEGTsHZd9%2FFlUVK6EpCJL%2BOk%3D)
- 手机验证码 可以自己生成吗?
提问
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图3 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/3775998d0e0545efab47a6027629fa1a~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=2mElP5z%2FfzLHcLDm09TtoTABndU%3D)
- 但是这样的话
- 最小值 也得是
- 第1位 不能是0 了
再问
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图5 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/e75af00d43544da4a4d53eab0203f778~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=zkHkHt6P%2B9rB1uHv%2FuGWdrHdmlI%3D)
- 看起来做了个循环
- 代码可以理解
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}")
结果
- 运行成功
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图7 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/f9463eb1719d43c981a154061fa167fa~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=kUqPuF0Uktml%2BCQjXG7h6kofy%2Bk%3D)
- 我想要结果
- 不止包括数字
- 还包括大小写字母
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图9 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/57c70957c7cb4c0a986ee7e6e8f021b4~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=tYNkgcUb4oBkrHK2rVpR%2FmiyjlA%3D)
- 可以吗?
提问
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图11 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/add9329ba6094dbca35418dc71bcbc36~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=ToNZDydC5g51N3LUFC%2FxMXGZObY%3D)
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
结果
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图13 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/31bfc53492024fdf8722ce8e5a7c9f65~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=bOQ%2Bs4KRcHVkmOiO6BruLojkr%2Bs%3D)
- 想要出了数字、大小写字母
- 还包括符号
再问
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图15 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/1d698a1d08174dd08cadadd6c7aa64ec~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=gzIDrStUEFpQrjfzjHcpeHk4jRs%3D)
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
结果
- 结果有可能没有某类符号
- 想要结果必须包含
- 数字
- 大写字母
- 小写字母
- 符号
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图17 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/3f6e3b2943ea4abdb8ed35029be323e0~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=oGOPVBn%2BmvcTSicVN7EXvmiu8%2F8%3D)
- 在原来的上下文基础上
- 继续追加提问
提问
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图19 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/0cc6eb599f1646b1aa513cf25d22037f~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=NRi%2FzK%2BhVR0hfIx04qP%2Brf4e2hw%3D)
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)
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图21 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/bd9ab17ce6d04fbdb5763aa5079b2ea9~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=A2xu48vWPKLIePyK5vO8pSGhtJs%3D)
- 那么随机数
- 也就 被 钳成
- 固定数值 了
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图23 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/608e1a0ac53a4dcb9b8f33e4b3a0c18e~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=%2FFSyQ78GPa4iiwLW%2F0l0BSKbICI%3D)
- 如果下限高于上限呢?
胡乱尝试
- 程序报错
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图25 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/a9b4fd043a1b451691c2e55883aad6e6~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=x99mIsGnw4A1DsHnw4fpIdjDhkU%3D)
- ValueError
- 空的范围
- 对于randrange函数
- 去找找
- 这个 报错信息
搜索
- 在/usr/lib/python3.8/random.py
- 反向搜索
- /empty range for randrange
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图27 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/b6796e8dd7ba439fa162829101146799~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=wVQRrnRVAFmZkJsyIkY0eOlFB1M%3D)
- 真的找到了抛出异常的位置
位置
- 按n查找下一个匹配
- 可以找到具体报错的位置 226 行
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图29 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/4a69772b40b141dd9347f3ae9cd30fde~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=GYXU1oSemlY30LaXjTg%2BCD%2FoAi4%3D)
- 天哪
- 随机也是有章可循的
- 随机数 也是 算法计算得到的结果
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图31 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/81acc94e17154049ac3d5aa43dbc5de5~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=RJyNU8H3Itqo%2FwV5qfCzCX%2Bqt7I%3D)
- 也就是说
- 随机 也是 可控 的?!
幸运大转盘
- 物理世界 中的随机
- 认为是真随机
- 上帝扔骰子
- 存在薛定谔的猫
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图33 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/133f1e9680f14bb78ae9654fe307afa6~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=1SM1afMhPJIfarf3bnsN2l%2B%2BpxI%3D)
- 但可能 在概率上 动心思
- 盲盒
- 大乐透
对比
- 虚拟世界的随机
- ssr
- 抽卡
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图35 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/3af6b30cf329482e9380ed007b2ed070~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=ZKdT8%2BwYNJ268I3SDu76B8gxNcQ%3D)
- 除了算法本身的 控制之外
- 随机函数 本身 也是可以 被控制的
- 不存在 真随机
- ai怎么看呢?
计算机中的随机
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图37 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/3d6d8305af98408dbc28678d8e108606~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=J10JEVX8crPwxgDTDCHEu7lkBgk%3D)
总结
- 这次输出了
- 随机数字 密码
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图39 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/65ad2040b01344aaa6645cf39ff69db5~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=kOucR0JXRNjuUcHjsKFzcQNdL5k%3D)
- 这下知道
- 平时收到的验证码
- 怎么来的了
![[oeasy]python080如何生成验证码_随机数字密码_真随机插图41 [oeasy]python080如何生成验证码_随机数字密码_真随机](https://p3-sign.toutiaoimg.com/tos-cn-i-6w9my0ksvp/5fbd5d58582e43f29f199b34880fec2b~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1746571012&x-signature=GgTbyRjWS5775g2LQ3qgn734KGY%3D)
- 计算机中 没有所谓的 真·随机
- 一般都是 依靠时间为变量 得到的 随机
- AI 能如何 辅助我们编程呢?
- 我们下次再说~
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/177547.html