python勉強中で既に嫌になっているヘタレな管理人です。
本日4日目のpythonのお勉強ですが・・・
数日空いてしまい・・・
前回まで勉強したことをもう忘れています。
本当にもの覚えの悪い自分自身が嫌になります。
pythonでの条件分岐処理
さて、本日も・・・
とりあえず頑張れるところまでやってみます。
EXCELの条件分岐処理です。
chatgptに聞いてみます。
おもった以上に長い回答が返ってきました。
Pythonで条件分岐するコードの簡単な例を提示します。条件分岐とは、ある条件によってプログラムの実行内容を変えることです。Pythonでは、if文を使って条件分岐を行うことができます。if文の基本的な書き方は以下の通りです。
if 条件式: 条件式が真のときに実行する処理 else: 条件式が偽のときに実行する処理
例えば、変数xの値が10以上かどうかを判定して、結果を表示するコードは以下のようになります。
x = 15 # 変数xに任意の値を代入 if x >= 10: # xが10以上かどうか判定 print("xは10以上です") # 真のときに実行 else: print("xは10未満です") # 偽のときに実行
このコードを実行すると、以下のような出力が得られます。
xは10以上です
if文では、elif節を使って、複数の条件式を指定することもできます。elif節は、else ifの略で、前の条件式が偽であるときに別の条件式を判定します。elif節は、必要なだけ追加することができます。elif節の書き方は以下の通りです。
if 条件式1: 条件式1が真のときに実行する処理 elif 条件式2: 条件式1が偽で、条件式2が真のときに実行する処理 elif 条件式3: 条件式1と条件式2が偽で、条件式3が真のときに実行する処理 ... else: すべての条件式が偽のときに実行する処理
コピー
例えば、変数xの値が正か負かゼロかを判定して、結果を表示するコードは以下のようになります。
x = 0 # 変数xに任意の値を代入 if x > 0: # xが正かどうか判定 print("xは正です") # 真のときに実行 elif x < 0: # xが負かどうか判定 print("xは負です") # 真のときに実行 else: # xがゼロかどうか判定 print("xはゼロです") # 真のときに実行
このコードを実行すると、以下のような出力が得られます。
xはゼロです
以上が、Pythonで条件分岐するコードの簡単な例です。Pythonでは、インデント(字下げ)でブロック(処理のまとまり)を表現します。インデントはスペース4つ分で統一することが推奨されています。インデントを揃えないと、エラーになることがあります。
chatgpt
【else if】ではなく【elif】と書くようですね。
見慣れないコードだったので・・・
説明を詳しく読むまでは???でした。
とても覚えられません。
エクセルで条件分岐処理を実行してみる
では、実際にエクセルで条件分岐処理を実行してみます。
コードは次のとおりです。
import openpyxl
wb = openpyxl.Workbook()
# ワークシートの有効化
ws = wb.active
# セル"A1"に数値"10"を入力する
ws["A1"].value = 10
# セル"A1"の値に応じてセル"B1"に判定結果を入力する
if ws["A1"].value == 10:
ws["B1"].value = "10です"
elif ws["A1"].value > 0:
ws["B1"].value = "正の値です"
else:
ws["B1"].value = "負の値です"
# wb2 を保存する
wb.save("F:\\python_work\\excel_test4.xlsx")
このコードで・・・
セル【A1】に10を入力して、
セル【B1】で・・・正か負か10かを判定しています。
条件分岐と繰り返し処理を同時にやってみる
続いて先日勉強した繰り返し処理と条件分岐を合わせてやってみます。
コードの内容は・・・
A列に【-10から+10】の値を繰り返し処理で入力し・・・
さらに・・・
B列に【正 or 負 or 0 or -10 or 10】かを判定させます。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
# ataiに"-10"を代入
atai = -10
# 繰り返し処理 A列に"-10"から"+10"を入力
for count in range(1,22):
ws["A" + str(count)] = atai
# A列の値に応じてB列に判定結果を入力する
if ws["A" + str(count)].value == -10:
ws["B" + str(count)].value = "-10です"
elif ws["A" + str(count)].value < 0:
ws["B" + str(count)].value = "負の数値です"
elif ws["A" + str(count)].value == 0:
ws["B" + str(count)].value = "0です"
elif ws["A" + str(count)].value < 10:
ws["B" + str(count)].value = "正の数値です"
else:
ws["B" + str(count)].value = "10です"
atai = atai + 1
# wb を保存する
wb.save("F:\\python_work\\excel_test5.xlsx")
いちおうこれで思ったとおりに動きました。
今日はここまで・・・
次は何をしましょうか・・・
たった、これだけですが・・・
疲れました。
コメント