上次一个专有名次不知如何取名,中文变量命名的帖子,这次这个,来自“狗屁不通文章生成器”,全程中文,看代码像有像是领导在像手下发话,脑海里面自动出现语音版本,或者用语音控制计算机的感受。
面向声音编程。
虽然本人从没用中文命名过变量,但是觉得很棒。
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(生成文章())
1
miaomiao888 2019-11-14 11:28:53 +08:00
E 语言:听说有人在夸我
|
2
helionzzz 2019-11-14 11:34:12 +08:00 3
中英文和全半角符号切换不累么。。
|
3
coderluan 2019-11-14 11:34:27 +08:00 1
虽然本人从没用中文命名过变量,但是觉得很棒。
要不楼主先用用试试再说,毕竟看和写是两回事。 |
4
misaka19000 2019-11-14 11:35:44 +08:00
我觉得不行
|
5
hkitdog 2019-11-14 12:02:36 +08:00 via iPhone
那为什么不用易话言,Python 和 C 的库全都可以直连调用
|
6
hkitdog 2019-11-14 12:02:52 +08:00 via iPhone
总页数 = 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 .计次循环尾 () .计次循环尾 () |
7
wysnylc 2019-11-14 12:16:55 +08:00 3
其实我觉得中文化数学也有搞头!
|
9
gabon 2019-11-14 13:17:37 +08:00 via Android
看瞎了。。
|
11
love 2019-11-14 13:46:22 +08:00
只能说明你英文太差
建议把 PC 和手机的系统全搞成英文找找感觉,回头就会发现这程序有多尬 |
12
glaucus 2019-11-14 13:47:46 +08:00
看起来也并不棒,要么全中文,我这种喜欢在心理读代码的看到这种中英混杂的就跟听到某些人中英混杂和我交流一样难受
|
13
NjcyNzMzNDQ3 2019-11-14 13:53:24 +08:00 2
汉语写代码,遇到方言岂不是很有趣
if(磨叽){ sleep(ture); } if(贼多 >= 贼少){ return true; } if(不着调){ return "没正经的"; } if(你瞅啥){ echo "瞅你咋的"; } |
14
geelaw 2019-11-14 14:07:12 +08:00 via iPhone
足以见得 V2EX 自作聪明加空格的算法是多么不小心。由于这个算法,“读 JSON 文件”中间被加了空格,因此失去了作为标识符的资格。
|
16
joiejia 2019-11-14 14:46:53 +08:00
第一次看懂代码(
|
17
bk201 2019-11-14 14:49:06 +08:00
看的累,语言容易歧义
|
18
linxl 2019-11-14 14:51:33 +08:00
王的富尔
|
21
saltedFish666 2019-11-14 15:32:12 +08:00
看得我好尬
|
22
ungrown 2019-11-14 16:57:53 +08:00 via Android
本来就是个好方法,有时候直接用中文命名是最直观最准确的方法,没有之一!
至于你说的缺点,输入不方便,这我就要批评你缺心眼了:你在中文外面加上简短的英文前缀,不就可以在英文输入状态下自动补全了吗? |
23
LancerEvo 2019-11-14 17:24:25 +08:00
我是中国人 但我碰到有中文注释的代码的时候从来不看
|
24
HolmLoh 2019-11-14 17:51:15 +08:00
看起来很爽,爽完记得改回去
|
25
ares586 2019-11-14 17:59:03 +08:00 2
我觉得并不尬啊,蛮好玩的。如果是自己写一写脚本,反而不用加注释了。。。
|
26
wolfan 2019-11-14 18:06:12 +08:00
分明就是想省去写注释的活~
|
28
TomatoYuyuko 2019-11-14 18:07:34 +08:00
的确 最麻烦的是输入法来回切换,浪费很多时间
|
29
raffaellolin 2019-11-14 18:25:38 +08:00 via Android
可以,但是没必要
|
30
KeyboardManAnAn 2019-11-14 19:17:24 +08:00
很棒,是时候掀起一波中文编程的革命了🐶🐶🐶
|
31
ipwx 2019-11-14 19:19:49 +08:00
有些场景下面用中文变量,我拍手称赞。因为那是最恰当的方案。
楼主这个场景吗,呕…… |
32
orzorzorzorz 2019-11-14 19:24:05 +08:00 1
中文变量一般都是用在相当专业的名词里面的,比如“年后出入库计划表”这种很难翻成英文的。对于能翻、翻完意思确定、而且大家都是这么翻的名词,用中文就会有内味儿了。
其他实例用的变量姑且不表,但最大值最小值这些都是有惯有翻译的。 |
33
gwybiaim 2019-11-14 19:34:32 +08:00
@TomatoYuyuko 输入法支持标点符号始终半角的
|
34
zunceng 2019-11-14 19:42:06 +08:00
看和写是两回事 注释写中文都不习惯 懒得切输入法
|
35
YenvY 2019-11-14 20:03:39 +08:00 1
切换输入法那点时间你们都心疼?真的假的
|
36
ytmsdy 2019-11-14 20:51:27 +08:00 via iPhone
我觉得我会被中英文切换搞奔溃的!
|
38
hyy1995 2019-11-14 21:05:39 +08:00
我看哭了。。。真没必要
|
39
cmdOptionKana 2019-11-14 21:31:45 +08:00 7
本来中国人用中文变量是好处远大于坏处的,但是,偏见是可怕的,比如有人说:
“中英文和全半角符号切换不累么” ... 偏见, 输入法本来就可以设置一直半角 “我觉得不行” ... 严重偏见, 连莫须有的罪名都懒得加了 “敲一个中文变量和一个英文变量手指的差别可不小” ... 偏见, 事实上配合中文输入法的自动自造词功能, 中文变量也很方便输入 “看得我好尬” ... 偏见, 尬的唯一原因只能是偏见了, 不然为啥尬呢 “我是中国人 但我碰到有中文注释的代码的时候从来不看” ... 偏见, 中文注释招谁惹谁了? “最麻烦的是输入法来回切换,浪费很多时间” ... 偏见, 敲字的时间本来就不重要 (要说有问题, 其实是注意输入法状态的心理负担, 而不是时间) “可以,但是没必要” ... 偏见, 对于全英文的代码, 你会加上一句 "没有必要" 吗, 不会, 这种区别对待的唯一原因就是偏见 中文变量名是有它自己的问题, 但是, 在反对中文变量名的声音之中, 偏见的含量也实在高的惊人. |
40
zmqking 2019-11-15 08:14:41 +08:00 via iPhone 1
因为这个是主要是美帝发明的,我一直好奇,他们看代码是什么感觉,我现在感觉到了^_^。试想下如果这玩意儿是我们发明的,不就是这样的效果吗?
|
41
ywjdlq 2019-11-15 08:58:45 +08:00
突然就看不懂了
|
42
CodeEncryption 2019-11-15 15:40:52 +08:00
如果符号也能全角,不用切换全半角我想我会尝试的
|
43
xuanwu 2019-12-01 13:10:45 +08:00 1
更多中文命名标识符的开源项目: 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 等等 |
44
Mindjet 2020-08-03 19:53:03 +08:00
挺有意思的,不过生态可能不怎么好,比如,如果这个项目是与别人合作的或者开源的,看到你用的中文,很多人都吓退了。如果有一天,美国小学中文是必修的,也许会可以。
|