iT邦幫忙

0

python 如何在迴圈裡邊輸入變數邊計算

我目前在學python,想請教如何在for迴圈裡一邊輸入一邊進行運算(因為input的數量會根據測資的不同而改變)。

這題是要算總價,不同區間的價格分別有所不同。

以下是第一個測資
3 級距個數(每個測資的級距個數都不一樣)
45 要購買的數量
10 第一個級距的範圍(0-10)
55 第一個級距區間的價錢
30 第二個級距的範圍(10-30)
40 第二個級距區間的價錢
1000 第三個級距的範圍(30-1000)
35 第三個級距區間的價錢

我不明白的是,當我要輸入第二個級距30時,我要如何扣掉第一個級距的範圍(0-10),以及第三個級距又要如何扣掉前兩個級距的範圍?

以下是目前已經沒轍的程式碼,有嘗試先不管第三個級距,單純先在輸入第二個級距時想辦法把第一個的範圍扣掉(abs那行),但再下去就沒辦法連貫了,如果能給我一點方向的話真的非常感謝

num_tier = int(input()) #級距數量
least_kgs = int(input()) #要購買的數量

tier_n = 0 #級距的範圍
price_n = 0 #級距的價錢
total_cost = 0 #總價

for i in range(num_tier):
tier_n = abs(tier_n - int(input()))
price_n = int(input())
print(tier_n)
if tier_n <= least_kgs:
total_cost = total_cost + tier_n * price_n
else:
total_cost = total_cost + tier_n * price_n

print(total_cost)

0
suncuxiapple
iT邦新手 4 級 ‧ 2021-08-10 21:15:46

請先把文字簡單化 變成數字
簡單來說你先把書本打開翻到for那個地方 for這個東西 for不是告訴你在某一個範圍裡符合此範圍成立就會通過不成立就會跳出訊息。 請您自行把上訴文字轉成數學運算。

我現在不明白事情就是撤資是什麼東西,事情好像交代到一半 沒有頭尾。
你要在for裡面做設定阿 類似這樣子阿
for(i=1; i<=10; i++) printf("%d\n", i);

上面的語法,程式執行的步驟如下:

設定變數 i=1;
檢查 i<=10 是否成立,不成立則跳出迴圈 ( 即跳至 6. )
執行 printf("%d\n", i);
執行 i++; ( 即 i=i+1; )
跳至 2. 的位置
迴圈結束

0
0
danny_python_tw
iT邦新手 5 級 ‧ 2021-08-21 13:55:02

因為不了解要練習什麼部分
單就我自己想法,我認為可以簡化問題。

price_n = 0
if i < 10:
    price_n = 55
elif i < 30:
    price_n = 40
else:
    price_n = 35

我要發表回答

立即登入回答