注册 登录
编程论坛 Python论坛

Python菜鸟求助

风不会呢喃 发布于 2018-08-11 18:27, 3346 次点击
Python3.6下
numbers = [11,55,99,44,77,22,66,33,88,0]
big=numbers[0]
for i in range(1,len (numbers ),1):
    if numbers [i] > big:
        big=numbers [i]
        print ("最大值为:",big )
用该代码求数组中最大值,运行却出现
只有本站会员才能查看附件,请 登录

而将数组中55移除后或者将55移动到不同位置(如移动到33后面),输出的最大值就只有99了。请问这是为什么?
11 回复
#2
外部三电铃2018-08-11 18:30
因为big被赋值为99了,后面没有比他大的了
#3
风不会呢喃2018-08-11 18:32
回复 2楼 外部三电铃
那为什么一开始会有两个最大值?
#4
风不会呢喃2018-08-11 18:35
回复 2楼 外部三电铃
我试着将数组中55移动到除了99之前的任意位置都能得到唯一的最大值99,唯独55在99前面会出现图上所示两个最大值。
#5
外部三电铃2018-08-11 18:36
因为big被赋值55以后,还有后面的99比他大
#6
风不会呢喃2018-08-11 18:45
回复 5楼 外部三电铃
可是我并没有赋值55啊,求数组中最大值的话那么数组中数字的顺序应该与求最大值是没有关系的,那么为什么我将55移动到其他位置(如77后面,33后面)便不会出现最大值除了99还有55的情况,唯独55在99的前面就出现两个最大值的情况。。。
准大一新生学大学计算机基础时课件上的代码就是这样(课件上是Python2我按照Python3改了下),请大神见谅,真的很纠结
#7
外部三电铃2018-08-11 18:47
big=numbers [i]

上面这个不就是赋值吗
#8
风不会呢喃2018-08-11 18:50
回复 7楼 外部三电铃
可是大神,我现在的问题是,为什么我一开始数组中数字的顺序变化会影响到我最后输出的不同?
#9
风不会呢喃2018-08-11 20:12
回复 7楼 外部三电铃
已经解决啦。
一开始是这样
只有本站会员才能查看附件,请 登录

这样造成了输出语句写进if的范围内了。
改正之后应当是这样
只有本站会员才能查看附件,请 登录
#10
Artless2018-08-13 02:03
如果大于前者则
那55>11
所以print
#11
huoke2018-08-27 15:45
哈哈哈哈
#12
ACR2018-09-22 09:50
学习了
1