Skip to content

Instantly share code, notes, and snippets.

@mounte
Created September 30, 2014 19:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mounte/7e61f870a3148028ab14 to your computer and use it in GitHub Desktop.
Save mounte/7e61f870a3148028ab14 to your computer and use it in GitHub Desktop.
python_survey_sample
#!/usr/bin/python
# -*- coding: latin-1 -*-
intro = u"""Hej och välkommmen till Strängnäs vinterbadarklubbs ansökningsblankett.
För att bli godkänd som medlem av förenigen måste minst två av kraven vara uppfyllda
"""
questions = (
u"Gillar du när utomhustemperaturen är under noll grader",
u"Tycker du det är jättekul att hacka upp stora isvaker",
u"Tycker du det är jättetrevligt att hoppa i en isvak",
)
answer_options = (
('j', 'n'),
('j', 'n'),
('j', 'n'),
)
required_answers = (
('j',),
('j',),
('j',),
)
required_correct = 2
survey_questions = zip(questions, answer_options, required_answers)
print intro
for question, answer_option, required_answer in survey_questions:
answer = raw_input("%s (%s)?" % (question, "/".join(answer_option))).lower()
if answer in required_answer:
required_correct -= 1
if required_correct <= 0:
print u"Välkommen till Strängnäs vinterbadarklubb"
else:
print u"Du är inte välkommen tyvärr"
#!/usr/bin/python
# -*- coding: latin-1 -*-
class SurveyQuestion(object):
def __init__(self, question, possible_answers=('j', 'n'), required_answer=('j',)):
self.question = question
self.possible_answers = possible_answers
self.required_answer = required_answer
self.answer = None
def ask(self):
self.answer = raw_input("%s (%s)?" % (question, "/".join(self.possible_answers))).lower()
def score(self):
return 1 if self.answer in self.required_answer else 0
class Survey(object):
def __init__(self, intro_message, pass_message, fail_message, questions = list(), score_goal = 0):
self.questions = questions
self.score_goal = score_goal
self.score = 0
self.intro_message = intro_message
self.pass_message = pass_message
self.fail_message = fail_message
def add_question(self, question):
self.questions.append(question)
def do_survey(self):
print self.intro_message
for question in self.questions:
question.ask()
self.score += question.score()
def get_result(self):
if self.score >= self.score_goal:
print self.pass_message
return True
else:
print self.fail_message
return False
vinterbad_questions = (
u"Gillar du när utomhustemperaturen är under noll grader",
u"Tycker du det är jättekul att hacka upp stora isvaker",
u"Tycker du det är jättetrevligt att hoppa i en isvak",
)
vinterbad_survey = Survey(u"""Hej och välkommmen till Strängnäs vinterbadarklubbs ansökningsblankett.
För att bli godkänd som medlem av förenigen måste minst två av kraven vara uppfyllda
""",
u"Välkommen till Strängnäs vinterbadarklubb",
u"Du är inte välkommen tyvärr",
[SurveyQuestion(question) for question in vinterbad_questions],
2)
vinterbad_survey.do_survey()
vinterbad_survey.get_result()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment