Beginner Quiz game (True or False)
I would turn around the logic. The design you have has a lot of the general logic in the main program, and a lot of game-specific logic in the questions module. A better design for reusability would be to put the logic in a module, and the game-specific stuff (basically just the questions and perhaps some very superficial user interface) in the main program.

I would also define a separate class for the collection of questions; so maybe the main game might look like

from Quiz_Questions import QuestionsCollection, Question, PlayerState, QuestionsExhausted

collection = QuestionsCollection()

collection.add('Russia has a larger surface area than Pluto.', 'True', 7)
collection.add('There are as many stars in space than there are grains of sand on every beach in the world.', 'False', 5)
collection.add('For every human on Earth there are 1.6 million ants.', 'True', 8)
collection.add('On Jupiter and Saturn it rains diamonds.', 'True', 9)
collection.add('Scotland’s national animal is the phoenix.', 'False', 4)
collection.add('A banana is a berry.', 'True', 8),
collection.add('An octopus has three hearts.', 'True', 4)
collection.add('There are 10 times more bacteria in your body than actual body cells.', 'True', 9)
collection.add('Rhode Island is the closest US state to Africa.', 'False', 3)
collection.add('Shakespeare made up the name “Sarah” for his play Merchant of Venice.', 'False', 3)

def game():
    print('-' * 20)
    player = PlayerState()
    questions = collection.game()
    while True:
        try:
            question = questions.next()
        except QuestionsExhausted:
            break
        print(question.challenge())
        user_answer = input('Insert answer (Yes or No): ')
        response = player.assess(question, user_answer)
        print(response)
        print('-' * 20)
    print('Congratulations! You have answered all the questions!')
    print('Your final score is {} points'.format(player.score()))
    print('You answered {} questions right'.format(player.right_answers()))
    print('And {} questions wrong.'.format(player.wrong_answers()))

game()


This is just a rough sketch, but hopefully hints at a different design where the classes encapsulate the behavior specific to each, with enough freedom to reassemble things in a different arrangement (multi-player game? Add timeouts?) and also with the user-facing I/O and message strings (mostly) separate from the library module.

This doesn't handle invalid input very elegantly but I'm thinking the way I started this, the Player class would be responsible for some I/O as well, so maybe actually refactor to

...
while True:
    try:
        question = questions.next()
    except QuestionsExhausted:
        break
    player.handle(question)
print('Congratulations! You have answered all the questions!')
...