-
-
Save mounte/7e61f870a3148028ab14 to your computer and use it in GitHub Desktop.
python_survey_sample
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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