見出し画像

Python素数をテキストに出力

今回のnoteはPythonで素数を出力してそれをテキストに出力する処理を作成しました。

下記の画像が作成した画像です。

作成プログラム

数字を入力してその数になるまでの素数が出力されます。
そして、フォルダを選択してそのフォルダ内にテキストファイルを作成しています。

素数を出力

上記なような処理になります。

下記にプログラムのコードを共有します。
是非参考にしてください。

import tkinter
import os
from tkinter import filedialog
import pathlib


def prime_numberv1():
    """
    Args:
        num (int): 引数で数値が渡される

    Returns:
        _type_: listで素数が返って来る。
    """
    num = int(txt_1.get())
    primes = [] # 空のリストを準備する
    for i in range(2, num+1):
        for j in range(2, i):
            if i % j == 0# 0で割り切れた場合は素数ではない。
                break
        else:
            primes.append(i)
    txt_2.delete(0, tkinter.END)
    txt_2.insert(0, primes)
def folder_click():
    dir = 'C:\\'
    fld = filedialog.askdirectory(initialdir = dir)
    txt_3.delete(0, tkinter.END) # 削除の処理 
    txt_3.insert(0,fld)
def create_text():
    file_name = '素数'
    path = txt_3.get() +'/'+ file_name +'.txt' # 選択したフォルダのパスを受け取る。
    f = open(path, 'w', encoding='utf-8')
    f.write(txt_2.get())
    f.close()
# 画面作成
root = tkinter.Tk()
root.geometry('450x350')
root.title('素数判定')
root.configure(bg='SpringGreen2'# 色の設定

# ラベル
lbl_1 = tkinter.Label(text='数値入力')
lbl_1.place(x=80, y=120)

# ラベル
lbl_2 = tkinter.Label(text='素数')
lbl_2.place(x=80, y=150)

# ラベル
lbl_2 = tkinter.Label(text='出力先フォルダ')
lbl_2.place(x=80, y=180)

# テキストボックス
txt_1 = tkinter.Entry(width=10)
txt_1.place(x=160, y=120)

# テキストボックス
txt_2 = tkinter.Entry(width=30)
txt_2.place(x=160, y=150)

txt_3 = tkinter.Entry(width=20)
txt_3.place(x=160, y=180)

btn = tkinter.Button(root, text='素数出力', command=prime_numberv1) # 素数を出力
btn.place(x=150, y=210)

btn = tkinter.Button(root, text='フォルダ選択', command=folder_click) # フォルダ選択ボタン
btn.place(x=220, y=210)

btn = tkinter.Button(root, text='ファイル出力', command=create_text) # ファイル出力ボタン
btn.place(x=220, y=240)

root.mainloop()

以上になります。


この記事が気に入ったらサポートをしてみませんか?