鱼C论坛

 找回密码
 立即注册
查看: 3155|回复: 18

[已解决]关于自己写min()的问题

[复制链接]
发表于 2021-8-11 11:25:24 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 Python初学者8号 于 2021-8-11 16:07 编辑

算了,我这么说吧,如题,辗转相除法求最大公约数
def gcd(x,y):
    return  c, d = x // y,x % y ;print('{0}/{1}={2}......{3}'.format(x,y,c,d))
gcd(1999,615)

我想要在函数执行之后,完成赋值并且打印的操作,我这个代码是打个比方,我知道是错的,我就是想问有没有这样的操作
最佳答案
2021-8-11 11:25:25

嗯,知道你很辛苦  又重写了一遍需求
然,还是没明白你的意思

def gcd(x,y):
    c,d = x // y,x % y
    print('{0}/{1}={2}......{3}'.format(x,y,c,d))
    return (c,d)
gcd(1999,615)

一般 ,我们不在函数内部print输出   除非你是为了调试一些什么东西

最佳答案

查看完整内容

嗯,知道你很辛苦 又重写了一遍需求 然,还是没明白你的意思 def gcd(x,y): c,d = x // y,x % y print('{0}/{1}={2}......{3}'.format(x,y,c,d)) return (c,d) gcd(1999,615) 一般 ,我们不在函数内部print输出 除非你是为了调试一些什么东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 11:25:25 | 显示全部楼层    本楼为最佳答案   

嗯,知道你很辛苦  又重写了一遍需求
然,还是没明白你的意思

def gcd(x,y):
    c,d = x // y,x % y
    print('{0}/{1}={2}......{3}'.format(x,y,c,d))
    return (c,d)
gcd(1999,615)

一般 ,我们不在函数内部print输出   除非你是为了调试一些什么东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 11:40:19 From FishC Mobile | 显示全部楼层
没看明白你想干嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 11:46:52 | 显示全部楼层
wp231957 发表于 2021-8-11 11:40
没看明白你想干嘛

能完成比较运算的话,的话就算出最小值然后还打印出来那句话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 11:51:07 | 显示全部楼层
Python初学者8号 发表于 2021-8-11 11:46
能完成比较运算的话,的话就算出最小值然后还打印出来那句话

你直接将return minn替换成    print ('the minimum number of the parameter is {0}'.format(minimum(minn)))不就可以了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 12:06:45 | 显示全部楼层
2012277033 发表于 2021-8-11 11:51
你直接将return minn替换成    print ('the minimum number of the parameter is {0}'.format(minimum(mi ...

我运行了一下,试错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 12:09:23 | 显示全部楼层
看不明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 12:09:47 | 显示全部楼层
Python初学者8号 发表于 2021-8-11 12:06
我运行了一下,试错的

..我直接复制的,没仔细看
应该是这样
print ('the minimum number of the parameter is {0}'.format(minn))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 15:41:01 | 显示全部楼层

我重写了,哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 15:42:42 | 显示全部楼层
2012277033 发表于 2021-8-11 12:09
..我直接复制的,没仔细看
应该是这样

不不不,我重写了需求,哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 16:08:10 | 显示全部楼层
wp231957 发表于 2021-8-11 11:40
没看明白你想干嘛

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

使用道具 举报

发表于 2021-8-11 16:30:43 | 显示全部楼层

如果你是想看一下 辗转相除法的运作过程,我给你写了一个,你看一下
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 16:36:06 | 显示全部楼层

所以简化一下,辗转相除最后应该是:
def gcd(x,y):
    if x<y: x,y=y,x
    if x % y ==0: return y
    return gcd(y,x%y)
print(gcd(999,6165))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 16:40:10 | 显示全部楼层
这属于判断对象类型的问题,一般用 isinstance(),
通常可以结合字典做一个通用统计函数,统计各类型出现的次数,如
>>> ls = ['a', 1, 2, 'c']
>>> def hist(ls):
        cf = dict()
        for i in ls:
                if isinstance(i, str):
                        cf['str'] = cf.setdefault('str', 0) + 1
                elif isinstance(i, int):
                        cf['int'] = cf.setdefault('int', 0) + 1
        return cf

>>> hist(ls)
{'str': 2, 'int': 2}
>>>

# 这样你就很方便调用 cf 来判断了,如 
>>> cf = hist(ls)
>>> if cf['str'] > 0 and cf['int'] > 0:
        print("既有字符串,又有整数,你准备如何处理?")
        pass

既有字符串,又有整数,你准备如何处理?
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 17:19:07 | 显示全部楼层
wp231957 发表于 2021-8-11 16:15
嗯,知道你很辛苦  又重写了一遍需求
然,还是没明白你的意思

懂了,所以无法在return写太多的东西了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 17:20:21 | 显示全部楼层
wp231957 发表于 2021-8-11 16:30
如果你是想看一下 辗转相除法的运作过程,我给你写了一个,你看一下

我也在用jupyter哈哈

你写的好快啊,而且还多了一个大小判断,很全面!!

还有这个第二个return很牛逼,我想到了这点,但是我不会用这个东西,这个是叫递归调用还是闭包来着,我没搞懂这个东西,也没去碰他

感谢你的帮助!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-11 17:25:01 | 显示全部楼层
阿奇_o 发表于 2021-8-11 16:40
这属于判断对象类型的问题,一般用 isinstance(),
通常可以结合字典做一个通用统计函数,统计各类型出现 ...

你的isinstance提醒了我还有这个东西在,这个东西真好用啊!!

十分感谢你的解答,不过我的需求是想知道return可不可多放几个句子进去(比如print语句),但是你的回答还是对我有很大的帮助,感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 18:07:10 From FishC Mobile | 显示全部楼层
Python初学者8号 发表于 2021-8-11 17:20
我也在用jupyter哈哈

你写的好快啊,而且还多了一个大小判断,很全面!!

自己调用自己叫递归
函数里面嵌套函数(名字不一样)  这是闭包
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-12 08:49:48 | 显示全部楼层
wp231957 发表于 2021-8-11 18:07
自己调用自己叫递归
函数里面嵌套函数(名字不一样)  这是闭包

很经典的案例,感谢大哥的帮助!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 15:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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