【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
def get_price(a, b): global rate if a + b >= 3000: rate = 1.05 total = (a + b) * rate return total rate = 1.1 print(get_price(300, 700)) ←ここでrateには1.1が入った状態 print(get_price(3000, 7000)) ←rateは1.05に書き換わった print(rate)
rate が 1.05 に書き換わった状態で return total をしているのは理解できました。 ただ、def を抜けた後、rate=1.1 には無反応でそのまま print(rate) の時に 1.05 としてプリントされる理由が分かりません。 なぜ 1.05 に書き換わって print(get_price(3000, 7000)) の答えを出した後、rate が 1.1 にさらに書き換わらずに 1.05 のままなのでしょうか?
rate
1.05
return total
def
rate=1.1
print(rate)
print(get_price(3000, 7000))
1.1
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
rateが1.05に書き換わった状態でreturn totalをしているのは理解できました。ただ、
defを抜けた後、rate=1.1には無反応でそのままprint(rate)の時に1.05としてプリントされる理由が分かりません。なぜ
1.05に書き換わってprint(get_price(3000, 7000))の答えを出した後、rateが1.1にさらに書き換わらずに1.05のままなのでしょうか?