当前位置: 首页 > news >正文

python实现职场反pua评估

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""

职场关系健康度评估工具(反职场PUA版)

基于五个维度、20个典型危险信号,帮助用户识别职场中的有毒关系。

"""

import sys

# 定义五个维度及其权重、问题列表

DIMENSIONS = [

{

"name": "恩情对等度",

"weight": 0.25,

"questions": [

"对方是否经常主动提起曾经请你吃过饭、送过小礼物或帮过小忙?",

"对方在物质或时间上的付出,是否远小于ta从你身上获得的利益?",

"当你拒绝对方某个要求时,对方是否指责你“忘恩负义”或“不懂感恩”?",

"对方是否常用“我对你那么好”作为理由,让你服从ta的意愿?"

]

},

{

"name": "责任归属",

"weight": 0.25,

"questions": [

"当你按正常流程请假或申请某事时,对方是否经常“忘记”处理,却反过来责怪你?",

"对方是否曾口头承诺某些待遇(如底薪、补贴、提成),事后单方面修改或不认账?",

"工作中出现问题时,对方是否总能找到理由把责任推到你身上?",

"对方是否从不承认自己有任何错误,永远表现得“正确”?"

]

},

{

"name": "边界尊重",

"weight": 0.20,

"questions": [

"离职或调岗后,对方是否依然频繁通过私人方式联系你(非必要公事)?",

"对方是否倾向于使用微信、个人手机等私人渠道沟通,而非公司官方渠道?",

"对方是否打听你的下一份工作去向或其他私人生活细节?",

"对方是否在非工作时间或非工作场所突然出现(如上门、蹲点等)?"

]

},

{

"name": "沟通方式",

"weight": 0.15,

"questions": [

"对方是否说过贬低你人格或否定你价值的话(例如“你在家也没事”)?",

"对方是否常用居高临下的姿态和你说话(例如“来领个东西”“给你个机会”)?",

"对方是否表现出对你的时间不尊重,认为你的时间可以随意占用?",

"对方沟通中是否经常出现命令式句式(“你应该”“你必须”“你不该”)?"

]

},

{

"name": "利益动机",

"weight": 0.15,

"questions": [

"对方是否通过“拉你入职/入伙”获得了直接的经济奖励(人头费、推荐奖等)?",

"对方是否鼓励你“全靠个人努力”而不提供必要的支持或资源?",

"对方的利益是否建立在让你付出更多金钱、时间或健康的基础上?",

"当你离开后,对方是否更在意“失去利益”而不是“失去你这个人”?"

]

}

]

# 神吐槽字典:根据最严重的维度(得分最低)输出一句梗

ROAST_TEXTS = {

"恩情对等度": "ta请你吃了四顿饭,你要用一辈子还。这高利贷比网贷狠。",

"责任归属": "在ta的世界里,地球不转都是你的错。",

"边界尊重": "ta以为你离职了还是ta的电子宠物。",

"沟通方式": "ta的沟通方式:贬低你、命令你、然后说你开不起玩笑。",

"利益动机": "你不是同事,你是ta的耗材+提款机。"

}

def ask_question(question_text):

"""向用户提问,返回 True 表示“是”,False 表示“否”"""

while True:

answer = input(f"{question_text} (y/n): ").strip().lower()

if answer in ('y', 'yes', '是', '1'):

return True

elif answer in ('n', 'no', '否', '0'):

return False

else:

print(" 请输入 y 或 n。")

def show_principles():

"""显示评估原理(可选)"""

print("\n" + "="*60)

print("【评估原理】")

print("本工具基于五个维度、20个典型危险信号。")

print("每个维度有4个问题,每个问题代表一个“有毒行为”。")

print("- 回答“是” → 命中1个危险信号 → 该维度扣25分")

print("- 回答“否” → 不扣分")

print("- 每个维度满分100分,最低0分。")

print("- 最终总分 = 各维度得分 × 权重之和。")

print("\n权重分配:")

print(" 恩情对等度 25% | 责任归属 25% | 边界尊重 20% | 沟通方式 15% | 利益动机 15%")

print("\n总分对应等级:")

print(" 80-100: 健康 | 60-79: 亚健康 | 40-59: 预警")

print(" 20-39: 高度有毒 | 0-19: 极度有毒")

print("="*60 + "\n")

def evaluate():

print("\n" + "="*60)

print("职场关系健康度评估工具(反职场PUA版)")

print("请根据您对**当前或最近一段职场关系**的真实感受,回答以下问题。")

print("每个问题回答 y (是) 或 n (否)。")

print("="*60 + "\n")

# 询问是否查看原理

see_principles = input("是否先查看评估原理?(y/n): ").strip().lower()

if see_principles in ('y', 'yes', '是', '1'):

show_principles()

dimension_scores = []

total_red_flags = 0

total_max_red = 0

detailed_results = [] # 存储每个维度的命中详情,用于最终输出

for dim in DIMENSIONS:

print(f"\n--- 【{dim['name']}】维度(权重{int(dim['weight']*100)}%) ---")

hits = 0

hit_details = []

for i, q in enumerate(dim['questions'], start=1):

print(f" {i}. {q}")

if ask_question(" → "):

hits += 1

hit_details.append(q)

else:

pass

# 计算维度得分(满分100,每个危险信号扣25分)

dim_score = max(0, 100 - hits * 25)

dimension_scores.append({

"name": dim['name'],

"raw_score": dim_score,

"weighted_score": dim_score * dim['weight'],

"hits": hits,

"hit_details": hit_details

})

total_red_flags += hits

total_max_red += len(dim['questions'])

# 计算总分

total_weighted_score = sum(d["weighted_score"] for d in dimension_scores)

total_score = total_weighted_score # 已经是加权总分

# 找出最严重的维度(原始得分最低,如果并列取第一个)

worst_dim = min(dimension_scores, key=lambda x: x['raw_score'])

worst_name = worst_dim['name']

roast = ROAST_TEXTS.get(worst_name, "这段关系有点迷,建议你多留个心眼。")

# 确定等级和建议

if total_score >= 80:

grade = "健康"

color = "🟢"

advice = "关系整体良好,继续保持健康的边界和沟通。"

elif total_score >= 60:

grade = "亚健康"

color = "🟡"

advice = "关系中存在一些危险信号,建议留意并尝试沟通改善。"

elif total_score >= 40:

grade = "预警"

color = "🟠"

advice = "已检测到多个危险信号,需要提高警惕,考虑减少接触或寻求外部意见。"

elif total_score >= 20:

grade = "高度有毒"

color = "🔴"

advice = "这段关系对你伤害较大,强烈建议减少私人接触,必要时走官方渠道(报警、投诉、法律途径)。"

else:

grade = "极度有毒"

color = "⚫"

advice = "立即物理隔离!拒绝私下沟通,只通过可留痕的官方渠道联系。优先保护自己的人身和心理安全。"

# 输出报告

print("\n" + "="*60)

print("【评估报告】")

print("="*60)

for d in dimension_scores:

print(f"\n{d['name']}: 得分 {d['raw_score']:.0f} / 100 (命中 {d['hits']} 个危险信号)")

if d['hit_details']:

print(" 命中的问题:")

for detail in d['hit_details']:

print(f" • {detail}")

print(f"\n{'='*40}")

print(f"总分: {total_score:.1f} / 100")

print(f"健康等级: {color} {grade}")

# 神吐槽(仅当分数低于80时显示,否则显示一句轻松的话)

if total_score < 80:

print(f"\n💬 神吐槽:{roast}")

else:

print("\n💬 神吐槽:恭喜,你遇到的是正常人。继续保持。")

print(f"\n建议: {advice}")

print("="*60)

# 提醒用户保存结果

save = input("\n是否将报告保存为文本文件?(y/n): ").strip().lower()

if save in ('y', 'yes', '是', '1'):

filename = "workplace_health_report.txt"

with open(filename, "w", encoding="utf-8") as f:

f.write("职场关系健康度评估报告\n")

f.write("="*60 + "\n")

for d in dimension_scores:

f.write(f"\n{d['name']}: {d['raw_score']:.0f}/100 (命中{d['hits']}个)\n")

if d['hit_details']:

f.write(" 问题:\n")

for detail in d['hit_details']:

f.write(f" - {detail}\n")

f.write(f"\n总分: {total_score:.1f}/100\n")

f.write(f"等级: {grade}\n")

if total_score < 80:

f.write(f"吐槽: {roast}\n")

f.write(f"建议: {advice}\n")

print(f"报告已保存为 {filename}")

else:

print("报告未保存。")

if __name__ == "__main__":

evaluate()

print("\n感谢使用。愿每个人都能拥有尊重、健康的职场环境。")

http://www.rkmt.cn/news/1497854.html

相关文章:

  • 医药GMP车间地坪如何满足洁净度要求?水性聚氨酯无缝地坪方案——港珠澳大桥人工岛地坪施工商 - 热点速览
  • 2026年6月10日重庆黄金铂金K金钻石回收实测排行榜:五家正规门店实力对比 - 资讯速览
  • 16.3分别总结langchain 和langgraph 之间的区别
  • 加油卡闲置怎么处理?安全回收的完整指南 - 团团收购物卡回收
  • 天津回收黄金门店实力榜单,靠谱变现首选禹竞名奢汇 - 名奢变现站
  • 中服云数字孪生平台:让工业物理世界与虚拟空间实时对话
  • 第一性原理:时间本质和空间本质
  • Hermes 网关四层权限控制方案:让 AI Agent 安全地查数据库
  • 废气处理塔制作选材对比|pp板材与PPH板材搭建洗涤塔优劣全面分析 - 苏一塑业13914572689
  • 企业宣传片拍摄制作服务商选择全解析:为什么需要宣传片,以及如何选对专业服务商
  • 2026南京专业废品回收,你的闲置资源这样变废为宝 - 资讯速览
  • 合肥市包河区 房屋修缮|维小达 墙面维修、瓷砖维修、门窗维修、吊顶维修、石材修复全屋一站式服务 - 维小达科技
  • 护发精油品牌测评:暨护发精油推荐的6款产品 - 资讯纵览
  • GTC泽汇:“芯片反弹提振风险偏好”
  • 2026年泰州别墅设计公司|泰州大平层设计公司排行推荐! - 奔跑123
  • 【ROS 2 全栈入门指南一】:从本质认知到环境搭建与核心原理解析
  • i.MX 6UltraLite接口时序详解:从GPMI到QSPI的实战配置与调试
  • 雷达水位计选型指南:原理、型号、优势与行业应用 - 仪表人老张
  • 山西工程铝单板
  • 2026年6月10日六盘水黄金铂金 K 金钻石回收 TOP5 榜单 正规门店实测种草 - 资讯速览
  • 2026 营口厨卫屋面地下室漏水瓷砖空鼓测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 2026 Django+Llama 4 AI应用实战 | 第 5 讲:AI 的灵感大脑——Django 集成 RAG(检索增强生成)与文档向量化
  • i.MX 6处理器Boot模式硬件配置详解与避坑指南
  • 2026小程序开发公司哪家强?优选十家优质的小程序制作公司
  • 徐州职称评审代评机构专业度排行 从业者实测盘点 - 奔跑123
  • 2026年正规海外打工机构排行:资质与服务实力实测对比 - 奔跑123
  • 创业少踩管理坑,管家婆创业版帮你把账算明白!免费进销存软件、功能齐全、适合中小企业!
  • 2026年横评10款降AIGC网站:帮你锁定真正好用靠谱的一款
  • 徐州职称评审代评机构专业度排行:实地评测解读 - 奔跑123
  • 第五节:MCP Servers——AI 的“万能插座”