更新:看来我理解代码的方向是错误的。
对Python来说是全新的,所以任何帮助都是值得的。
我试图找到最高分和最低分从一个数组使用循环。
下面是我编写的代码:
nums = [6, 8, 9, 5, 3, 3, 5, 3]
highest_score = []
lowest_score = []
def calculate_Scores(nums):
i = 1
max = min = nums[0]
if nums[0] > nums[1]:
highest_score.append(nums[0])
elif nums[0] < nums[1]:
lowest_score.append(nums[0])
while i < len(nums):
if nums[i] > max:
highest_score.append(nums[i])
if nums[i] < min:
lowest_score.append(nums[i])
i += 1
calculate_Scores(nums)
print(highest_score)
print(lowest_score)
输出:
[8, 9] #highest
[6, 5, 3, 3, 5, 3] #lowest
对于上面给出的数组,代码工作得很好,但是当你将数组nums改为:
[2, 8, 9, 5, 3, 3, 5, 3]
这是输出:
[8, 9, 5, 3, 3, 5, 3] #highest
[2] #lowest
我怎样才能使它工作,使3也去变量lowest_score?有没有其他办法让整个过程顺利进行?(不使用max()和min())
2条答案
按热度按时间omqzjyyz1#
如果你试图找到最大的数字,为什么你不断地追加到
highest_score
或lowest_score
?难道你不想只附加最大值或最小值吗?为什么不先计算一下呢?请注意,虽然这可能是一个有用的教育练习,但在这种情况下(或者在任何其他情况下,您试图找到一个以某种方式胜过其他元素的元素),没有实际的理由不使用内置函数
max()
和min()
。gcuhipw92#