今年夏天我要考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])
行
我正在尝试制作第一代greenflies,但是我甚至很难将它们打印出来,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[0][0]
的意思是获取新的\u gens数组中的第一个元素,然后获取桶中任何东西的第一个元素。你可以看到122只是一个数字,而不是另一个列表只需按以下方式编制索引,即可获得所需的索引:
问题是
new_gens
实际上是一个由3个数据组成的数组所以当你做
new_gens[0][0]
就像做(int(1))[0]你会得到所以我们应该这样做:
相关问题 更多 >
编程相关推荐