我写了一个python程序,报错NameError: name 'i' is not defined

程序:defmin(i):i=len(list)-1min=list[i]ifi==0:returnminelse:ifmin<list[i-1]:min=minelse... 程序:
def min(i):
i=len(list)-1
min=list[i]
if i==0:
return min
else:
if min<list[i-1]:
min=min
else:
min=list[i-1]
return min(i-1)
list=[154,64,16,65,3,56]
min(i)
展开
 我来答
情谈学长
2019-09-17 · 加油,要努力成为别人眼中羡慕的自己
情谈学长
采纳数:2930 获赞数:45832

向TA提问 私信TA
展开全部

Python程序,错误NameError:名称XX未定义不是由声明引起的,需要在文件的前两行声明代码,声明方法是:

1,在文件中写一个带有中文字符的python文件,不进行编码。

2,当程序文件中有中文字符时,如果文件未声明编码格式,则会显示错误消息:文件“encode.py”,第1行#SaxaxError:文件编码中的非ASCII字符'\ xe7'。 py在第1行,但没有编码声明;有关详细信息,请参阅//..python.../dev/peps/pep-0263/。

3,根据错误提示,在python官方网站上获取以下帮助信息。

4,因此,请按照帮助文档提示和示例在Python文件中包含代码声明。

5,保存后,再次运行,运行成功。

n风子n
推荐于2017-09-18 · TA获得超过217个赞
知道小有建树答主
回答量:84
采纳率:0%
帮助的人:81.8万
展开全部

你是想写递归求列表最小值的代码吧,问题太多:

def min(i): # min 是标准函数,不应定义一个同名的
    i=len(list)-1 # list是什么,引用全局变量吗? 那要用globa定义一下
    min=list[i] # min已经是函数了,再把它变成整数?
    if i==0:
        return min # 同上
    else:
        if min<list[i-1]:
            min=min
        else:
            min=list[i-1]
        return min(i-1) # 倒底是函数还是整数?
list=[154,64,16,65,3,56] # list也是关键字,不应用做变量名
min(i) # 你的报错出在这里,i是什么你还没有定义

其实python自带的min函数就是取最小值的,像你的例子两行搞定:

l = [154,64,16,65,3,56]
print min(l)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
道子daozi
推荐于2017-09-02 · TA获得超过946个赞
知道小有建树答主
回答量:684
采纳率:81%
帮助的人:185万
展开全部
1、首先除了错误要找出错误在哪里。
2、出现这种情况就是使用的“i”没有定义,而是直接拿出来用的。
3、解决方式:将i定义一下就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三好実休1q
2014-12-04 · TA获得超过125个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:131万
展开全部

单纯求列表的最小值,如果列表元素没问题的话(去除invalid item),直接给列表排序,取头尾也能拿到最大最小值。

list=[154,64,16,65,3,56]
list.sort()
print list[0]
print list[-1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式