今年夏天我正在做我的 GCSE,并且对为什么不接受这行代码感到困惑。
任何帮助都会有所帮助。
错误来自行 print('First gen \nJuveniles in gen 1',new_gens[0][0],'\nAdults in gen 1',new_gens[0][1],'\nSeniles in gen 1',new_gens[0][2])
我正在尝试制作第一代绿蝇,但是我什至很难将它们打印出来,而且 python 说整数不可下标。
def Menu():
again = True
while again == True:
print('\n------------------GreenFly Model------------------\n\n')
print('MENU\n')
print('Option 1\t Set the Generation 0 values')
print('Option 2\t Display the Generation 0 values')
print('Option 3\t Run the model')
print('Option 4\t Quit')
print('Select an option from above')
choice = str(input('What is your option?'))
if choice == '1':
Generation_0()
elif choice == '2':
Display_Generation_0()
elif choice == '3':
model()
elif choice == '4':
quit_model()
again = False
else:
print('invalid option, Try again')
def Generation_0():
global gen0
Juveniles = int(input('How many Juveniles? '))
Adults = int(input('How many Adults? '))
Seniles = int(input('How many Sentiles? '))
BR = int(input('What is your birthrate? '))
J_Survrate = int(input('Juvenile survival rate between 0&1'))
A_Survrate = int(input('Adult survival rate between 0&1'))
S_Survrate = int(input('Senile survival rate between 0&1'))
num_gen=int(input('Birth rate between 5 and 25'))
gen0 = [[Juveniles,Adults,Seniles], #stores all the information in a 2d array
[BR],
[J_Survrate,A_Survrate,S_Survrate],
[num_gen]]
gens.append(gen0)
print(gen0)
Menu()
def Display_Generation_0(): #lists out the 2d array
print('Generation 0\nJuvenile numbers are ',gen0[0][0], "\nAdult numbers are ",gen0[0][1],'\nSenile numbers are ',gen0[0][2],'\nBirth rate is ',gen0[1][0],'\nJunior survival rate is ',gen0[2][0], '\nAdult survival rate is ',gen0[2][1], '\nSenile survival rate is ',gen0[2][2], '\nNumber of generations is ',gen0[3][0],)
def model():
new_gens = [(gen0[0][1]*gen0[1][0]),(gen0[0][0]*gen0[2][0]),((gen0[0][1]*gen0[2][1])+(gen0[0][2]*gen0[2][2]))]
print('First gen \nJuveniles in gen 1',new_gens[0][0],'\nAdults in gen 1',new_gens[0][1],'\nSeniles in gen 1',new_gens[0][2])
#Main
gens=[]
Menu()
new_gens 是一个一维数组,你正在索引它,就好像它是一个二维数组。您正在尝试索引一个无效的数字。为了清楚起见,new_gens 实际上是这样的:
new_gens = [122, 35, 88]
什么new_gens[0][0]
要说的是获得第1个要素的new_gens数组中,然后拿到第1个要素的一切在那桶。您可以看到 122 只是一个数字,而不是另一个列表。
你可以通过简单的索引来获得你想要的索引:
JUVENILES_INDEX, ADULTS_INDEX, SENILES_INDEX = 0, 1, 2
print('First gen \nJuveniles in gen 1',new_gens[JUVENILES_INDEX],'\nAdults in gen 1',new_gens[ADULTS_INDEX],'\nSeniles in gen 1',new_gens[SENILES_INDEX])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句