0x09 - 详谈Python循环结构


目录: 0x00 - Python学习笔记

while

在日常生活中,很多地方要用到循环算法,while是循环算法的关键词之一
示例:我们将 10000 元存入一个年利率为 5% 的银行账户中,求账户余额增长到原来投资额的两倍需要多少年?

# 创建常量变量
INITIAL_BALANCE = 10000.0
RATE = 5.0
TARGET = 2 * INITIAL_BALANCE

# 初始化用于循环的变量
balance = INITIAL_BALANCE
year = 0

# 计算投资收益翻倍所需年份
while balance < TARGET :
    year = year + 1
    interest = balance * RATE / 100
    balance = balance + interest

# 打印结果
print("收益翻倍需要", year, "年")

for

我们常常需要访问字符串中的每个字符,for循环提供了使该过程易于编程的实现方法。

假设要打印一个字符串,每行一个字符。我们需要遍历字符串中的每一个字符,并分别打印他们:

stateName = "CSDN"
for letter in stateName :
	print(letter)

这里的letterstateName中的每一个字符,我们也可以使用索引来实现

stateName = "CSDN"
for i in range(len(stateName)) :
	print(stateName[i])

上述方法使用了 range 函数,它的作用是产生连续的数字,他的参数可以是一个,也可以是多个:

>>> for i in range(5) :
	print(i)
	
0
1
2
3
4
>>> for i in range(2, 5) :
	print(i)
	
2
3
4
>>> for i in range(1, 5, 2) :
	print(i)
	
1
3

我们通常使用以下方法来使用for:

for year in range(1, len(year) + 1) :

那我们什么时候用range()
当我们只需要迭代容器内的每一个值得时候,不需要使用range();如果我们需要知道都一个元素在容器中的准确位置时,最好使用range()
容器就是for中的可迭代序列

常用循环算法

##
# 编写程序,求用户输入数据的总和及平均数
#

# 初始化
total = 0.0
count = 0

# 预读取用户指令
inputStr = input("Enter value: ")

# 设置哨兵值为空
while inputStr != "" :
    value = float(inputStr)     # 初始化指令为数字
    total = total + value
    count = count + 1

    # 修改读取用户指令
    inputStr = input("Enter value: ")

if count > 0 :
    average = total / count
else :
    average = 0.0
print("您输入数字的总和为%f,平均数为%f" % (total, average))
##
# 本程序用于处理用户输入的一系列成绩
# 计算成绩合格的人数和成绩不合格的人数
# 计算平均成绩,查找最高成绩和最低成绩
#

# 初始化计数器变量
numPassing = 0      # 合格人数
numFailing = 0      # 不合格人数

# 初始化用于计算平均成绩的值
total = 0
count = 0

# 初始化最高成绩和最低成绩变量
maxGrade = 0.0
minGrade = 100.0    # 默认最高成绩为100

# 使用while循环读取成绩
grade = float(input("请输入成绩(-1退出):"))
while grade >= 0.0 :
    # 递归成绩合格、不合格人数计数器
    if grade >= 60.0 :
        numPassing = numPassing + 1
    else :
        numFailing = numFailing + 1
    
    # 判断成绩是否为最低成绩或最高成绩
    if grade < minGrade :
        minGrade = grade
    if grade > maxGrade :
        maxGrade = grade
    
    # 把成绩累加到total中
    total = total + grade
    count = count + 1

    # 读取下一个成绩
    grade = float(input("请输入成绩(-1退出):"))

# 打印结果
if count > 0 :
    average = total / count
    print("平均成绩为:%.2f" % average)
    print("合格人数为:", numPassing)
    print("不合格人数为:", numFailing)
    print("最高成绩为:%.2f" % maxGrade)
    print("最低成绩为:%.2f" % minGrade)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1ta-chi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值