python堆栈溢出的原因_列表索引超出范围,并且堆栈溢出错误 - python

我这次尝试使用python获取最大配对明智产品,某些方面的概念对我来说仍然是新的。由于我无法选择Python中的类型,因此我继续获得超出范围错误和stackoverflows的列表索引,但我不知道如何处理。

我研究了枚举和其他iterate(ble)函数,但无济于事。 Id回答说,这可能会帮助将来的人们在从C到python的迁移中遇到简单的for循环问题。

def max_pairwise_product(numbers):

n = len(numbers)

max_product = 0

for first in range(n):

for second in range(first + 1, n):

max_product = max(max_product,

numbers[first] * numbers[second])

return max_product

def max_pairwise_product_fast(numbers):

n = len(numbers)

index1 = 1

for i in range(2,n,1):

if (numbers[i]>numbers[index1]):

index1 = i

if (index1 == 1):

index2 = 2

else:

index2=1

for i in range(1,n):

if(numbers[i]!=numbers[index1] and numbers[i]>numbers[index2]):

index2 = i

return (numbers[index1]*numbers[index2])

if __name__ == '__main__':

input_n = int(input())

input_numbers = [int(x) for x in input().split()]

print(max_pairwise_product_fast(input_numbers))

Traceback (most recent call last):

File "C:/Users/Tevin/.PyCharmCE2018.3/config/scratches/scratch_1.py", line 31, in

print(max_pairwise_product_fast(input_numbers))

File "C:/Users/Tevin/.PyCharmCE2018.3/config/scratches/scratch_1.py", line 27, in max_pairwise_product_fast

return (numbers[index1]*numbers[index2])

IndexError: list index out of range

参考方案

为什么不在列表中找到2个最大数字并将它们相乘以获得最大乘积。找到列表的最大值,然后将其保存在某个变量中。从列表中将其删除,然后再次找到最大值。然后将其与您保存的变量相乘。

至于您的代码,这行是做什么用的?

input_n = int(input())

您没有在任何地方使用input_n变量。

和线:

input_numbers = [int(x) for x in input().split()]

您的代码将要求您输入2次。第一次输入输入时,它会保存在input_n变量中。然后您的第二个输入将另存为input_numbers。您提供给程序的输入类型有问题。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值