python - 索引超出范围,没有找到确切的错误
问题描述
我基本上是编码新手,并且一直在阅读有关 Python 的内容。但我似乎没有在我的代码中找到错误。如果你能帮助我,那就太好了。也欢迎任何纠正或观察。我有这个错误:
代码导致错误
if ((lista1[1] >= lista1[2]) and (lista1[2] >= 0)):
错误:
IndexError: list index out of range
我的代码:
import math
import numpy as np
lista1=[1,3]
def von_mises(sigma_A, sigma_B, tao_XY):
print("Las unidades de los valores ingresados se encuentran en kpsi")
print("Ingresar el valor del esfuerzo en X:\n")
sigma_A = input() #Input regresa una cadena de caracteres, no valores numéricos
sigma_A = int(sigma_A)
print("Ingresar el valor del esfuerzo en Y:\n")
sigma_B = input()
sigma_B = int(sigma_B)
print("Ingresar el valor del esfuerzo cortante Tao:\n")
tao_XY = input()
tao_XY = int(tao_XY)
sigma_von = math.sqrt((pow(sigma_A, 2))-(sigma_A*sigma_B)+(pow(sigma_B, 2))+(3*(pow(tao_XY, 2))))
lista1 = np.array([sigma_von, sigma_A, sigma_B])
return lista1 #para simplificar el llamado de los valores que arroja esta función
def ED(res_ced, lista1):
print("Ingresar el valor de la resistencia a la cedencia:\n")
res_ced = input()
res_ced = int(res_ced)
n_ED = res_ced/lista1[0] #se invoca a la función de von mises para simplificar
print("El factor de seguridad ED es:")
print(n_ED)
def ECM(lista1, res_ced):
if ((lista1[1] >= lista1[2]) and (lista1[2] >= 0)):
n_ECM = res_ced/lista1[1]
elif ((lista1[1] >= 0) and (lista1[2] <= 0)):
n_ECM = res_ced/(lista1[1]-lista1[2])
else:
n_ECM = res_ced/(-lista1[2])
print("El factor de seguridad ECM es:")
print(n_ECM)
#MAIN
res_ced=0
tao_XY=0
sigma_A=0
sigma_B=0
ED(res_ced,von_mises(sigma_A, sigma_B, tao_XY))
ECM(lista1, res_ced)
解决方案
在 python 中,列表索引从 0 开始。如果您将代码更改为,它应该可以工作
if ((lista1[0] >= lista1[1]) and (lista1[1] >= 0))
推荐阅读
- react-native - 如何将 Expo AppAuth 模块与 IdentityServer4 一起使用
- thumbnails - 如何在fancybox-3中居中缩略图
- excel - 对于每个...下一次迭代比它应该的多一次?
- unix - 使用具有指定字符位置的流编辑器
- facebook - 如何使用 facebook API 检索我的页面的 facebook messenger 订阅者列表?
- html - 如何应用 CSS 将标签中包裹的 DDA.AC 字符置于屏幕中央
- python - 名称“ssh_client”未定义
- wordpress - 如何在其他帖子类型页面的自定义帖子类型中设置父页面?
- xamarin.forms - 使用 PushModalAsync 显示页面时无法显示警报控制器
- c++ - 如何使用 C++ 中的函数访问全局变量?