[oeasy]python079_如何产生随机数字_random_随机来源

overmind1980 2025-03-27 08:44:43

[oeasy]python079_如何产生随机数字_random_随机来源回忆上次内容

上次了解的是 字符串

字符串 就是 字符的串

可以有正索引

也可以有负索引

字符串长度 可以用 len函数

字符可以用下标索引 []

可以有随机数字吗?🤔

怎么玩呢?🤔

搜索

向ai提问🙋

得到 random.randint 函数

去游乐场 一探究竟

具体使用

import randomrandom.randint(1, 10)random.randint(1, 10)random.randint(1, 10)

导入 random 包

确实可以返回数字

左右两个端点都能到达

确实找到了这random包

random包位于 /usr/lib/python3.8/random.py

就像找到 当时自己做的包(my_file) 一样

random包中的randint啥意思🤔

查询帮助

查询 random.randint 的 帮助

help(random.randint)

randint

rand 随机

int 整数

随机整数

random.randint

两个边界端点

两个边界 都有可能得到

有两个参数

返回值类型 是 整数

离开游乐场

去写个随机数 py程序

尝试

vi random.py

编辑random.py

import randomr = random.randint(1, 10)print(r)

保存并运行

出错了

报错了

注意 红框

random模块

来自于 /home/shiyanlou/random.py

这好像 不是系统的random包

系统的random包

在哪儿来着呢?

寻找

退出vim

向上翻

random包位于

/usr/lib/python3.8/random.py

引入的random包

不是系统给的random包?!😱

导入过程

导入random时

import random

程序会在 当前位置 先找 random.py

/home/shiyanlou/random.py

找到了 本地这个文件

就 不再找 了

/usr/lib/python3.8/random.py

真正需要导入的

说白了就是

导错 位置了!

冷静

出错

不是我们无能的标志

而是 我们努力的见证

更是 进步的阶梯

去修改!

程序改名

本地的random.py

不能 再重名了

必须改名

改为 random_new.py

mv random.py random_new.py

将random.py的文件名

改为 random_new.py

目前状态

random.py消失了

可以看到 random_new.py

新想法

想求两个随机数的和

怎么写提示词呢?🤔

提问

使用python里面编写终端程序,生成两个十以内的随机整数,然后让这两个数相加,得到结果。显示整个加法过程。不要使用函数,直接执行就好。

新建文件

vi random_add.py

新建random_add.py

import random# 生成两个10以内的随机整数num1 = random.randint(0, 10)num2 = random.randint(0, 10)# 计算和sum_result = num1 + num2# 显示加法过程print(f"生成的两个随机数是: {num1} 和 {num2}")print(f"{num1} + {num2} = {sum_result}")

结果

效果很好

想出一道十以内加法的题目

让小朋友在终端做题

然后计算机负责判断对错

对了打✅

错了打❌

提问

import random# 生成两个10以内的随机整数num1 = random.randint(0, 10)num2 = random.randint(0, 10)# 计算正确的和correct_sum = num1 + num2# 显示加法题目print(f"请计算: {num1} + {num2} = ?")# 获取用户输入的答案user_answer = input("请输入你的答案: ")# 将用户输入转换为整数try:    user_answer = int(user_answer)except ValueError:    print("请输入一个有效的整数!")    exit()# 判断用户答案是否正确if user_answer == correct_sum:    print("✅ 正确!")else:    print(f"❌ 错误!正确答案是: {correct_sum}")

结果

效果达成

程序也完全能够看懂😄

想让小朋友做十以内的加法

做对3道之后

停止

提问

import random# 初始化变量correct_count = 0  # 记录做对题目的数量max_correct = 3    # 达到这个数量后停止# 循环,直到小朋友做对三道题while correct_count < max_correct:    # 生成两个1到10之间的随机数    num1 = random.randint(1, 10)    num2 = random.randint(1, 10)        # 生成题目    question = f"{num1} + {num2} = ?"        # 获取用户答案    try:        user_answer = int(input(question + " "))                # 计算正确答案        correct_answer = num1 + num2                # 检查答案是否正确        if user_answer == correct_answer:            print("Correct!")                        correct_count += 1  # 答对题目,计数器增加        else:            print("Wrong! The correct answer is:", correct_answer)            correct_count = 0  # 重置计数器,因为这次没做对    except ValueError:        print("Please enter a valid number.")    # 检查是否达到三道题    if correct_count == max_correct:        print("Great job! You've answered three questions correctly.")    else:        print(f"Keep going! You've got {max_correct - correct_count} more to go.")# 结束print("Practice finished.")

效果

如果出错了呢?

目前是必须连续三次答对才退出

我需要累积三次答对就可以退出

三问

新建文件

vim random_add_2.py

新代码

import random# 初始化变量correct_count = 0  # 记录做对题目的数量max_correct = 3    # 达到这个数量后停止# 循环,直到小朋友累积做对三道题while correct_count < max_correct:    # 生成两个1到10之间的随机数    num1 = random.randint(1, 10)    num2 = random.randint(1, 10)        # 生成题目    question = f"{num1} + {num2} = ?"        # 获取用户答案    try:        user_answer = int(input(question + " "))                # 计算正确答案        correct_answer = num1 + num2                # 检查答案是否正确        if user_answer == correct_answer:            print("Correct!")            correct_count += 1  # 答对题目,计数器增加        else:            print("Wrong! The correct answer is:", correct_answer)    except ValueError:        print("Please enter a valid number.")    # 检查是否达到三道题    if correct_count == max_correct:        print("Great job! You've answered three questions correctly.")    else:        print(f"Keep going! You've got {max_correct - correct_count} more to go.")# 结束print("Practice finished.")

最终效果

满足要求了

两个程序之间有什么区别呢?

对比代码

vimdiff random_add.py random_add_2.py

只删了一句话

原来的29句

错误之后不清零了

总结

这次主要是 随机数的生成

包括 两端 a,b

使用 random包中的 randint(a,b)函数

生成[a,b]范围中的整数

手机验证码 可以自己生成吗?🤔

下次再说 👋

蓝桥->https://www.lanqiao.cn/courses/3584

github->https://github.com/overmind1980/oeasy-python-tutorial

gitee->https://gitee.com/overmind1980/oeasypython

0 阅读:0
overmind1980

overmind1980

此用户有点懒,还没有正式介绍自己