ในบทช่วยสอนนี้ เราจะเขียนวิธีแก้ปัญหาสำหรับความท้าทาย
ความท้าทาย
เราต้องสร้างชุดปฏิบัติการเลขคณิตพื้นฐานแบบสุ่ม ผู้ใช้จะให้จำนวนคำถามและเราต้องสร้างคำถาม หลังจากทุกคำถามผู้ใช้จะตอบคำถามนั้น จบรายการเราต้องให้คะแนน มาลองดูกัน
ตัวอย่าง
# 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
บทสรุป
คุณยังสามารถปรับปรุงคำถามโดยเพิ่มคุณสมบัติอื่นๆ เช่น การเพิ่มความยาก การสร้างคำถามที่ง่ายไปยาก เป็นต้น ลองด้วยตัวคุณเอง ฉันหวังว่าคุณจะสนุกกับการกวดวิชา หากคุณมีข้อสงสัยใด ๆ ให้พูดถึงในส่วนความคิดเห็น