Python實(shí)戰(zhàn)之IQ測(cè)試系統(tǒng)的實(shí)現(xiàn)
導(dǎo)語(yǔ)
智商測(cè)試
通常,智商測(cè)試測(cè)驗(yàn)一個(gè)人在數(shù)字、空間、邏輯、詞匯、創(chuàng)造、記憶等方面的能力。
一般來(lái)說(shuō),50%的人口,即人口中的一半人屬于正常和平均智力水平(得分在90到109之間)。得分在110以上就屬于高智商者,即很聰明。
據(jù)稱,愛(ài)因斯坦智商得分160,屬于天才。?
今天在抖音上面刷到關(guān)于智商、情商、愛(ài)情啥等好多測(cè)試的小程序,麻了麻了。
所以小編從上面獲得了靈感,哈哈哈,你想的沒(méi)錯(cuò),就是這樣,給大家上線一款這種測(cè)試IQ的小系統(tǒng),快來(lái)測(cè)一測(cè)你的智商又多高叭~

一、運(yùn)行環(huán)境
小編使用的環(huán)境:Python3、Pycharm社區(qū)版、其他都是內(nèi)置模塊 你安裝 好python環(huán)境就可以了。
二、資料素材
準(zhǔn)備好相應(yīng)的測(cè)試題目,下面是30題目,答案也要準(zhǔn)備好哦~還有測(cè)試的分?jǐn)?shù)標(biāo)準(zhǔn)嘞都準(zhǔn)備好撒

三、代碼展示
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() # 因?yàn)槲募?nèi)容比較少 所以直接使用read方法一次性全部讀取
return content
if __name__ == '__main__':
print("=======================IQ智力測(cè)試(限時(shí)版)=======================")
print("-" * 55)
print("說(shuō)明: 測(cè)試時(shí)間: 30分鐘,測(cè)試題數(shù): 30")
now = datetime.datetime.now() # 獲取當(dāng)前時(shí)間
delay_time = datetime.timedelta(minutes=30)
stop_time = now + delay_time
print("測(cè)試結(jié)束時(shí)間為: ", stop_time.strftime("%Y-%m-%d %H:%M:%S"))
len_que = len(os.listdir("./que"))
score = 0 # 用來(lái)統(tǒng)計(jì)得分
msg = ["智商1級(jí): 白癡", "智商1級(jí): 白癡", "智商1級(jí): 白癡", "智商1級(jí): 白癡", "智商1級(jí): 白癡", "智商2級(jí): 智障",
"智商3級(jí): 智弱", "智商4級(jí): 臨界", "智商5級(jí): 凡人", "智商6級(jí): 聰慧", "智商7級(jí): 人才", "智商8級(jí): 精英",
"智商9級(jí): 天才", "智商9級(jí): 天才", "智商9級(jí): 天才", "智商9級(jí): 天才", "智商9級(jí): 天才",
"智商9級(jí): 天才", "智商9級(jí): 天才"]
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("請(qǐng)輸入正確答案前面的數(shù)字編號(hào): ").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("答題超時(shí),將結(jié)束測(cè)試!")
break
else:
print(f"剩余答題時(shí)間:{left}分鐘")
i += 1
print(f"你的IQ測(cè)試成績(jī)?yōu)? {score} {msg[int(score / 10)]}")
# 將成績(jī)和等級(jí)寫(xiě)入文件
with open("iq.txt", "a", encoding="utf8") as file:
file.write(str(score) + "," + msg[int(score / 10)].split(":")[1].strip() + "\n")
# 讀取文件中的測(cè)試成績(jī)及等級(jí)
score_list = [] # 用來(lái)存儲(chǔ)所有的成績(jī)
level_list = [] # 用來(lái)存儲(chǔ)所有的等級(jí)
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())
# 對(duì)成績(jī)進(jìn)行排序
score_list.sort(reverse=True)
print(f"目前您在所有測(cè)試的成績(jī)中排名第{score_list.index(score) + 1}名,"
f"超過(guò)了{(lán)len(score_list) - (score_list.index(score) + 1)}名選手")
print("智商測(cè)試分析圖: ")
for item in msg2:
print(item, int(level_list.count(item)) * chr(9632), level_list.count(item))四、效果展示
1)智商測(cè)試限時(shí)版本

?2)木子測(cè)試

到此這篇關(guān)于Python實(shí)戰(zhàn)之IQ測(cè)試系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python IQ測(cè)試系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
這篇文章主要介紹了Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例,以一個(gè)webpy站點(diǎn)在本機(jī)的兩個(gè)端口雙向通信下演示,需要的朋友可以參考下2016-06-06
python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例分享
這篇文章主要介紹了python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例,需要的朋友可以參考下2014-02-02
keras 實(shí)現(xiàn)輕量級(jí)網(wǎng)絡(luò)ShuffleNet教程
這篇文章主要介紹了keras 實(shí)現(xiàn)輕量級(jí)網(wǎng)絡(luò)ShuffleNet教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python圖形用戶界面與游戲開(kāi)發(fā)實(shí)例詳解
GUI是圖形用戶界面的縮寫(xiě),圖形化的用戶界面對(duì)使用過(guò)計(jì)算機(jī)的人來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Python圖形用戶界面與游戲開(kāi)發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
OpenCV+python手勢(shì)識(shí)別框架和實(shí)例講解
今天小編就為大家分享一篇OpenCV+python手勢(shì)識(shí)別框架和實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
快速進(jìn)修Python指南之面向?qū)ο蠡A(chǔ)
這篇文章主要為大家介紹了Java開(kāi)發(fā)者快速進(jìn)修Python指南之面向?qū)ο蠡A(chǔ),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

