案例要求
土财主巴依老爷叫阿凡提帮他干活,每个月给他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条件判断搭配使用,用于处理满足某种条件的情况下,忽略循环体后面的代码,直接进入下一轮循环。如果嵌套了多层循环,则只忽略最近的一层循环体后面的代码。