【发布时间】:2016-09-03 13:44:32
【问题描述】:
我试图为此只定义一个函数
欢迎参加考试
Word 1/5: Potato 这个词包含多少辅音?
3
正确!
单词 2/5:土豆 单词包含多少个元音?
1
正确!
单词 3/5:名称 单词包含多少个元音
5
不正确!正确答案 4
Word 4/5: YES 单词包含多少个字母? 3 正确!
单词 5/5:天
单词的第3个字母是什么?
是的
正确!
游戏结束。你的分数是 4/5
@Niemmi 喜欢这个? 随机导入 导入字符串
def consonant_count(word):
word = word.lower()
return len([x for x in word if x in consonants])
def vowel_count(word):
word = word.lower()
return len([x for x in word if x in vowels])
def prompt_letter_count(word):
correct = word_map[word]['letters']
ans = input('How many letters does "{}" contain?'.format(word))
return check(int(ans), correct)
def prompt_vowel_count(word):
correct = word_map[word]['vowels']
ans = input('How many vowels does "{}" contain?'.format(word))
return check(int(ans), correct)
def prompt_consonant_count(word):
correct = word_map[word]['consonants']
ans = input('How many consonants does "{}" contain?'.format(word))
return check(int(ans), correct)
def prompt_random_letter(word):
n = random.randint(0, len(word))
correct = word[n-1]
ans = input('What is letter {} of "{}"?'.format(n, word))
return check(int(ans).lower(), correct.lower())
def check(ans, correct):
if ans == correct:
return prompt_correct()
return prompt_incorrect()
def prompt_correct():
print('That is correct! :)')
return 1
def prompt_incorrect():
print('That is incorrect :(')
return 0
def next_question(word):
q_type = input_map[random.randint(1, 4)]
return q_type(word)
vowels = ['a', 'e', 'i', 'o', 'u']
consonants = [x for x in string.ascii_lowercase if x not in vowels]
quizWords = ['WOMBAT', 'COMPUTER', 'BOOKS', 'DAY', 'NIGHT', 'HOUR', 'POTATO', 'HUGE', 'TINY', 'GOOD', 'BAD', 'YES', 'NO', 'HOUSE', 'QUESTION', 'BALLOON', 'CAT', 'DUCK', 'KOOKARBURRA', 'POSTER', 'TELEVISION', 'PRINCE', 'RHYTHM', 'SUDDENLY', 'SNOW', 'MAGNET', 'TOWEL', 'WALKING', 'SPEAKER', 'UNCHARACTERISTICALLY']
word_map = {x:{'consonants':consonant_count(x), 'vowels':vowel_count(x), 'letters':len(x)} for x in quizWords}
input_map = {1:prompt_letter_count, 2:prompt_vowel_count, 3:prompt_consonant_count, 4:prompt_random_letter}
def start_quiz(number_questions):
current_question = 0
correct_questions = 0
if number_questions > len(quizWords):
number_questions = len(quizWords)
sample_questions = random.sample(quizWords, number_questions)
print('WELCOME TO YOUR QUIZ')
print ('---------------------')
for x in sample_questions:
print ("Question {}/{}:".format(current_question+1, number_questions))
correct_questions += next_question(x)
print ('---------------------')
current_question += 1
print ('Congragulations on completing your quiz!')
print (" Score {}/{}:".format(correct_questions , number_questions))
try_again = input('Would you like to try again? (y/n)').lower()
if try_again == 'y' or try_again == 'yes':
start_quiz(number_questions)
start_quiz(4)
【问题讨论】:
标签: python python-3.x for-loop