代码中用中文命名很棒啊

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(生成文章())
5373 次点击
所在节点    问与答
44 条回复
miaomiao888
2019-11-14 11:28:53 +08:00
E 语言:听说有人在夸我
helionzzz
2019-11-14 11:34:12 +08:00
中英文和全半角符号切换不累么。。
coderluan
2019-11-14 11:34:27 +08:00
虽然本人从没用中文命名过变量,但是觉得很棒。

要不楼主先用用试试再说,毕竟看和写是两回事。
misaka19000
2019-11-14 11:35:44 +08:00
我觉得不行
hkitdog
2019-11-14 12:02:36 +08:00
那为什么不用易话言,Python 和 C 的库全都可以直连调用
hkitdog
2019-11-14 12:02:52 +08:00
总页数 = 431
' 标准输出 (1, “开始页数:”)
' 当前页 = 标准输入 ()
' i = 到整数 (当前页)
.计次循环首 (总页数, i)
写到文件 (取运行目录 () + “/confuig.ini”, 到字节集 (“当前页:” + 到文本 (i)))
源代码 = 网页_访问 S (“http://www.okzy.me/?m=vod-index-pg-” + 到文本 (i) + “.html”, 0, , , )
文本_取中间_批量 (源代码, #目的地址 1, #目的地址 2, 目的地址, , , )
.计次循环首 (取数组成员数 (目的地址), j)
详细页地址 = 网页_访问 S (“http://www.okzy.me” + 目的地址 [j], 0, , , )
' 调试输出 (详细页地址)
标题 = 文本_取出中间文本 (详细页地址, #标题 1, #标题 2, , )

导演 = 文本_取出中间文本 (详细页地址, #导演 1, #导演 2, , )

主要演员 = 文本_取出中间文本 (详细页地址, #主演 1, #主演 2, )

类型 = 文本_取出中间文本 (详细页地址, #类型 1, #类型 2, )

地区 = 文本_取出中间文本 (详细页地址, #地区 1, #地区 2, )

剧情介绍 = 文本_取出中间文本 (详细页地址, #剧情介绍 1, #剧情介绍 2, )

' 播放链接 = 文本_取出中间文本 (详细页地址, #影片地址 1, #影片地址 2, )
封面地址 = 文本_取出中间文本 (详细页地址, #封面 1, #封面 2, )
调试输出 (文本_取出中间文本 (详细页地址, #KuyunBox1, #KuyumBox2, ))
文本_取中间_批量 (文本_取出中间文本 (详细页地址, #KuyunBox1, #KuyumBox2, ), #影片地址 1, #影片地址 2, 播放链接, )
播放链接汇总 = “”
.计次循环首 (取数组成员数 (播放链接), k)
播放链接汇总 = 播放链接汇总 + “<a href=” + 播放链接 [k] + “>” + 播放链接 [k] + “</a> <br />”
' 调试输出 (“名称:” + 标题 + “链接:” + 播放链接 [k])
.计次循环尾 ()





标准输出 (1, #换行符 + “电影名称:” + 标题 + #换行符 + “导演:” + 导演 + #换行符 + “主要演员:” + 主要演员 + #换行符 + “类型:” + 类型 + “地区:” + 地区 + #换行符 + “剧情介绍:” + 封面地址 + #换行符 + #换行符)




调试输出 (标题)
调试输出 (导演)
调试输出 (主要演员)
调试输出 (类型)
调试输出 (地区)
调试输出 (剧情介绍)
调试输出 (封面地址)
调试输出 (播放链接汇总)
i = i + 1
.计次循环尾 ()


.计次循环尾 ()
wysnylc
2019-11-14 12:16:55 +08:00
其实我觉得中文化数学也有搞头!
szyp
2019-11-14 12:35:04 +08:00
@coderluan 哈哈 敲一个中文变量和一个英文变量手指的差别可不小
gabon
2019-11-14 13:17:37 +08:00
看瞎了。。
ddup
2019-11-14 13:27:41 +08:00
@coderluan #3 我知道写起来肯定不方便,而且智能提示也不方便,不能打几个字母就出现智能提示,只是看起来很棒。
love
2019-11-14 13:46:22 +08:00
只能说明你英文太差
建议把 PC 和手机的系统全搞成英文找找感觉,回头就会发现这程序有多尬
glaucus
2019-11-14 13:47:46 +08:00
看起来也并不棒,要么全中文,我这种喜欢在心理读代码的看到这种中英混杂的就跟听到某些人中英混杂和我交流一样难受
NjcyNzMzNDQ3
2019-11-14 13:53:24 +08:00
汉语写代码,遇到方言岂不是很有趣

if(磨叽){
sleep(ture);
}

if(贼多 >= 贼少){
return true;
}

if(不着调){
return "没正经的";
}

if(你瞅啥){
echo "瞅你咋的";
}
geelaw
2019-11-14 14:07:12 +08:00
足以见得 V2EX 自作聪明加空格的算法是多么不小心。由于这个算法,“读 JSON 文件”中间被加了空格,因此失去了作为标识符的资格。
mokeyjay
2019-11-14 14:10:45 +08:00
@ddup #10 拼音首字母了解一下
joiejia
2019-11-14 14:46:53 +08:00
第一次看懂代码(
bk201
2019-11-14 14:49:06 +08:00
看的累,语言容易歧义
linxl
2019-11-14 14:51:33 +08:00
王的富尔
ddup
2019-11-14 15:25:11 +08:00
@mokeyjay 拼音首字母绝对不行😰
ddup
2019-11-14 15:27:18 +08:00
@geelaw 原来 V2 还会给英文中文间自动加空格

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

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

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

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

© 2021 V2EX