Python初学案例程序员都会的养娃学习神器——Python随机生成算术题,外甥女儿礼貌的表示要给我送礼~(附源码)

Posted 嗨!栗子同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python初学案例程序员都会的养娃学习神器——Python随机生成算术题,外甥女儿礼貌的表示要给我送礼~(附源码)相关的知识,希望对你有一定的参考价值。

前言

前几天去我姐家里蹭饭吃,发现我姐家里的小外甥女儿已经上小学了,正在疯狂赶作业,加减

乘除还有很多题目都经常出错。

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

我姐说老师每天给他们布置了作业:

每天坚持做乘法和加减法混合运算。平常不仅费纸张还老是需要出题目,脑瓜子都想懵了

这我必须帮帮忙,用Python写了一段自动生成小学生计算题的代码,这下子外甥女儿应该会更

喜欢我这个姨姨吧~

正文

1)环境准备

随机生成生成计算题,那我们便需要导入random模块。

 环境安装:python 3.8: 解释器、pycharm: 代码编辑器、 相对应的安装包/安装教程/激活码/

使用教程/学习资料/工具插件 可以直接找我厚台获取 。这次的内容很简单不需要安装什么模

块,直接安装完Python可以直接使用的哈~

2)主程序

import random
def add():
    a=random.randint(0,10)
    b=random.randint(0,10)
    print(f"a+b=?")
    c=input(">")
    if a+b!=int(c):
        print("wrong!")
    else:
        print("right!")

def subtract():
    j = random.randint(0, 100)
    h = random.randint(0, 100)
    print(f"j-h=?")
    s = input(">")
    if j - h != int(s):
        print("wrong!")
    else:
        print("riht!")
def multiplication():
    x=random.randint(0,100)
    y=random.randint(0,100)
    print(f"x*y=?")
    z=input(">")
    if x*y!=int(z):
        print("wrong!")
    else:
        print("riht!")
def divide():
    l = random.randint(0, 100)
    m = random.randint(1, 100)
    print(f"l/m=?")
    o = input(">")
    if l / m != float(o):
        print("wrong!")
    else:
        print("riht!")
i=1
while i<=10:
    i+=1
    add()
    multiplication()
    subtrct()
    divide()

3)效果展示

总结

好啦,今天的内容写到这里就结束了,一个简单的随机生成数学题库的小程序就做好啦。

我表示要立马给外甥女儿发个小红包缓和一下我们的关系,白白,我们下期内内容再见啦~

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

 🔨推荐往期文章——

项目0.9  【Python实战】WIFI密码小工具,甩万能钥匙十条街,WIFI任意连哦~(附源码)

项目1.0  【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~

项目1.5 【Python实战】年底找工作,年后不用愁,多个工作岗位随你挑哦~

项目1.6  【Python实战】听书就用它了:海量资源随便听,内含几w书源,绝对精品哦~

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了

python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了

python利用tkinter制作的点名神器,今天一个老师说让我帮他制作一个可以用来点名的小程序,由于和这个老师的关系比较好,还有就是教师这个岗位也是比较辛苦了,自己也就答应了下来,刚开始的时候,自己和这个老师在交接需求的时候,老师这边也是没有明确啥需求,再者就是这个也是自己义务奉献的,自己写的点名程序也是比较复杂的,当时交给老师的时候,老师半天来了一句,能整个简单的吗,就可以点名就行了。有点伤心,好吧,那就来个最简单的吧。
这个真的是非常简单了哈,文末附有下载地址

先看下效果图吧

python点名神器

头秃,话不多,直接上源码


#!/usr/bin/env python
# coding:gbk

import pyttsx3
import openpyxl
import random
import tkinter as tk
import tkinter.messagebox


#### 利用python第三方库pyttsx3来将文字用语音发送出来
def voice(a):
    ## pytttsx初始化
    engine = pyttsx3.init()
    ## a代表着需要转成音频的文字
    engine.say(a)
    # 注意,没有本句话是没有声音的
    engine.runAndWait()

### 创建一个list来保存已经被抽到名字的同学
ed_name= []

root = tk.Tk()  # 创建窗口对象
root.title("花名册     -----点名辅助程序   v1.10     ")
root.geometry("500x300")

# 创建抽取到的同学姓名展示部分
labelx=tk.Label(root,text="紫薇",fg="red",font=("宋体",80),width=9,height=2)
labelx.grid(row=0)

name_data = [] # 创建存储所有学生姓名的列表

def execl(filename, sheetname):
    wb = openpyxl.load_workbook(filename)  # 打开Excel
    sheet = wb[sheetname]  # 定位表单
    # 创建一个空列表
    column = 1
    for row in range(2, sheet.max_row + 1):
        if sheet.cell(row, column).value == "":
            continue
        name_data.append(sheet.cell(row, column).value)  # 将第一列的每一行数值遍历添加到name_data列表中;
    return name_data

execl("config\\\\name.xlsx","Sheet1")  # 调用一下execl函数,在没有开始点名之前先将姓名添加到name_data列表之中


def ceshi():
    while 2>1:
        a = random.randint(0,len(name_data)-1)## 产生随机数,作为list的下标index

        b = "下面请"+name_data[a]+"同学来回答问题"## 拼接成字符串

        ## 判断ed_name元素个数是不是与name_data列表中相同,如果相同,那么代表着所有的同学名字都被抽点过了
        if len(ed_name) == len(name_data):
            tk.messagebox.askokcancel("提示", '所有的学生都已经抽取了一边,如需要继续,请关闭该程序重新打开')
            break

        ## 判断被抽点到的同学是不是已经被抽点过,如果被抽点过,则跳过该同学
        if name_data[a] in ed_name:
            continue

        ed_name.append(name_data[a])    # 将被抽点到的学生添加到ed_name例表中,标记已经被抽点

        labelx = tk.Label(root, text=name_data[a], fg="red", font=("宋体", 80), width=9, height=2)# 在姓名框里面展示姓名
        labelx.grid(row=0)

        voice(b) ## 语音读取

        break

tk.Button(root, text="开始点名", width=15, command=ceshi).grid(row=1,padx=10, pady=10,sticky='s')  # s南边也就是下边


root.mainloop()  # 进入消息循环

思路介绍

相信大家看了上面源码,也是知道了大概思路

  • 第一步,该程序会读取当前目录下的name.xlsx文件,并将学生姓名app到name_data列表中
  • 第二步,产生一个随机数,来作为name_data的下标,来获取名称,并展示出来
  • 第三步,判断该学生是不是被第二次抽到,避免重复抽到同一个人
  • 第四步,判断当前是不是所有人都抽到了
  • 第五步,利用tk将GUI界面展示出来

name.xlsx文件填写格式

看到图片相信大家也就懂了

结束语

源码下载地址,不建议大家下载,还是希望大家可以靠技术吃饭,香香

以上是关于Python初学案例程序员都会的养娃学习神器——Python随机生成算术题,外甥女儿礼貌的表示要给我送礼~(附源码)的主要内容,如果未能解决你的问题,请参考以下文章

简单明了——小白看了都会的python操作mysql数据库

python制作的点名神器(代码简单,适合初学者),老师再也不用发愁点名了

小学生都会的Python,你该反省反省学学了!

Python小案例打工人必备:有了这款倒计时神器,再也不用担心自己的隐私被偷窥啦~(附源码)

python初学者案例,桌面文件搜索小程序的实现

卧槽!又来一个Python学习神器~