我创建了这个代码,在3个不同的地方获得3个不同的选项。它实际上是一个闪存卡程序,我希望工作,但我不能。它进入无限循环,我不知道为什么。可能还有其他问题,但我还没有,但无论如何请告诉我。保留sam var名称,以便我可以轻松理解。我附上了所有代码。它们还有一些,但还没有实现。
还有3个列表,每个列表包含14个项目,但这些列表不会进入代码:
key_words = ['纤维素','呼吸'血红蛋白''通气''软骨' ,' Cytoplasm' Nucleus',' Alveoli',' Amino acids',' Virus',' ;白细胞',光合作用,'气孔'疫苗'纤维']
defs = ['构成绿色植物细胞壁的坚韧物质'一种化学反应,导致能量从葡萄糖释放出来,' A物质它与氧气结合并在血液中围绕身体运动,呼吸,'坚韧,覆盖骨头末端的光滑物质,以保护它们,','化学反应发生的细胞的果冻状部分,'控制细胞内部发生的事情,“肺部的微小气囊”,“蛋白质产生”消化','最小的微生物类型,'可以吞噬细菌或制造抗体''将二氧化碳,水和光转化为葡萄糖的过程氧气','叶子下面的小孔,'死亡或非活性形式的微生物',#39;一种无法消化的营养素']
completed = [0,0,0,0,0,0,0,0,0,0,0,0,0,0]
感谢 卡勒姆
import random
option1 = random.randint(int(1), int(14))
option2 = random.randint(int(1), int(14))
option3 = random.randint(int(1), int(14))
while option1 == option2 or option1 == option3:
placement1 = random.randint(int(1), int(3))
while option2 == option3:
option2 = random.randint(int(1), int(3))
placement1 = random.randint(int(1), int(3))
placement2 = random.randint(int(1), int(3))
placement3 = random.randint(int(1), int(3))
while placement1 == placement2 or placement1 == placement3:
placement1 = random.randint(int(1), int(3))
while placement2 == placement1 or placement2 == placement3:
placement3 = random.randint(int(1), int(3))
print('What is the correct defenition for', key_words[option3])
place3 = 1
if placement1 == 1:
print('1: ', defs[option1])
elif placement1 == 2:
print('1: ', defs[option2])
elif placement1 == 3:
print('1: ', defs[option3])
place3 = '1'
if placement2 == 1:
print('2: ', defs[option1])
elif placement2 == 2:
print('2: ', defs[option2])
elif placement2 == 3:
print('2: ', defs[option3])
place3 = '2'
if placement3 == 1:
print('3: ', defs[option1])
elif placement3 == 2:
print('3: ', defs[option2])
elif placement3 == 3:
print('3: ', defs[option3])
place3 = '3'
choice = str(input('Enter 1, 2 or 3: '))
if choice == place3:
print('Well done, correct.')
a = completed[option3] + 1
completed[option3] += 1
else:
print('Inccorect. Have another look and we`ll come back later.')
答案 0 :(得分:2)
在你的第一个循环中:
while option1 == option2 or option1 == option3:
placement1 = random.randint(int(1), int(3))
您永远不会更改option1
的值。如果条件为真进入循环,它将永远保持为真。您的意思是使用option1
代替placement1
吗?
答案 1 :(得分:1)
你永远不会突破你的第一个循环。
while option1 == option2 or option1 == option3:
placement1 = random.randint(int(1), int(3))
条件取决于option1,option2和option3的值,它们从不在循环体中调整。如果代码进入循环,它将保留在那里。
顺便提一下,此代码还有许多其他严重问题和代码味道。我没有时间给他们所有人命名。