程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

「Python循環結構」阿凡提拿工資

編輯:Python

案例要求

土財主巴依老爺叫阿凡提幫他干活,每個月給他200元。阿凡提想了想,提議說:“第一天給我1毛錢,第二天給我2毛錢,第三天給我4毛錢,以後每天是前一天的2倍,一個月給30天。”財主一聽,當即答應。不到半個月,巴依財主大呼上當,叫苦不迭,最終欠下阿凡提一大筆錢。試計算一下阿凡提一個月可以拿多少錢。

功能要求

編寫一個控制台應用程序,計算阿凡提每天應得到多少錢。

程序分析

第一天1毛錢,第二天2毛錢,第三天4毛錢,以後每天是前一天的2倍,使用可以的除天數和錢數的對應關系:

每天應得的錢 = 0.1 × 2(天數 -1)

要得出一個月30天每天應得到的錢,需要重復計算30次。

實例代碼

for day in range(1, 31):
    money = 0.1 * 2 ** (day - 1)
    print(day, money)

運行結果

 

 

知識說明

程序中的range表達的是在一定范圍內的意思,其語法格式如下:

range([start,] end [,step])

start:范圍的起點,是循環開始的地方。可省略不寫,若省略,則默認值為0。例如:range(5)等價於range(0, 5)。

end:范圍的終點,是循環結束的地方。不可省略,終點不包含end的值。例如:range(0, 5)的值為[0, 1, 2, 3, 4]。

step:范圍的步長,可以省略,若省略,則默認步長為1。例如,range(0, 5, 3)的值為[0, 3]。

功能要求

編寫一個控制台應用程序,計算阿凡提計一個月應得到的錢。

要累計計算一個月30天的總金額,就需要連續累加從第1天到第30天金額之和。

實例代碼

total = 0
for day in range(1, 31):
    money = 0.1 * 2 ** (day - 1)
    total += money
print("總金額:", total)

運行結果

 

 

知識說明

注意

創建一個新變量total代表金額之和。

total += money:等價於total = total + money

功能要求

假設巴依財主的財產總共只有800萬元,當支付給阿凡提的錢超過800萬元時循環結束。輸出在第幾天的時候支付給阿凡提的錢超過800萬元。

實例代碼

total = 0
for day in range(1, 31):
    money = 0.1 * 2 ** (day - 1)
    total += money
    if total >= 8000000:
        print("經歷天數:", day, "總金額:", total)
        break

運行結果

 

 

知識說明

控制循環,Python提供了break和continue兩個方法

break:經常和if條件判斷搭配使用,用於處理滿足某種條件時結束循環的情況。如果嵌套了多層循環,只結束最近的一層循環。

功能要求

編寫一個控制台應用程序,輸出0~4之間除2之外的整數。

實例代碼

for i in range(5):
    if i == 2:
        continue
    print("i的值為:", i)

運行結果

 

 

知識說明

continue:也常與if條件判斷搭配使用,用於處理滿足某種條件的情況下,忽略循環體後面的代碼,直接進入下一輪循環。如果嵌套了多層循環,則只忽略最近的一層循環體後面的代碼。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved