SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社の本

Pythonで「割り勘アプリ」を作ってみよう! 初心者でも簡単にできるデスクトップアプリの作り方

  • このエントリーをはてなブックマークに追加

 プログラミング初心者向けの入門書『Python2年生 デスクトップアプリ開発のしくみ』から、計算アプリの1つである「割り勘アプリ」の作り方を紹介します。簡単なコードを扱うため、初めてPythonに触る人でも作りやすいのではないでしょうか。とりあえず何かデスクトップアプリを作ってみたいと考えている人におすすめです。

  • このエントリーをはてなブックマークに追加

 本記事は『Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!』の「第3章 計算アプリを作ろう」から「LESSON 09 割り勘アプリ」を抜粋したものです。掲載にあたって内容を一部編集しています。

 なお、Pythonのインストールや環境構築については各自でお願いします。

LESSON 09 割り勘アプリ

 「金額と人数を入力すると、1人分の金額を表示するアプリ」を作りましょう。

完成予想図

割り勘アプリの計画

 1人分の金額は「総支払額÷人数」で計算できます。総支払額を変数「in1」、人数を変数「in2」として「in1 / in2」で求めましょう。この結果を、f文字列を使って「1人、○円です。」と表示させたいと思います。割り切れない場合もあるので小数点以下2桁まで表示するとして、「f"1人、{in1 / in2 :.2f}円です。"」と指定します。テストとして、1000円を4人で割り勘するプログラムを作ってみましょう。以下のプログラムを実行してください。

in1 = 1000
in2 = 4
txt = f"1人、{in1 / in2 :.2f}円です。"
print(txt)
出力結果
1人、250.00円です。

割り勘アプリのレイアウト

 次は、アプリの画面を考えます。金額と人数を入力して、ボタンを押して、結果を表示するので、必要な部品は「金額の入力欄(in1)」「人数の入力欄(in2)」「実行ボタン(btn)」「結果表示のテキスト(txt)」です。ですが、この部品だけでアプリを作ると、始めて使う人にはよくわからない画面になってしまいます。

アプリの画面

 そこで、説明文のテキストを追加しましょう。

アプリの画面にテキスト追加

 これをlayoutのリストにすると以下のようになります。「結果表示」のテキストは、実行すれば表示されますが、最初はなにも表示しないので「sg.T(k="txt")」と空っぽのテキストを配置します。

layout = [[sg.T("金額と人数を入力してください。")],
          [sg.T("金額"),sg.I(k="in1")],
          [sg.T("人数"),sg.I(k="in2")],
          [sg.B(" 実行 ", k="btn"), sg.T(k="txt")]]

割り勘アプリを作る

 それでは「割り勘アプリ」を作ってみましょう。

 ボタンを押したら実行するexecute()関数を「test305.py」の計算方法で作ります。結果はupdate()で表示します。

例:ボタンを押したら、1人分を計算する関数
def execute():
    in1 = int(v["in1"])
    in2 = int(v["in2"])
    txt = f"1人、{in1 / in2 :.2f}円です。"
    win["txt"].update(txt)

 参考用のデフォルト値として、Inputの「in1」には"1000"、「in2」には"4"を入れておきましょう。

割り勘アプリのプログラム
import PySimpleGUI as sg
sg.theme("DarkBrown3")

layout = [[sg.T("金額と人数を入力してください。")],
          [sg.T("金額"),sg.I("1000", k="in1")],
          [sg.T("人数"),sg.I("4", k="in2")],
          [sg.B(" 実行 ", k="btn"), sg.T(k="txt")]]
win = sg.Window("割り勘アプリ", layout,
                font=(None,14), size=(320,150))

def execute():
    in1 = int(v["in1"])
    in2 = int(v["in2"])
    txt = f"1人、{in1 / in2 :.2f}円です。"
    win["txt"].update(txt)

while True:
    e, v = win.read()
    if e == "btn":
      execute()
    if e == None:
        break
win.close()
割り勘アプリが完成
Python2年生 デスクトップアプリ開発のしくみ 体験してわかる!会話でまなべる!

Amazon  SEshop  その他

 
Python2年生 デスクトップアプリ開発のしくみ
体験してわかる!会話でまなべる!

著者:森巧尚
発売日:2022年12月19日(月)
定価:2,420円(本体2,200円+税10%)

本書について

本書は初心者にも簡単に作れる方法を使ってデスクトップアプリ開発の基本をやさしく解説します。スマホアプリ、Webアプリに比べて、手軽に取り組めますので挫折することなく学習できます。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
翔泳社の本連載記事一覧

もっと読む

この記事の著者

森 巧尚(モリ ヨシナオ)

http://www.ymori.comこの世にパソコンが誕生したばかりの時代から作り続けて30年。現在は主にFlashやiPhoneアプリなどのオリジナルゲーム制作、執筆活動、関西学院大学非常勤講師、セミナー講師などを行っています。著書: 『やさしくはじめるiPhoneアプリ開発の学校』(マイナビ) ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

渡部 拓也(ワタナベ タクヤ)

 翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17031 2022/12/26 07:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング