我正在使用以下代码,它只是从一个范围中选择一个随机数,并将其用作选择其他元素的机会,并且它工作正常,没有错误,但偶尔会从范围中选择的数字(通常是最后一个数字(如 16 或 20)不起作用,我不知道为什么。
代码:
import random
# List used for Age Classifications
ageClass = ["Newborn", "Young", "Aged", "Old", "Ancient", "Timeless"]
randAgeClass = ""
randAge = 0
# Probability of age classes
# Newer classes are much more likely to be selected than the older classes
chance = random.randrange(1, 20)
# Chance Debug
print(chance)
if chance in range(1, 5):
randAgeClass = "Newborn"
elif chance in range(6, 10):
randAgeClass = "Young"
elif chance in range(11, 13):
randAgeClass = "Aged"
elif chance in range(14, 16):
randAgeClass = "Old"
elif chance in range(17, 18):
randAgeClass = "Ancient"
elif chance in range(19, 20):
randAgeClass = "Timeless"
else:
print("error")
# If statements for age classes
if randAgeClass == "Newborn":
randAge = random.randrange(1, 20)
elif randAgeClass == "Young":
randAge = random.randrange(21, 80)
elif randAgeClass == "Aged":
randAge = random.randrange(81, 250)
elif randAgeClass == "Old":
randAge = random.randrange(251, 500)
elif randAgeClass == "Ancient":
randAge = random.randrange(501, 1000)
elif randAgeClass == "Timeless":
randAge = random.randrange(1001, 6000)
else:
print("error")
print("Vampire Name: Steve")
print("Age Classification:", randAgeClass)
print("Age:", randAge)
只有当所选范围内的随机数是范围内的最后一个数字(例如 5、10、16)时,才会出现这种情况...为什么会发生这种情况以及如何解决此问题?
我尝试使用列表但不起作用,所以我宁愿只使用范围。
您需要更改范围:
if chance in range(1, 6):
randAgeClass = "Newborn"
elif chance in range(6, 11):
randAgeClass = "Young"
elif chance in range(11, 14):
randAgeClass = "Aged"
elif chance in range(14, 17):
randAgeClass = "Old"
elif chance in range(17, 19):
randAgeClass = "Ancient"
elif chance in range(19, 21):
randAgeClass = "Timeless"
else:
print("error")
这是独家。