如何访问字典中的特定数据

问题描述 投票:0回答:1

我找到了下面的 python 脚本并做了一些改进,但是,有些东西我无法工作。我一直在努力寻找所需的资源。

import random
from string import ascii_lowercase

NUM_questionFileS_PER_studFileUIZ = 5
questionFileS = {
    "This is question A":
    ["Choice 1", "Choice 2", "Choice 3",], "This is question B": ["Choice 1", "Choice 2", "Choice 3",],
}

num_questionFiles = min(NUM_questionFileS_PER_studFileUIZ, len(questionFileS))
questionFiles = random.sample(list(questionFileS.items()), k=num_questionFiles)

num_correct = 0
for num, (questionFile, alternatives) in enumerate(questionFiles, start=1):
    print(f"\nQuestion {num}:")
    print(f"{questionFile}?")
    
    correct_answer = alternatives[0]
    labeled_alternatives = dict(zip(ascii_lowercase, random.sample(alternatives, k=len(alternatives))))
    for label, alternative in labeled_alternatives.items():
        print(f"  {label}) {alternative}")

    while (answer_label := input("\nYour Choice? ")) not in labeled_alternatives:
        print(f"Please answer one of {', '.join(labeled_alternatives)}")
  
    answer = labeled_alternatives[answer_label] 
    
    if answer == correct_answer:
        num_correct += 1
        print("That is correct!")
    else:
        print(f"Wrong Answer  :   {label} {answer!r}")
        print(f"Correct Answer:   {label} {correct_answer!r}")

示例输出:

Question 2:
This is question A?
  a) Choice 1
  b) Choice 2
  c) Choice 3

Your Choice? b    # This is the part I needed help
Wrong Answer  :   c 'Choice 2'
Correct Answer:   c 'Choice 1'

想要的输出:

Your Choice? b    
Wrong Answer  :   b) Choice 2
Correct Answer:   a) Choice 1
python python-3.x dictionary
1个回答
0
投票

label
始终是原始列表中的最后一个元素,不应重复使用

print(f"Wrong Answer  :  {answer_label}) {answer!r}") 
print(f"Correct Answer:  {labeled_alternatives.keys()[0]}) {correct_answer!r}")
© www.soinside.com 2019 - 2024. All rights reserved.