论现在的学生最怕什么,那当然是题目,特别是一望望不到头的数学计算题,于是,初中生小编准备用Python做一个东西,让同桌开始骂人。。。
首先,让人家崩溃,肯定得给他亿点题目,而且是数学题。数学程序写起来简单还容易让人崩溃,主意就打定了,做数学题,那么,我们来看一下怎么做
首先,生成题目,咱也不说多,一百题就够了░ ∗ ◕ ں ◕ ∗ ░,至于代码。。。
我们看看如何生成题目吧
首先,导入random库,来创建随机的题目。
`from random import *`
然后,创建列表来装题目
`q = []`
接下来,就是一个循环来创建题目。

for i in range(100):s = ''w = randint(0, 100)s += str(w)s += '+'w = randint(0, 100)s += str(w)s += '='q.append(s)
题目的列表已经创建了,接下来我们再加上答案。
from random import *
q = []
a = []
for i in range(100):s = ''e = 0w = randint(0, 100)s += str(w)e += ws += '+'w = randint(0, 100)s += str(w)e += ws += '='q.append(s)a.append(e)

好了,两个列表都已经好了,接下来就要输出它们


print('>>>>>>>>>>>>>>>问题<<<<<<<<<<<<<<<')
print(q)
print('>>>>>>>>>>>>>>>答案<<<<<<<<<<<<<<<')
print(a)

有了输出之后,这个程序第一个版本也就这样了

from random import *
q = []
a = []
for i in range(100):s = ''e = 0w = randint(0, 100)s += str(w)e += ws += '+'w = randint(0, 100)s += str(w)e += ws += '='q.append(s)a.append(e)
print('>>>>>>>>>>>>>>>问题<<<<<<<<<<<<<<<')
print(q)
print('>>>>>>>>>>>>>>>答案<<<<<<<<<<<<<<<')
print(a)

运行一下看看效果。

这样。。。有个锤子的用啊!!同桌又不是一年级小学生,一百以内的加法谁不会啊这。。。
还得加强,
首先,把100以内的加法改成一百以内的加减乘除
利用randint随机选择数字,按照这个数字的值来判断加减乘数,就可以达到想要的小狗,至于产生加减乘除的代码,只需要改几个符号就可以了。然后除法的除数不能为零,这个也要考虑到。
还有一个问题,除法除不尽怎么办?总不能全是整数吧?确实不能。所以直接跟他说我答案不是整数,你也别输整数就行了

for i in range(100):qa=randint(1,4)s=''e=0if qa==1:w=randint(0,100)s+=str(w)e+=ws += '+'w = randint(0, 100)s += str(w)e += ws += '='if qa==2:w = randint(0, 100)s += str(w)e += ws += '-'w = randint(0, 100)s += str(w)e -= ws += '='if qa == 3:w = randint(0, 100)s += str(w)e += ws += 'x'w = randint(0, 100)s += str(w)e *= ws += '='if qa == 4:w = randint(0, 100)s += str(w)e += ws += '÷'w = randint(1, 100)s += str(w)e /= we=int(e)s += '='a.append(e)q.append(s)

加减乘除已经完事了,接下来我们要给它标一个序号,不然谁看的出来这是哪跟哪啊,这边就要在输出部分进行。
要标符号,首先要先把列表的中括号和字符串的引号去掉。
其实很简单,只需要遍历列表,然后把值一个个输入即可,


print('>>>>>>>>>>>>>>>问题<<<<<<<<<<<<<<<')
for i in q:print(i)
print('>>>>>>>>>>>>>>>答案<<<<<<<<<<<<<<<')
for i in a:print(i)

这样的话,输出结果就变成了一行一个式子,一行一个答案。
好,接下来就要给他标上号,并且改成一行五个式子,一行十个答案。


print('>>>>>>>>>>>>>>>问题<<<<<<<<<<<<<<<')
for i in q:
#输出编号,编号要加上括号以免和题目混淆,end改为几个空格,不然自动会换行。print('('+str(q.index(i)+1)+')',end=' ')#输出式子,因为要一行五个,所以也要改endprint(i,end='    ')#如果除以五的余数等于零,就要换行,这里加上1是因为列表的索引是从0开始的。if (q.index(i)+1)%5==0:print('')
#和上面是一样的
print('>>>>>>>>>>>>>>>答案<<<<<<<<<<<<<<<')
for c in a:print('('+str(a.index(c)+1)+')',end=' ')print(c,end='  ')if (a.index(c)+1)%10==0:print('')

好了,我们来看一下输出。

这里输出了许许多多的奇怪的编号,这是为什么呢?
遇到这种问题,先观察一下不正常信息中可以提供些什么线索。

通过观察,我们可以发现同样的编号会对应着同样的值。
这个能说明什么呢?
过了一会,我才想起index函数遇到多个同样的值时会挑选索引最小的,所以才引导的这个bug。
那我们来想一下解决的办法。
首先,在输出的部分解决会比较麻烦,需要判断有没有相同的,还要判断它真正的位置。。。那我们就换一种方法,直接在题目的生成就把答案相同的根给除掉,要加的内容也比较少。
修改过后的循环:
while True:
qa=randint(1,4)
s=’’
e=0
if qa1:
w=randint(0,100)
s+=str(w)
e+=w
s += ‘+’
w = randint(0, 100)
s += str(w)
e += w
s += ‘=’
if qa2:

    w = randint(0, 100)s += str(w)e += ws += '-'w = randint(0, 100)s += str(w)e -= ws += '='
if qa == 3:w = randint(0, 100)s += str(w)e += ws += 'x'w = randint(0, 100)s += str(w)e *= ws += '='
if qa == 4:w = randint(0, 100)s += str(w)e += ws += '÷'w = randint(0, 100)s += str(w)e /= we=int(e)s += '='
aqa = 1for i in a:if i==e:aqa=False
if aqa:a.append(e)q.append(s)
if len(q)==100 and len(a)==100:break

为了维持不重复并且题目数为100,我把循环改为while循环,用break来结束。
这样的话,相同序号的问题就解决了

至此,版本二就完成了。

from random import *
q=[]
a=[]
print('除法题目只需答出向下舍去的整数')
while True:qa=randint(1,4)s=''e=0if qa==1:w=randint(0,100)s+=str(w)e+=ws += '+'w = randint(0, 100)s += str(w)e += ws += '='if qa==2:w = randint(0, 100)s += str(w)e += ws += '-'w = randint(0, 100)s += str(w)e -= ws += '='if qa == 3:w = randint(0, 100)s += str(w)e += ws += 'x'w = randint(0, 100)s += str(w)e *= ws += '='if qa == 4:w = randint(0, 100)s += str(w)e += ws += '÷'w = randint(0, 100)s += str(w)e /= we=int(e)s += '='aqa = 1for i in a:if i==e:aqa=Falseif aqa:a.append(e)q.append(s)if len(q)==100 and len(a)==100:break
print('>>>>>>>>>>>>>>>问题<<<<<<<<<<<<<<<')
for i in q:print('('+str(q.index(i)+1)+')',end=' ')print(i,end='    ')if (q.index(i)+1)%5==0:print('')
print('>>>>>>>>>>>>>>>答案<<<<<<<<<<<<<<<')
for c in a:print('('+str(a.index(c)+1)+')',end=' ')print(c,end='  ')if (a.index(c)+1)%10==0:print('')

但是,还是存在一个大毛病,就是同桌直接抄答案不就行了?还非得一个个算?
为了防止同桌作弊,我这个贴心的好同学怎么会视而不见呢?那么,我们就来看看怎么才能让同桌更好的学习。
首先,一定要让他有答题的地方,但是在控制台好像不太好看,于是为了同桌的更好的学习体验,我们把他移植到turtle窗口
至于这一步,我不是边写代码边写文章的,就不把它拆开来讲了,就讲一下思路。
首先,要创建两支画笔,一支在顶上写出除号的提示,一支写题目。
运用numinput来向他要答案,
每次给他计分,最后显示分数
为了防止他乱写,设置只要不是一百分,我就不放你走,而且还是不一样的题目。
好了,接下来就放代码了

from turtle import *
from random import *
from time import *
setup(800, 600)
ht()
mp = Pen()
mp.ht()
tracer(0)
mp.penup()
mp.goto(0, 250)
penup()
tracer(0)
while True:q = []a = []try:if j:clear()write('必须满分才可以跑路!', font=('腾祥爱情体简', 30), align='center')sleep(3)except:passmp.write('除法题目只需答出向下舍去的整数', font=('腾祥爱情体简', 30), align='center')while True:qa = randint(1, 4)s = ''e = 0if qa == 1:w = randint(0, 100)s += str(w)e += ws += '+'w = randint(0, 100)s += str(w)e += ws += '='if qa == 2:w = randint(0, 100)s += str(w)e += ws += '-'w = randint(0, 100)s += str(w)e -= ws += '='if qa == 3:w = randint(0, 100)s += str(w)e += ws += 'x'w = randint(0, 100)s += str(w)e *= ws += '='if qa == 4:w = randint(1, 100)s += str(w)e += ws += '÷'w = randint(1, 100)s += str(w)e /= we = int(e)s += '='aqa = 1for i in a:if i == e:aqa = Falseif aqa:a.append(e)q.append(s)if len(q) == 100 and len(a) == 100:breaksc=0for i in q:clear()write('('+str(q.index(i)+1)+')'+i, font=('腾祥爱情体简', 30), align='center')j=(numinput('输入','输入你的答案'))if j==a[q.index(i)]:sc+=1else:passif sc==100:break

至此,你已经可以把这个玩意发给你的同桌了,祝你被同桌拉黑!

论如何用Python让你的同桌骂人...相关推荐

  1. 如何用python读取文本中指定行的内容

    如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...

  2. python判断素数的函数_如何用python求素数

    如何用python求100以内的素数? 质数(primenumber)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2.3.5.7.11.13.1 ...

  3. 怎么用python画个电脑_python语言还是java如何用python画爱心

    用python绘制爱心的基本步骤如下: 002pc.com对<python语言还是java如何用python画爱心>总结来说,为我们学习Python很实用. 首先先下载安装好python程 ...

  4. python怎么读_如何用Python读写文件

    前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于 ...

  5. 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  6. 如何用Python实现超级玛丽的人物行走和碰撞检测?

    作者 | marble_xu 编辑 | 郭芮 出品 | CSDN博客 在<如何用 Python 实现超级玛丽的界面和状态机?>这篇文章中我们讲解如何用代码实现界面和状态机,本文详解人物行走 ...

  7. 如何用Python和BERT做中文文本二元分类?| 程序员硬核评测

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 作者 | 王树义 来源 | 王树芝兰(ID:nkwangshuyi) 兴奋 去年, Google 的 B ...

  8. 如何用Python和深度神经网络识别图像?

    本文授权转自微信公众号芝兰玉树 作者 | 王树义 只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类.快来试试吧! 视觉 进化的作用,让人类对图像的处理非常高效. 这 ...

  9. 如何用Python画一朵太阳花

    如何用Python绘制一朵太阳花 准备:1.Python3.6 2.win7 过程: 打开Python shell界面: 2.建立脚本 3.编写程序 4.保存脚本 5.运行检验 转载于:https:/ ...

  10. 用visio画用例图小人_教你如何用 Python 打飞机 ?

    前言:python 除了生孩子 ,啥都会 .包括打飞机 !今天就来教你如何用 python 打飞机 ! 简述 相信你是一个单纯的孩子说的打飞机是指啥意思 ,对吧 ?嗯 ,没毛病 .就是 pygame ...

最新文章

  1. retinaface 改进
  2. 【易网库】周年庆幸运大抽奖, 有机会获3年免费主机空间
  3. Terminal终端的快捷键
  4. 2021计算机一级新增知识点,2021年计算机一级知识点.doc
  5. python的变量与注释
  6. windows下的workon env
  7. CSharpThinking---C# 要点(附加三)
  8. WOE(weight of evidence, 证据权重)
  9. HDU - 4780费用流
  10. 什么是聚集索引和非聚集索引 ( 或者聚簇索引和非聚簇索引 )
  11. ed2k链接文件,最快下载方式
  12. 联想服务器修改开机密码,联想电脑怎么修改开机密码
  13. 1:0 本立而道生!
  14. Pytorch入门实战 | 第P2周:彩色图片识别
  15. WLAN配置三层旁挂直接转发
  16. 阿里云 SLB证书记录
  17. weak 属性需要在dealloc中置为nil吗
  18. IData及DataQ使用心得
  19. 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
  20. 几款数据恢复工具的使用

热门文章

  1. Aircrack-ng套件——无线破解原理及工具详解
  2. 管道 pipe是什么?(进程通信的一种方式)
  3. php 16进制 声明,php16进制转换
  4. Contest3115 - 2021级新生个人训练赛第23场_问题 H: 家庭作业
  5. Android桌面插件的开发
  6. 【安装配置】DirectAdmin安装Nginx方法
  7. 邮件发送平台哪个好?大家究竟该如何选择?
  8. MAE 自监督算法介绍和基于 EasyCV 的复现
  9. 如何使用Topcoder
  10. 欧拉回路和Hanmilton回路