前提・実現したいこと
pythonで勤務表を作成するソフトを作っています。
午前の勤務で決定する午後の勤務を設定するところをif文で指定しているのですが、
何故かifで条件が分岐する場合としない場合があり困っています。
シフトはSQLiteの中に格納していて、決定したシフトもそこに入れていこうとしています。
発生している問題・エラーメッセージ
taskはstringで設定しています。
taskは実態の勤務に従っているので、これば例です。
ifの分岐の部分で、'CAM''DAM'だと分岐するが'AAM''BAM'だと分岐しなくて、
set_pm_taskの関数が呼ばれないという現象が起きてしまいます。
該当のソースコード
Python
1 def set_pm_task(pm): 2 cur.execute("UPDATE shift SET task = ? WHERE name = ? AND day = ? AND half = 'PM'", (pm, m, d)) 3 active_task.remove(pm) 4 active_member.remove(m) 5 6 for m in member: #午前中のタスクで決定した午後のタスクを割り当てる 7 cur.execute("SELECT task FROM shift WHERE name = ? AND day = ? AND half = 'AM'",(m, d)) 8 task = (cur.fetchone())[0] 9 if task == 'AAM': 10 set_pm_task('APM') 11 elif task == 'BAM': 12 set_pm_task('BPM') 13 elif task == 'CAM': 14 set_pm_task('CPM') 15 elif task == 'DAM': 16 set_pm_task('DPM')
試したこと
taskという変数に'AAM','BAM'などのstringが入っていることは確認しています。
あまりに基本的なif文の挙動がうまく動かなくて戸惑っています。
どこか別のところに間違いがあるのか見当がつきません。
何かわかることがあれば教えていただきたく、よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
PyCharmとIDLE両方でうまく動かないことを確認しました。
PyCharm 2020.3.4 (Community Edition)
Build #PC-203.7717.65, built on March 16, 2021
Runtime version: 11.0.10+8-b1145.96 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 11.2.1
IDLE:3.9.1
回答1件
あなたの回答
tips
プレビュー