Let's add a little feature to our last code. The Exercizes will be saved automatically into a doc file, thanks to the python-docx module. We have talked yet about this module and now we put it in a 'real' situation. The output is not so neat, but you can make an idea of what you could do with it in cases like this to make things a little faster, without the need of copy and paste the output in word manually. So, let's code.
http://python-docx.readthedocs.io/en/latest/user/quickstart.html
http://python-docx.readthedocs.io/en/latest/user/quickstart.html
from PIL import Image
from IPython.display import display
import os
from random import shuffle
from docx import Document
from docx.shared import Inches
WIDTH = 50
HEIGHT = 50
width = 11
height = 11
LEFT = int(WIDTH/8)
MIDDLE = LEFT*3
RIGHT = LEFT*5
UP = LEFT
DOWN = RIGHT
big = Image.new("RGB",(WIDTH,HEIGHT),'white')
little = Image.new("RGB",(width,height),'gray')
l2 = Image.new("RGB",(width-2,height-2),'white')
little.paste(l2,(1,1))
def paste(x,y):
global big
big.paste(little,(x,y))
def dado(x):
if x == 1 or x==3 or x==5:
paste(MIDDLE,MIDDLE)
if x==2 or x==3 or x==4 or x==5 or x==6:
paste(LEFT,UP)
paste(RIGHT,DOWN)
if x==4 or x==5 or x==6:
paste(RIGHT,UP)
paste(LEFT,DOWN)
if x==6:
paste(LEFT,MIDDLE)
paste(RIGHT,MIDDLE)
return big
def play():
a = [1,2,3,4,5,6]
shuffle(a)
ap = a.pop()
dado(ap)
x = 1
def main():
global x
print("N."+str(x))
x +=1
print("A B")
global big
play()
two = Image.new("RGB",(WIDTH*2+12,WIDTH+7),'gray')
two.paste(big,(3,3))
big = Image.new("RGB",(WIDTH,HEIGHT),'white')
play()
two.paste(big,(WIDTH+8,3))
# two.show() # UNCOMMENT IF YOU WANT TO SEE IT IN THE VIEWER
display(two)
two.save("dadi.png")
par = doc.add_paragraph("A B")
r = par.add_run()
doc.add_picture("dadi.png")
par = doc.add_paragraph("[] A>B [] B>A")
print("[ ] A>B [ ] B>A")
print()
print()
if __name__ == '__main__':
doc = Document()
doc.add_heading("Esercizi di Matematica")
for i in range(15):
main()
nome = input("Nome del documento word:")
doc.save("{}.docx".format(nome))
Comments
Post a Comment