鱼C论坛

 找回密码
 立即注册
查看: 1204|回复: 12

[已解决]16讲 第一题,为什么一直输出0,要怎么改呢

[复制链接]
发表于 2020-3-18 22:05:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 猪猪虾 于 2020-3-18 22:08 编辑

#猜想一下 min() 这个BIF的实现过程
def littler(number):
    me_min=0
    for i in range(len(number)):
        if number[i]<me_min:
           me_min=number[i]
    return(me_min)

number=eval(input('enter a list:'))   #获取一个列表
result=littler(number)
print(result)
最佳答案
2020-3-18 22:13:21
你为什么要给me_min的初值为0呢?
若你的列表中所有的元素都大于0,那么输出结果当然是0啦。
另外函数传进去参数了你就不要在用外面的全局变量啦
#猜想一下 min() 这个BIF的实现过程
def littler(num):
    me_min=num[0]
    for i in range(len(num)):
        if num[i]<me_min:
           me_min=num[i]
    return(me_min)

number=eval(input('enter a list:'))   #获取一个列表
result=littler(number)
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 22:12:09 | 显示全部楼层
问题出在me_min=0,实际上0可能比你输入的所有数都小,这时得到的结果就是0,改为me_min=number[0],使它先等于列表中的一个数字。另外函数中number应该改成num,不然传递的参数就没有意义了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:13:21 | 显示全部楼层    本楼为最佳答案   
你为什么要给me_min的初值为0呢?
若你的列表中所有的元素都大于0,那么输出结果当然是0啦。
另外函数传进去参数了你就不要在用外面的全局变量啦
#猜想一下 min() 这个BIF的实现过程
def littler(num):
    me_min=num[0]
    for i in range(len(num)):
        if num[i]<me_min:
           me_min=num[i]
    return(me_min)

number=eval(input('enter a list:'))   #获取一个列表
result=littler(number)
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 22:15:26 | 显示全部楼层
冬雪雪冬 发表于 2020-3-18 22:12
问题出在me_min=0,实际上0可能比你输入的所有数都小,这时得到的结果就是0,改为me_min=number[0],使它先 ...

形参那,我试了一下,无论是number还是num,结果都是对的,我都懵了,是这个形参按道理应该和函数里面的变量保持一直呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:18:19 | 显示全部楼层
大兄弟,我有点好奇,你为什么没报错?我这儿报错说元组不能和整数类型比较!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 22:20:33 | 显示全部楼层
懂了懂了,谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:23:24 | 显示全部楼层
def littler(number):
    me_min = 0
    for i in number:
        if i < me_min:
           me_min = i
     return(me_min)

number=eval(input('enter a list:'))   #获取一个列表
result=littler(number)
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:34:36 | 显示全部楼层
黎影 发表于 2020-3-18 22:18
大兄弟,我有点好奇,你为什么没报错?我这儿报错说元组不能和整数类型比较!

因为他的程序中if语句条件中的number下标被识别为斜体符号了,所以你看不到number下标了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:40:18 | 显示全部楼层
sunrise085 发表于 2020-3-18 22:34
因为他的程序中if语句条件中的number下标被识别为斜体符号了,所以你看不到number下标了

下标?能再解释下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 22:40:56 | 显示全部楼层
黎影 发表于 2020-3-18 22:18
大兄弟,我有点好奇,你为什么没报错?我这儿报错说元组不能和整数类型比较!

啊,我的是对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 22:45:22 | 显示全部楼层
黎影 发表于 2020-3-18 22:40
下标?能再解释下吗?

你没发现楼主的帖子,从if语句的number往后都是斜体吗?

那是因为下标呗编辑框识别为斜体符号了,可以对比我的那个程序看一下。
数组的下标【i】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 23:00:23 | 显示全部楼层
sunrise085 发表于 2020-3-18 22:45
你没发现楼主的帖子,从if语句的number往后都是斜体吗?

那是因为下标呗编辑框识别为斜体符号了,可以 ...

斜体和下标有什么关系?这点还是不是很清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 23:22:40 | 显示全部楼层
黎影 发表于 2020-3-18 23:00
斜体和下标有什么关系?这点还是不是很清楚

。。。。。。
你直接把我在三楼的程序复制,然后发帖看一下就知道了。注意:是直接粘贴,而不是以代码的形式粘贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 02:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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