第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 如何利用Python对自己的IQ智商判断及测试!太真实了呀!

如何利用Python对自己的IQ智商判断及测试!太真实了呀!

时间:2021-09-03 03:06:14

相关推荐

如何利用Python对自己的IQ智商判断及测试!太真实了呀!

1. IQ智商判断

智商,即智力商数(Intelligence Quotient),是衡量个人智力高低的标准。智商主要反映人的认知能力、思维能力、语言能力、观察能力、计算能力、律动能力等。也就是说,它主要表现人的理性的能力。智商可以通过一系列的标准测试测量人在其年龄段的智力发展水平,如表1所示,为9级智商评测表格。请编写一个程序,根据提供的9级智商评测表格和用户输入的智商分数,输出对应的智商等级和类别,运行效果如图1、图2所示。

示例代码如下:

iq_score = int(input("请输入你的IQ分数: ").strip()) # 录入数据if iq_score >= 140: # 判断print(f"您的IQ分数为: {iq_score},智商9级: 天才")elif 120 <= iq_score < 140:print(f"您的IQ分数为: {iq_score},智商8级: 精英")elif 110 <= iq_score < 120:print(f"您的IQ分数为: {iq_score},智商7级: 人才")elif 90 <= iq_score < 110:print(f"您的IQ分数为: {iq_score},智商6级: 聪慧")elif 80 <= iq_score < 90:print(f"您的IQ分数为: {iq_score},智商5级: 凡人")elif 70 <= iq_score < 80:print(f"您的IQ分数为: {iq_score},智商4级: 临界")elif 60 <= iq_score < 70:print(f"您的IQ分数为: {iq_score},智商3级: 智弱")elif 50 <= iq_score < 60:print(f"您的IQ分数为: {iq_score},智商2级: 智障")else:print(f"您的IQ分数为: {iq_score},智商1级: 白痴")

2. 2行代码进行IQ智商判断

只用两行代码,根据用户输入的IQ智商分数与表1的9级智商评测表进行匹配,并输出IQ智商类别。运行效果如图1、图2所示。

示例代码如下:

level_list = ["白痴", "白痴", "白痴", "白痴", "白痴", "智障", "智弱", "临界","凡人", "聪慧", "聪慧", "人才", "精英", "天才", "天才", "天才", "天才", "天才", "天才", "天才"]print(level_list[int(int(input("请输入你的IQ分数(在0-190范围输入): ").strip()) / 10)])

3. IQ智商测试

请编写一个程序,根据本例提供的30道智商测试题来测试智商,每题回答正确加6分,回答错误不记分,完成本次测试,程序输出智商分数。运行效果如下图1、图2所示。因为30道题目控制台输出太长,所以就截取了开头和结尾,省略了中间的答题。

这篇博文所用到的的文件资源网盘如下:

源码地址

示例代码如下:

import osdef read_file(path, file_name):"""读取文件函数:param path: 路径:param file_name: 文件名称:return: 文件内容"""# 这里的/ 也可以换成\\with open(path + "/" + file_name, "r", encoding="utf8") as file:content = file.read() # 因为文件内容比较少 所以直接使用read方法一次性全部读取return contentif __name__ == '__main__':print("=======================IQ智力测试=======================")print("-" * 55)len_que = len(os.listdir("./que"))score = 0 # 用来统计得分# 30道题 每次循环读取一道题 但是如果增加到了40道题# 是不是for循环又要改了 所以最好是动态获取文件夹中的文件个数for i in range(1, len_que + 1):# 读取文件 因为读取文件会在后续频繁使用到 所以封装为函数print(f"\n第 {i} 题: \n" + read_file("./que", "que" + str(i) + ".txt"))# 用户输入答案user_ans = input("请输入正确答案前面的数字编号: ").strip()# 读取正确答案right_ans = read_file("./ans", "ans" + str(i) + ".txt").strip()if user_ans == right_ans: # 判断用户输入答案与正确一致score += 6 # 答案一致加6分print(f"你的IQ测试成绩为: {score}")

4. IQ智商测试与判断(顺序版)

完善上面的IQ智商测试程序,根据IQ智商测试分数和表1的9级智商评测表输出答题者的智商等级和所属类别。运行结果如图所示。

示例代码如下:

import osdef read_file(path, file_name):"""读取文件函数:param path: 路径:param file_name: 文件名称:return: 文件内容"""# 这里的/ 也可以换成\\with open(path + "/" + file_name, "r", encoding="utf8") as file:content = file.read() # 因为文件内容比较少 所以直接使用read方法一次性全部读取return contentif __name__ == '__main__':print("=======================IQ智力测试=======================")print("-" * 55)len_que = len(os.listdir("./que"))score = 0 # 用来统计得分msg = ["智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商2级: 智障","智商3级: 智弱", "智商4级: 临界", "智商5级: 凡人", "智商6级: 聪慧", "智商7级: 人才", "智商8级: 精英","智商9级: 天才", "智商9级: 天才", "智商9级: 天才", "智商9级: 天才", "智商9级: 天才","智商9级: 天才", "智商9级: 天才"]# 30道题 每次循环读取一道题 但是如果增加到了40道题# 是不是for循环又要改了 所以最好是动态获取文件夹中的文件个数for i in range(1, len_que + 1):# 读取文件 因为读取文件会在后续频繁使用到 所以封装为函数print(f"\n第 {i} 题: \n" + read_file("./que", "que" + str(i) + ".txt"))# 用户输入答案user_ans = input("请输入正确答案前面的数字编号: ").strip()# 读取正确答案right_ans = read_file("./ans", "ans" + str(i) + ".txt").strip()if user_ans == right_ans: # 判断用户输入答案与正确一致score += 6 # 答案一致加6分print(f"你的IQ测试成绩为: {score} {msg[int(score / 10)]}")

5. IQ智商测试与判断(乱序版)

上面的IQ智商测试程序是按照题目的正常顺序出题的,修改程序,随机抽取题目进行测试,然后根据IQ智商测试分数和表1的9级智商评测表输出答题者的智商等级和所属类别。

运行效果如下面的gif图:

示例代码如下:

import osimport randomdef read_file(path, file_name):"""读取文件函数:param path: 路径:param file_name: 文件名称:return: 文件内容"""# 这里的/ 也可以换成\\with open(path + "/" + file_name, "r", encoding="utf8") as file:content = file.read() # 因为文件内容比较少 所以直接使用read方法一次性全部读取return contentif __name__ == '__main__':print("=======================IQ智力测试=======================")print("-" * 55)len_que = len(os.listdir("./que"))score = 0 # 用来统计得分msg = ["智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商1级: 白痴", "智商2级: 智障","智商3级: 智弱", "智商4级: 临界", "智商5级: 凡人", "智商6级: 聪慧", "智商7级: 人才", "智商8级: 精英","智商9级: 天才", "智商9级: 天才", "智商9级: 天才", "智商9级: 天才", "智商9级: 天才","智商9级: 天才", "智商9级: 天才"]num_list = list(range(1, len_que + 1))i = 1while 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("请输入正确答案前面的数字编号: ").strip()# 读取正确答案right_ans = read_file("./ans", "ans" + str(num) + ".txt").strip()if user_ans == right_ans: # 判断用户输入答案与正确一致score += 6 # 答案一致加6分i += 1print(f"你的IQ测试成绩为: {score} {msg[int(score / 10)]}")

6. IQ智商测试与判断(分析版)

修改上面的程序,在对用户进行智商测试时并将测试成绩记录下来,记录文件为源文件同路径的iq.txt文件。记录测试成绩和智商级别(如天才、精英等),结合表1并分析测试者成绩在所有测试成绩中的排名与位置,并分析各级智商的分布情况,运行效果如图所示。

示例代码如下:

import osimport randomdef read_file(path, file_name):"""读取文件函数:param path: 路径:param file_name: 文件名称:return: 文件内容"""# 这里的/ 也可以换成\\with open(path + "/" + file_name, "r", encoding="utf8") as file:content = file.read() # 因为文件内容比较少 所以直接使用read方法一次性全部读取return contentif __name__ == '__main__':print("=======================IQ智力测试=======================")print("-" * 55)len_que = len(os.listdir("./que"))score = 0 # 用来统计得分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 = 1while 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("请输入正确答案前面的数字编号: ").strip()# 读取正确答案right_ans = read_file("./ans", "ans" + str(num) + ".txt").strip()if user_ans == right_ans: # 判断用户输入答案与正确一致score += 6 # 答案一致加6分i += 1print(f"你的IQ测试成绩为: {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="utf8") as file:while True:line_content = file.readline().strip()if line_content == "":breakelse: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))

7. IQ智商测试与判断(限时版)

一般的考试都有时间限制,如高考数学、语文的考试时间为2个小时。为IQ智商测试添加限时测试功能,要求测试者必须在30分钟内答题完成测试,每答完一道题输出相应剩余时间,如图1所示。如果答题超时将结束测试,输出当前的测试成绩、IQ级别及测试者在所有测试者中的成绩排名和IQ各级智商的分析图表,程序运行效果如图2所示。

示例代码如下:

import osimport randomimport datetimedef read_file(path, file_name):"""读取文件函数:param path: 路径:param file_name: 文件名称:return: 文件内容"""# 这里的/ 也可以换成\\with open(path + "/" + file_name, "r", encoding="utf8") as file:content = file.read() # 因为文件内容比较少 所以直接使用read方法一次性全部读取return contentif __name__ == '__main__':print("=======================IQ智力测试(限时版)=======================")print("-" * 55)print("说明: 测试时间: 30分钟,测试题数: 30")now = datetime.datetime.now() # 获取当前时间delay_time = datetime.timedelta(minutes=30)stop_time = now + delay_timeprint("测试结束时间为: ", stop_time.strftime("%Y-%m-%d %H:%M:%S"))len_que = len(os.listdir("./que"))score = 0 # 用来统计得分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 = 1while 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("请输入正确答案前面的数字编号: ").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("答题超时,将结束测试!")breakelse:print(f"剩余答题时间:{left}分钟")i += 1print(f"你的IQ测试成绩为: {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="utf8") as file:while True:line_content = file.readline().strip()if line_content == "":breakelse: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))

此文转载文,著作权归作者所有,如有侵权联系小编删除!

原文:/xw1680/article/details/105644287

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。