意味がわかりません。
もしかして、p = 10000 の直後の コメントアウトを解除して使ったら同じになるってことでしょうか。
それなら当たり前です。
「省略型になっている」ではなく、そのままだから。
データの値を追ってみてください。
コードを読んでみてください。コードを読むコツは『一行レベルで、その行が何をしているかを考えながら読む』です。
たとえばコメントにするとか。
def calc(p):
tax = 0.1
return int(p*(1.0+tax))
p = 10000
price =10000
answer = calc(p)
print("税込み価格は{}円です。".format(answer))
だとすると、
def calc(p):
tax = 0.1
return int(p*(1.0+tax))
# ここから!!!!!
# p に 10000を設定
p = 10000
# price に 10000を設定
price =10000
# calc関数にpの値を渡して処理し、answerに設定
answer = calc(p)
# 表示!!!
print("税込み価格は{}円です。".format(answer))
データの値を考えながらシミュレーションしてみてください。
最初、p の値はなんでしょうか。そう、10000ですね。
で、priceの値は? 同じく 10000 ですね。
では、calc関数が呼ばれているので、calcの中も同様にやってみましょう。
そうすると、
int( 10000 * ( 1.0 + tax ) )
なので…?
それがanswerに入っています。
どこにpriceを使っているでしょうか。
仮に #(answer = calc(price)) をONにしても、最初っから p = price という風に値が同じだから同じになるでしょ。
Q. 以下の計算をせよ
(1). 100 + 2
(2). 100 + 2
で、(1)は200で (2)では102 と違っていたらおかしいでしょ。
同じ数字の組み合わせを計算しているのだから一つに定まるでしょ。
[追記1]
……もしかして、def... で定義するときの仮引数がp なのに 呼び出し側ではpriceでも結果が同じになるのはなぜかってことでしょうか。
それは当たり前です。
仮引数はその関数側から見た変数です。(厳密には違うが)
スコープがわかっていればわかるはずです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。