免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3754 | 回复: 11
打印 上一主题 下一主题

请大家帮忙看看.python核心编程的一道题,我这样写为什么只能执行到第一个if [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-21 10:14 |只看该作者 |倒序浏览
请大家帮忙看看.python核心编程的一道题,我这样写为什么GetCoin函数只能执行到第一个if
第五章第5题:取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。举例来说,0.76美元换算结果应该是3枚25美分,1枚1美分。类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都符合符合要求的。


#! /usr/bin/python
# filename = coin.py

def GetCoin(cent) :

        
        cent25 = divmod(cent, 25)

        if cent25[1] == 0 :
                return cent25[0], '25 cents coins'
        else :
                return cent25[0], '25 cents coins'
                cent10 = divmod(cent25[1], 10)

                if cent10[1] == 0 :
                        return cent10[0], '10 cents coins'
                else :
                        return cent10[0], '10 cents coins'
                        cent5 = divmod(cent10[1], 5)

                        if cent5[1] == 0 :
                                return cent5[0], '5 cents coins'
                        else :
                                return cent5[0], '5 cents coins'
                                cent1 = divmod(cent5[1], 1)
                                return cent1[0], '1 cent coins'


while True :
        a = raw_input('please input the amount of money(. to terminate): ')
        if a == '.' :
                break
        else :
                print '%s need' % a,  GetCoin(int(float(a)*100))

[ 本帖最后由 e821023 于 2008-11-21 10:43 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-11-21 10:34 |只看该作者
哪个是第一个if啊?

论坛徽章:
0
3 [报告]
发表于 2008-11-21 10:43 |只看该作者
Getcoin里第一个if

论坛徽章:
0
4 [报告]
发表于 2008-11-21 11:12 |只看该作者
原帖由 e821023 于 2008-11-21 10:14 发表
        if cent25[1] == 0 :
                return cent25[0], '25 cents coins'
        else :
                return cent25[0], '25 cents coins'


这后面的代码会被执行么?

论坛徽章:
0
5 [报告]
发表于 2008-11-21 11:40 |只看该作者
从else开如就不执行了

论坛徽章:
0
6 [报告]
发表于 2008-11-21 13:16 |只看该作者

回复 #5 e821023 的帖子

话说……你知道啥叫return不?

论坛徽章:
0
7 [报告]
发表于 2008-11-21 15:19 |只看该作者

回复 #6 书中蠹鱼 的帖子

晕,才弄懂LZ是这个意思……

论坛徽章:
0
8 [报告]
发表于 2008-11-24 15:12 |只看该作者

回复 #7 jjj137 的帖子

已经都return了。。。。。。。怎么可能还执行

论坛徽章:
0
9 [报告]
发表于 2008-11-25 14:26 |只看该作者

回复 #1 e821023 的帖子

if cent25[1] == 0 :
                return cent25[0], '25 cents coins' ## return 改为 print,或者 先print ,再return
        else :
                return cent25[0], '25 cents coins' ## return 改为 print
                cent10 = divmod(cent25[1], 10)

论坛徽章:
0
10 [报告]
发表于 2008-11-25 23:51 |只看该作者
本帖最后由 starfuck 于 2019-11-27 00:11 编辑












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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP