pythonで百ます計算のプリント作った話
家庭教師のアルバイトで使う百ます計算 1 のプリントを、PythonのPandas使ってlatexソースとして吐き出させようと考えた。
成果物
ソース
source.py
#Python 3.7.2
#pandas 0.24.2
import random
import pandas as pd
#プリアンブル
priamble=r"""
\documentclass[dvipdfmx,autodetect-engine,12pt]{jsarticle}
\usepackage{extsizes}
\begin{document}
\begin{center}
\large{百ます計算}\\
"""
print(priamble)
#吐き出したいページ数を指定
pages=10
num=pages*2-1
for x in range(num+1):
#行(1~9)確保
index1 = list(range(1,10))
#シャッフル
random.shuffle(index1)
#列(1~9)確保
columns1 = list(range(1,10))
#シャッフル
random.shuffle(columns1)
df=pd.DataFrame(index=index1,columns=columns1)
#DataFrame形式のtableのNaN値をスペース埋め
df1=df.fillna(" ")
#tableの罫線追加&jsarticle環境での諸々を置換
print(df1.to_latex(column_format="|l||l|l|l|l|l|l|l|l|l|").replace(r"\bottomrule","")\
.replace(r"\toprule",r"\hline").replace(r"\\",r"\\\hline").replace(r"\midrule",r"\hline"))
#一番最後の表を除き、下部の表のタイトルを出力
if(x!=num):
mid=r"""
\vspace{\baselineskip}
\vspace{\baselineskip}
\vspace{\baselineskip}
\large{百ます計算}\\
"""
print(mid)
ending=r"""
\end{center}
\end{document}
"""
print(ending)
感想
#Python 3.7.2
#pandas 0.24.2
import random
import pandas as pd
#プリアンブル
priamble=r"""
\documentclass[dvipdfmx,autodetect-engine,12pt]{jsarticle}
\usepackage{extsizes}
\begin{document}
\begin{center}
\large{百ます計算}\\
"""
print(priamble)
#吐き出したいページ数を指定
pages=10
num=pages*2-1
for x in range(num+1):
#行(1~9)確保
index1 = list(range(1,10))
#シャッフル
random.shuffle(index1)
#列(1~9)確保
columns1 = list(range(1,10))
#シャッフル
random.shuffle(columns1)
df=pd.DataFrame(index=index1,columns=columns1)
#DataFrame形式のtableのNaN値をスペース埋め
df1=df.fillna(" ")
#tableの罫線追加&jsarticle環境での諸々を置換
print(df1.to_latex(column_format="|l||l|l|l|l|l|l|l|l|l|").replace(r"\bottomrule","")\
.replace(r"\toprule",r"\hline").replace(r"\\",r"\\\hline").replace(r"\midrule",r"\hline"))
#一番最後の表を除き、下部の表のタイトルを出力
if(x!=num):
mid=r"""
\vspace{\baselineskip}
\vspace{\baselineskip}
\vspace{\baselineskip}
\large{百ます計算}\\
"""
print(mid)
ending=r"""
\end{center}
\end{document}
"""
print(ending)
もうすこし表を大きくしたかったです(geometryパッケージを使って余白調整もしてみましたがうまく行かないです、アドバイスお待ちしております。)。
フォントがきれいじゃないから埋め込んだほうがいいのかも…
ちょっとした思いつきとPythonの練習も兼ねてやってみたが、実際に困ったのはTeXの見栄えをいかに良くするかだった。
TeXツライ。
最後まで読んでいただきありがとうございました。
)を用いました。
-
正確には81マスですが一般的名称(百ます計算 - Wikipedia https://ja.wikipedia.org/wiki/%E7%99%BE%E3%81%BE%E3%81%99%E8%A8%88%E7%AE%97) ↩
Author And Source
この問題について(pythonで百ます計算のプリント作った話), 我々は、より多くの情報をここで見つけました https://qiita.com/aaaKUKIaaa/items/c1f76855090db8b95dd6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .