代码中用中文命名很棒啊

2019-11-14 10:27:17 +08:00
 ddup

上次一个专有名次不知如何取名,中文变量命名的帖子,这次这个,来自“狗屁不通文章生成器”,全程中文,看代码像有像是领导在像手下发话,脑海里面自动出现语音版本,或者用语音控制计算机的感受。

面向声音编程。

虽然本人从没用中文命名过变量,但是觉得很棒。

https://github.com/menzi11/BullshitGenerator

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, re
import random,readJSON

data = readJSON.读 JSON 文件("data.json")
名人名言 = data["famous"] # a 代表前面垫话,b 代表后面垫话
前面垫话 = data["before"] # 在名人名言前面弄点废话
后面垫话 = data['after']  # 在名人名言后面弄点废话
废话 = data['bosh'] # 代表文章主要废话来源

xx = "学生会退会"

重复度 = 2

def 洗牌遍历(列表):
    global 重复度
    池 = list(列表) * 重复度
    while True:
        random.shuffle(池)
        for 元素 in 池:
            yield 元素

下一句废话 = 洗牌遍历(废话)
下一句名人名言 = 洗牌遍历(名人名言)

def 来点名人名言():
    global 下一句名人名言
    xx = next(下一句名人名言)
    xx = xx.replace(  "a",random.choice(前面垫话) )
    xx = xx.replace(  "b",random.choice(后面垫话) )
    return xx

def 另起一段():
    xx = ". "
    xx += "\r\n"
    xx += "    "
    return xx

if __name__ == "__main__":
    xx = input("请输入文章主题:")
    for x in xx:
        tmp = str()
        while ( len(tmp) < 6000 ) :
            分支 = random.randint(0,100)
            if 分支 < 5:
                tmp += 另起一段()
            elif 分支 < 20 :
                tmp += 来点名人名言()
            else:
                tmp += next(下一句废话)
        tmp = tmp.replace("x",xx)
        print(tmp)

let 后面垫话 = [
    "这不禁令我深思。 ",
    "带着这句话,我们还要更加慎重的审视这个问题: ",
    "这启发了我, ",
    "我希望诸位也能好好地体会这句话。 ",
    "这句话语虽然很短,但令我浮想联翩。 ",
]

let 前面垫话 = [
    "曾经说过",
    "在不经意间这样说过",
]

function 随便取一句(列表){
    let 坐标 = Math.floor( Math.random() * 列表.length );
    return 列表[坐标];
}

function 随便取一个数(最小值 = 0,最大值 = 100){
    let 数字 = Math.random()*( 最大值 - 最小值 ) + 最小值;
    return 数字;
}

function 来点名人名言(){
    let 名言 = 随便取一句(名人名言)
    名言 = 名言.replace("曾经说过", 随便取一句(前面垫话) )
    名言 = 名言.replace("这不禁令我深思", 随便取一句(后面垫话) )
    return 名言
}

function 来点论述(){
    let 句子 = 随便取一句(论述);
    句子 = 句子.replace(RegExp("主题", "g"),主题);
    return 句子;
}

function 增加段落(章节){
    if(章节[章节.length-1] === " "){
        章节 = 章节.slice(0,-2)
    }
    return "  " + 章节 + "。 "
}

function 生成文章(){
    let 文章 = []
    for(let 空 in 主题){
        let 章节 = "";
        let 章节长度 = 0;
        while( 章节长度 < 6000 ){
            let 随机数 = 随便取一个数();
            if(随机数 < 5 && 章节.length > 200){
                章节 = 增加段落(章节);
                文章.push(章节); 
                章节 = "";
            }else if(随机数 < 20){
                let 句子 = 来点名人名言();
                章节长度 = 章节长度 + 句子.length;
                章节 = 章节 + 句子;
            }else{
                let 句子 = 来点论述();
                章节长度 = 章节长度 + 句子.length;
                章节 = 章节 + 句子;
            }
        }
        章节 = 增加段落(章节);
        文章.push(章节);
    }
    return 文章.join("\n");
}

console.log(生成文章())
5407 次点击
所在节点    问与答
44 条回复
ywjdlq
2019-11-15 08:58:45 +08:00
突然就看不懂了
CodeEncryption
2019-11-15 15:40:52 +08:00
如果符号也能全角,不用切换全半角我想我会尝试的
xuanwu
2019-12-01 13:10:45 +08:00
更多中文命名标识符的开源项目: https://github.com/program-in-chinese/overview#%E7%BB%84%E5%86%85%E6%B4%BB%E8%B7%83%E9%A1%B9%E7%9B%AE
Java, Python,C++,TS 等等
Mindjet
2020-08-03 19:53:03 +08:00
挺有意思的,不过生态可能不怎么好,比如,如果这个项目是与别人合作的或者开源的,看到你用的中文,很多人都吓退了。如果有一天,美国小学中文是必修的,也许会可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619420

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX