Python實戰(zhàn)之IQ測試系統(tǒng)的實現(xiàn)
導(dǎo)語
智商測試
通常,智商測試測驗一個人在數(shù)字、空間、邏輯、詞匯、創(chuàng)造、記憶等方面的能力。
一般來說,50%的人口,即人口中的一半人屬于正常和平均智力水平(得分在90到109之間)。得分在110以上就屬于高智商者,即很聰明。
據(jù)稱,愛因斯坦智商得分160,屬于天才。?
今天在抖音上面刷到關(guān)于智商、情商、愛情啥等好多測試的小程序,麻了麻了。
所以小編從上面獲得了靈感,哈哈哈,你想的沒錯,就是這樣,給大家上線一款這種測試IQ的小系統(tǒng),快來測一測你的智商又多高叭~
一、運行環(huán)境
小編使用的環(huán)境:Python3、Pycharm社區(qū)版、其他都是內(nèi)置模塊 你安裝 好python環(huán)境就可以了。
二、資料素材
準備好相應(yīng)的測試題目,下面是30題目,答案也要準備好哦~還有測試的分數(shù)標準嘞都準備好撒
三、代碼展示
import os import random import datetime def read_file(path, file_name): """ 讀取文件函數(shù) :param path: 路徑 :param file_name: 文件名稱 :return: 文件內(nèi)容 """ # 這里的/ 也可以換成\\ with open(path + "/" + file_name, "r", encoding="utf8") as file: content = file.read() # 因為文件內(nèi)容比較少 所以直接使用read方法一次性全部讀取 return content if __name__ == '__main__': print("=======================IQ智力測試(限時版)=======================") print("-" * 55) print("說明: 測試時間: 30分鐘,測試題數(shù): 30") now = datetime.datetime.now() # 獲取當(dāng)前時間 delay_time = datetime.timedelta(minutes=30) stop_time = now + delay_time print("測試結(jié)束時間為: ", stop_time.strftime("%Y-%m-%d %H:%M:%S")) len_que = len(os.listdir("./que")) score = 0 # 用來統(tǒng)計得分 msg = ["智商1級: 白癡", "智商1級: 白癡", "智商1級: 白癡", "智商1級: 白癡", "智商1級: 白癡", "智商2級: 智障", "智商3級: 智弱", "智商4級: 臨界", "智商5級: 凡人", "智商6級: 聰慧", "智商7級: 人才", "智商8級: 精英", "智商9級: 天才", "智商9級: 天才", "智商9級: 天才", "智商9級: 天才", "智商9級: 天才", "智商9級: 天才", "智商9級: 天才"] msg2 = ["白癡", "智障", "智弱", "臨界", "凡人", "聰慧", "人才", "精英", "天才"] num_list = list(range(1, len_que + 1)) i = 1 while len(num_list) > 0: num = random.choice(num_list) num_list.remove(num) print(f"\n第 {i} 題: \n" + read_file("./que", "que" + str(num) + ".txt")) # 用戶輸入答案 user_ans = input("請輸入正確答案前面的數(shù)字編號: ").strip() # 讀取正確答案 right_ans = read_file("./ans", "ans" + str(num) + ".txt").strip() if user_ans == right_ans: # 判斷用戶輸入答案與正確一致 score += 6 # 答案一致加6分 now = datetime.datetime.now() left = int((stop_time - now).seconds / 60) if left <= 0: print("答題超時,將結(jié)束測試!") break else: print(f"剩余答題時間:{left}分鐘") i += 1 print(f"你的IQ測試成績?yōu)? {score} {msg[int(score / 10)]}") # 將成績和等級寫入文件 with open("iq.txt", "a", encoding="utf8") as file: file.write(str(score) + "," + msg[int(score / 10)].split(":")[1].strip() + "\n") # 讀取文件中的測試成績及等級 score_list = [] # 用來存儲所有的成績 level_list = [] # 用來存儲所有的等級 if os.path.exists("iq.txt"): with open("iq.txt", "r", encoding="gbk") as file: while True: line_content = file.readline().strip() if line_content == "": break else: score_list.append(int(line_content.split(",")[0].strip())) level_list.append(line_content.split(",")[1].strip()) # 對成績進行排序 score_list.sort(reverse=True) print(f"目前您在所有測試的成績中排名第{score_list.index(score) + 1}名," f"超過了{len(score_list) - (score_list.index(score) + 1)}名選手") print("智商測試分析圖: ") for item in msg2: print(item, int(level_list.count(item)) * chr(9632), level_list.count(item))
四、效果展示
1)智商測試限時版本
?2)木子測試
到此這篇關(guān)于Python實戰(zhàn)之IQ測試系統(tǒng)的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python IQ測試系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python3.7利用Motor來異步讀寫Mongodb提高效率(推薦)
Motor是一個異步mongodb driver,支持異步讀寫mongodb。它通常用在基于Tornado的異步web服務(wù)器中。這篇文章主要介紹了基于python3.7利用Motor來異步讀寫Mongodb提高效率,需要的朋友可以參考下2020-04-04python Matplotlib數(shù)據(jù)可視化(1):簡單入門
這篇文章主要介紹了python Matplotlib的相關(guān)資料,幫助大家入門matplotlib,繪制各種圖表,感興趣的朋友可以了解下2020-09-09python使用JSON模塊進行數(shù)據(jù)處理(編碼解碼)
這篇文章主要為大家介紹了python使用JSON模塊進行數(shù)據(jù)處理編碼解碼的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06Python中實現(xiàn)對Timestamp和Datetime及UTC時間之間的轉(zhuǎn)換
這篇文章主要介紹了Python中實現(xiàn)對Timestamp和Datetime及UTC時間之間的轉(zhuǎn)換,例子則主要針對Ubuntu等類UNIX系統(tǒng),需要的朋友可以參考下2015-04-04Django框架中render_to_response()函數(shù)的使用方法
這篇文章主要介紹了Django框架中render_to_response()函數(shù)的使用方法,注意范例中該方法的參數(shù)的使用,需要的朋友可以參考下2015-07-07Python繪制數(shù)據(jù)動態(tài)圖的方法詳解
這篇文章主要為大家詳細介紹了如何利用Python語言繪制好看的數(shù)據(jù)動態(tài)圖,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手嘗試一下2022-07-07