correct-question.py 614 Bytes
#!/usr/bin/env python3

'''
Demonstação de um script de correcção
'''

import re
import sys

s = sys.stdin.read()

ans = set(re.findall(r'[\w]+', s.lower()))  # get words in lowercase
rgb = set(['red', 'green', 'blue'])     # the correct answer

# a nota é o número de cores certas menos o número de erradas
grade = max(0,
            len(rgb.intersection(ans)) - len(ans.difference(rgb))) / 3

if ans == rgb:
    print('---\n'
          'grade: 1.0\n'
          'comments:  Muito bem!')

else:
    print('---\n'
          f'grade: {grade}\n'
          'comments: A resposta correcta é "red green blue".')