Cumtb_fff 2021-07-20 11:57 采纳率: 80%
浏览 192
已采纳

while必须加break吗?

n = float(input("请输入科目数量:"))
numbers = []
credits = []
weights = []
fcredits=[]
numbers = input('请输入一组成绩(以空格隔开,按回车结束):').split(' ')
credits = input('请输入分数对应科目的学分(以空格隔开,按回车结束):').split(' ')
i = int(0)
c = float(0)
b = float(0)
a = int(0)

while a<n:                                                 #使分数变为浮点数
    numbers[a] = float(numbers[a])
    a = a+1

for credit in credits:
    credit = float(credit)                                 #使学分变为浮点数
    fcredits.append(credit)                                #存储浮点类型的学分
    c = c+credit                                           #求总学分

for credit in credits:
    credit = float(credit) / c                             #求每一科权重
    weights.append(credit)                                 #储存每一科权重
    while i<n:
        b=b+numbers[i]*weights[i]                          #依据权重和每一科分数,求总分
        i=i+1
        break


print(fcredits)
print(numbers)
print(weights)

print(b)
print(a)

这段代码的第28行,如果把break去掉,就会提示第26行的列表超出范围。为什么会这样呢?当i=n的时候while循环不是停止了吗?

  • 写回答

5条回答 默认 最新

  • 鸡蛋酱$ 2021-07-20 12:03
    关注

    你的代码里面while部分作用就是i+1,并且只是执行了一次,就跳出了while的循环,满足i=n的再结束是正常结束,break的作用是非正常结束,break一般用来和if,elif,else 搭配使用,满足条件就退出,不用执行完再退出,有用的话点一下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站