上次了解的是 字符串
字符串 就是 字符的串
可以有正索引
也可以有负索引
字符串长度 可以用 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