当前位置: 首页 > 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.jsqmd.com/news/986106/

相关文章:

  • Gartner发布创新洞察:AI SOC智能体加速通信运营商安全运营转型
  • 2026南京黄金回收典当行真划算?8家渠道硬核对比,收益差距公开 - 商业快讯早知道
  • 郑州家电维修平台推荐:本地用户反馈较多的几家服务商(2026最新发布) - 欧米到家
  • 终极指南:如何免费解锁Steam游戏成就的完整解决方案
  • 郑州婚纱照哪家好?2026深度解析行业趋势与优质机构选择指南 - 品牌评测官
  • 安徽初三没考上高中怎么办?还有什么学校可以上? - 我叫小周
  • 16.3分别总结langchain 和langgraph 之间的区别
  • Applite:三步告别命令行,用免费图形界面轻松管理Mac软件
  • 中医无需神化,也无需黑化——AI时代的理性态度
  • 机器人DSP如何精准选型:三大痛点下的国产芯片实力排名
  • 2026上海GEO服务商测评:五家机构技术路径与选择指南 - 热点速览
  • 靠谱的昆明汽车维修机构 - 英特菲斯
  • Keyboard Chatter Blocker:拯救机械键盘的终极防抖方案
  • 南京家电维修平台推荐:本地用户反馈较多的几家服务商(2026最新发布) - 欧米到家
  • 加油卡闲置怎么处理?安全回收的完整指南 - 团团收购物卡回收
  • 天津回收黄金门店实力榜单,靠谱变现首选禹竞名奢汇 - 名奢变现站
  • AI 驱动的组件测试生成:从 DOM 快照到智能断言的工程实践
  • 巴斯夫地坪施工与材料代理一站式服务:为什么选择只做一家的施工商?——港珠澳大桥人工岛地坪施工商 - 热点速览
  • Steam成就管理终极指南:3分钟掌握免费成就解锁与重置技巧
  • 孔板流量计产品深度解读:从基础原理到进阶应用 - 仪表人叶工
  • i.MX 6SoloX电源与I/O设计实战:从LDO、GPIO到DDR的电气特性深度解析
  • 六月,全国开票编码全面升级后,以下六种发票将被拒收
  • 2026年自动化码垛包装设备选购指南:立柱码垛机、码垛机械手、纸箱码垛、非标码垛设备厂家选择指南,产能、工艺、品控三维度客观解析 - 海棠依旧大
  • 2026最新GEO排名优化监控测评:主流GEO平台功能解析与效果验证 - 新闻快传
  • 中服云数字孪生平台:让工业物理世界与虚拟空间实时对话
  • 2026年,西安未央附近专业代理记账品牌大揭秘,诚信之选究竟是谁?
  • 一键生成专属外网链接,这才是最适合小白的内网穿透神器
  • 2026 浙江工厂厂区景观设计施工优质企业排行榜 杭州美村美户凭实力成为首选 - 玖叁鹿
  • Hermes 网关四层权限控制方案:让 AI Agent 安全地查数据库
  • 29、【python】信息管理系统