我想制作一个数据记录代码,供用户输入动物的数量和年龄,出生率以及他们存活下一代的机会。我曾尝试使用收益,但是当我运行该程序,变量保持为0Python变量不会改变
在这里,我已经开始变量
Gen0_J=0
Gen0_A=0
Gen0_S=0
Birth_rate=0
Srate_J=0
Srate_A=0
Srate_S=0
New_generations=5
我的第一个功能
def generation_values():
Gen0_J=int(input("How many juveniles in Generation 0? "))
Gen0_A=int(input("How many adults in Generation 0? "))
Gen0_S=int(input("How many seniles in Generation 0? "))
Srate_J=float(input("What is the survival rate for juveniles? "))
Srate_A=float(input("What is the survival rate for adults? "))
Srate_S=float(input("What is the survival rate for seniles? "))
Birth_rate=int(input("What is the birth rate? "))
return Gen0_J,Gen0_A,Gen0_S,Srate_J,Srate_A,Srate_S,Birth_rate
显示变量
def display_values():
print("\nThe amount of juveniles in Generation 0 is",Gen0_J)
print("The amount of adults in Generation 0 is",Gen0_A)
print("The amount of seniles in Generation 0 is",Gen0_S)
print("The birth rate in Generation 0 is",Birth_rate)
print("The survival rate for juveniles in Generation 0 is",Srate_J)
print("The survival rate for adults in Generation 0 is",Srate_A)
print("The survival rate for seniles in Generation 0 is",Srate_S)
generation_values()
display_values()
然而,变量保持在0
How many juveniles in Generation 0? 5
How many adults in Generation 0? 6
How many seniles in Generation 0? 7
What is the survival rate for juveniles? 0.75
What is the survival rate for adults? 1
What is the survival rate for seniles? 0
What is the birth rate? 2
The amount of juveniles in Generation 0 is 0
The amount of adults in Generation 0 is 0
The amount of seniles in Generation 0 is 0
The birth rate in Generation 0 is 0
The survival rate for juveniles in Generation 0 is 0
The survival rate for adults in Generation 0 is 0
The survival rate for seniles in Generation 0 is 0
在函数内创建的变量不会更改在函数外创建的变量的值,即使它们具有相同的名称。 – Kevin
'return'不会将这些值放在更大的范围内,它们需要分配给值以实现。 (这可能会有所帮助)(/ questions/291978/python-scoping-rules的简短描述)。 – SuperBiasedMan