我创建了这段代码来在3个不同的地方得到3个不同的选项。这实际上是一个闪存卡程序,我希望它能工作,但我做不到。它进入了一个无尽的循环,我不知道为什么。可能还有其他问题,但我还没有解决,但无论如何请告诉我。保留sam变量的名称,这样我就可以很容易地理解。我已经附上了所有的代码。它们是更多的,但它还没有实现。
还有3个列表,每个列表包含14个项目,但这些不会进入代码:
key_words =‘纤维素’,‘呼吸’,‘血红蛋白’,‘通气’,‘软骨’,‘细胞质’,‘细胞核’,‘肺泡’,‘氨基酸’,‘病毒’,‘白细胞’,‘光合作用’,‘气孔’,‘疫苗’,‘纤维’
defs =“构成绿色植物细胞壁的坚韧物质”,“导致葡萄糖释放能量的化学反应”,“一种与氧气结合并在血液中携带氧气的物质”,“呼吸”,“坚韧、光滑的物质覆盖在骨骼末端以保护它们”,“细胞中发生化学反应的果冻状部分”,“控制细胞内发生化学反应的部分”,“肺部的微小气囊”,“蛋白质消化时产生的”,“最小类型的微生物”,“可以吞噬细菌或产生抗体”,“将二氧化碳、水和光线转化为葡萄糖和氧气的过程”,“叶子背面的小孔”,“死亡或不活跃的微生物”,“无法消化的营养物质”。
已完成= 0,0,0,0,0,0,0,0,0,0,0,0,0
谢谢Callum
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.')发布于 2014-03-12 01:43:05
在您的第一个循环中:
while option1 == option2 or option1 == option3:
placement1 = random.randint(int(1), int(3))您永远不能更改option1的值。如果条件为真进入循环,它将永远保持为真。您的意思是不是要用placement1代替option1
发布于 2014-03-12 01:44:05
你永远不会跳出你的第一个循环。
while option1 == option2 or option1 == option3:
placement1 = random.randint(int(1), int(3))该条件取决于option1、option2和option3的值,这些值永远不会在循环体中调整。如果代码进入循环,它将停留在那里。
顺便说一句,这段代码还有许多其他严重的问题和代码味道。我没有时间给他们全部命名。
https://stackoverflow.com/questions/22332384
复制相似问题