Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0079
- 这是 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`
---- 配套视频
- 上次了解的是
字符串
-
字符串 就是
字符的串- 字符串长度 可以用
len函数 - 字符可以用
下标索引 []- 可以有正索引
- 也可以有负索引
- 字符串长度 可以用
-
可以有随机数字吗?🤔
- 怎么玩呢?🤔
- 向ai提问🙋
- 得到 random.randint 函数
- 去游乐场 一探究竟
import random
random.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 random
r = 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句
- 错误之后不清零了
- 这次主要是 随机数的生成
- 使用 random包中的 randint(a,b)函数
- 生成[a,b]范围中的整数
- 包括 两端 a,b
- 手机验证码 可以自己生成吗?🤔
- 下次再说 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。





















