鱼C论坛

 找回密码
 立即注册
查看: 3312|回复: 25

第8课 课后题,求助如何加入循环

[复制链接]
发表于 2016-5-18 08:41:21 | 显示全部楼层 |阅读模式
10鱼币
题目就是根据成绩 打印A B C D
不循环的代码已经写了,求助如何加入while 函数使其可以循环查询
print('课后题')
temp = input('请输入查询成绩:')
score = int(temp)
while quit != 'Y':
    if score < 60:
        print('D')
        score = input()
    elif score < 80:
        print('C')
    elif score < 90:
        print('B')
    elif score <= 100:
        print('A')
    else:
        print('输入成绩超出范围。')
quit = input('是否退出查询(Y or N):')

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 10:25:09 | 显示全部楼层
print('课后题')

q = 'N'
while q != 'Y':
    temp = input('请输入查询成绩:')
    score = int(temp)
    if score < 60:
        print('D')
        #score = input(),这里不能再输入了
    elif score < 80:
        print('C')
    elif score < 90:
        print('B')
    elif score <= 100:
        print('A')
    else:
        print('输入成绩超出范围。')
    q = input('是否退出查询(Y or N):')
你原来的代码是有问题的,因为quit是内置的,最好不要直接用,你运行你的程序了吗?会出问题的吧?
循环的关键,就是在循环体内要有修改循环是否终止的条件。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
奋斗中的土多 + 5 + 5 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 12:52:46 | 显示全部楼层
本帖最后由 牧舟 于 2016-5-18 12:54 编辑

楼上正解。中间的那个input函数没用
最后一行的询问是否继续,Y或者N哪里,没有缩进。应该缩进一格。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 14:58:34 | 显示全部楼层
vpo1 发表于 2016-5-18 10:25
你原来的代码是有问题的,因为quit是内置的,最好不要直接用,你运行你的程序了吗?会出问题的吧?
循环 ...

还是不够好,输入N 后,无法终止查询,还是会继续查询
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 14:59:14 | 显示全部楼层
课后题
请输入查询成绩:77
C
是否继续查询(Y or N):N
请输入查询成绩:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 15:20:43 | 显示全部楼层
奋斗中的土多 发表于 2016-5-18 14:59
课后题
请输入查询成绩:77
C

如果想终止循环,在最后价格条件就好了
    if q == 'Y':
        print('程序已关闭!')
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 15:49:15 | 显示全部楼层
测试小白 发表于 2016-5-18 15:20
如果想终止循环,在最后价格条件就好了

print('课后题')
q = 'N' or 'n'
while q != 'N' or 'n':
    temp = input('请输入查询成绩:')
    score = int(temp)
    if score < 60:
        print('D')
    elif score < 80:
        print('C')
    elif score < 90:
        print('B')
    elif score <= 100:
        print('A')
    else:
        print('输入成绩超出范围。')
    q = input('是否继续查询(Y or N):')
    if q == 'N':
        print('终止查询')
    break
麻烦请补充下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 16:34:20 | 显示全部楼层
奋斗中的土多 发表于 2016-5-18 15:49
print('课后题')
q = 'N' or 'n'
while q != 'N' or 'n':

#我也是新手哈~   我没有看课后习题,看你这个代码,给你简化一下,意思是一样的
print('课后题')
while True:
    temp = input('请输入查询成绩:')
    score = int(temp)
    if score < 60:
        print('D')
        #score = input(),这里不能再输入了
    elif score < 80:
        print('C')
    elif score < 90:
        print('B')
    elif score <= 100:
        print('A')
    else:
        print('输入成绩超出范围。')
    q = input('是否退出查询(Y or N):')
    if q == 'Y':
        print('终止查询')
        break

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
奋斗中的土多 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 16:56:39 | 显示全部楼层
测试小白 发表于 2016-5-18 16:34
#我也是新手哈~   我没有看课后习题,看你这个代码,给你简化一下,意思是一样的

while true   如何解释?请教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 17:06:57 | 显示全部楼层
奋斗中的土多 发表于 2016-5-18 16:56
while true   如何解释?请教

while 是循环的意思
True 是为真的意思

加在一起就是这个循环体(while下的内容)一直循环

顺便解释下 break 的意思:停止
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 17:29:59 | 显示全部楼层
测试小白 发表于 2016-5-18 17:06
while 是循环的意思
True 是为真的意思

我就想不明白,while true 这个true 到底是判断的那一条语句?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 18:01:43 | 显示全部楼层
奋斗中的土多 发表于 2016-5-18 17:29
我就想不明白,while true 这个true 到底是判断的那一条语句?

可以理解为  判断 while 这条
这个代码的顺序是从上至下的,while 为 true 时,执行下面的语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 20:06:20 | 显示全部楼层
请及时标注已解决,要不很多人会重复看,浪费很多时间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-18 22:22:09 | 显示全部楼层
print('----------课后习题-------------')
query = 'N'
while query not in ['Y','y']:
    temp = input('请输入你要查询的成绩:')
    while not temp.isdigit():
        print('抱歉,你的输入不合法')
        temp = input('请重新输入一个整数:')
    score = int(temp)   
    if score > 100:
        temp = input('您输入的成绩超出范围,请重新输入:')
        while not temp.isdigit():
            print('抱歉,你的输入不合法')
            temp = input('请重新输入一个整数:')
        score = int(temp)
    elif score < 60:
        print('D')
    elif score < 80:
        print('C')
    elif score < 90:
        print('B')
    else:
        print('A')
    query = input('请问是否退出查询成绩?Y/N:')
print('退出查询成绩')   


参考了2L一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-19 07:43:42 | 显示全部楼层
本帖最后由 奋斗中的土多 于 2016-5-19 07:46 编辑
漫步是一种心情 发表于 2016-5-18 22:22
print('----------课后习题-------------')
query = 'N'
while query not in ['Y','y']:


这里面有1个函数是小白还没涉及的就是 'in',  'isdigit()'还好已经学了,但是还不太会用。
另外,score > 100 完全可以在最后使用esle 来解决,就不必要再去判断输入是否合法了。
query = 'N'  #请问这一句代码的目的是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-19 09:19:59 | 显示全部楼层
是的没错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-19 09:48:51 | 显示全部楼层
本帖最后由 凯布里克恩 于 2016-5-19 14:24 编辑
print('课后题')
while quit != 'Y':
            temp = input('请输入查询成绩:')
            score = int(temp)
            if score < 60:
                        print('D')
            elif score < 80:
                        print('C')
            elif score < 90:
                        print('B')
            elif score <= 100:
                        print('A')
            else:
                        print('输入成绩超出范围。')
            quit = input('是否退出查询(Y or N):')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-19 10:13:49 | 显示全部楼层
奋斗中的土多 发表于 2016-5-19 07:43
这里面有1个函数是小白还没涉及的就是 'in',  'isdigit()'还好已经学了,但是还不太会用。
另外,sco ...

query = 'N'这一句,是因为进入while循环体的判断条件是query为y或者Y,要想让程序进入循环体,必须给query赋一个不是y或者Y的值,其实不一定是N,abcd1234都可以的啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-19 11:39:56 | 显示全部楼层
vpo1 发表于 2016-5-19 10:13
query = 'N'这一句,是因为进入while循环体的判断条件是query为y或者Y,要想让程序进入循环体,必须给que ...

非常感谢。有些理解了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-19 13:50:32 | 显示全部楼层
凯布里克恩 发表于 2016-5-19 09:48
print('课后题')
while quit != 'Y':
            temp = input('请输入查询成绩:')

可以实现最后的结果。谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 01:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表