इस ट्यूटोरियल में, हम एक चुनौती का समाधान लिखने जा रहे हैं।
चुनौती
हमें बुनियादी अंकगणितीय परिचालनों का एक यादृच्छिक सेट उत्पन्न करना है। उपयोगकर्ता प्रश्नों की संख्या देगा, और हमें प्रश्न उत्पन्न करने होंगे। हर सवाल के बाद यूजर इसका जवाब देगा। कार्यक्रम के अंत में, हमें अंक देना होगा। आइए इसे आजमाएं।
उदाहरण
# importing random and operator modules import random import operator # main function # taking number of questions that we have to generate def main(n): print("Welcome to the quiz\nYou should answer floats upto 2 decimals") # initialising score to 0 score = 0 # loop to generate n questions for i in range(n): # getting answer and correctness of a question is_correct, answer = question(i) # checking whether is_correct is True or not if is_correct: # increment score by 1 if correct score += 1 print('Correct Congrats!') else: # printing the correct answer print(f'Incorrect! Answer: {answer}') # displaying the total score print(f'Total score: {score}') # function for the question def question(n): # getting answer from the generate_function answer = generate_question() # taking answer from the user user_answer = float(input("Answer: ")) # returning answer to the main function return user_answer == answer, answer # function to generate a random question def generate_question(): # initialising operators for random generation operators = { '+' : operator.add, '-' : operator.sub, '*' : operator.mul, '/' : operator.truediv, '//' : operator.floordiv, '%' : operator.mod } # initialising numbers for expressions nums = [i for i in range(10)] # getting two random numbers from nums for calculation _1, _2 = nums[random.randint(0, 9)], nums[random.randint(0, 9)] # generating random operator from the list of operators symbol = list(operators.keys())[random.randint(0, 5)] # calculating the answer answer = round(operators.get(symbol)(_1, _2), 2) print(f'{_1} {symbol} {_2}?') return answer if __name__ == '__main__': main(5)
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
Welcome to the quiz You should answer floats upto 2 decimals 5 + 7? Answer: 12 Correct Congrats! 9 / 9? Answer: 1 Correct Congrats! 4 + 7? Answer: 11 Correct Congrats! 6 // 6? Answer: 1.0 Correct Congrats! 9 % 3? Answer: 0 Correct Congrats! Total score: 5
निष्कर्ष
आप कुछ और सुविधाओं को जोड़कर भी प्रश्न में सुधार कर सकते हैं जैसे कि बढ़ती कठिनाई, कठिन प्रश्नों को आसान बनाना, आदि। इसे स्वयं आज़माएं। मुझे आशा है कि आपने ट्यूटोरियल का आनंद लिया। यदि आपको कोई संदेह है, तो टिप्पणी अनुभाग में उनका उल्लेख करें।