[今日头条首文] 中文编程: 已经十多年了! 你知道 Python3 可以用中文命名变量吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xuanwu
V2EX    分享创造

[今日头条首文] 中文编程: 已经十多年了! 你知道 Python3 可以用中文命名变量吗?

  •  
  •   xuanwu 2019-04-27 15:21:42 +08:00 6922 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。
    48 条回复    2019-05-14 11:41:47 +08:00
    plus743
        1
    plus743  
       2019-04-27 16:06:29 +08:00 via Android
    火星人
    sunocean
        2
    sunocean  
       2019-04-27 16:15:51 +08:00
    恭喜楼主村里通网.
    mmnsghgn
        3
    mmnsghgn  
       2019-04-27 17:05:11 +08:00
    导入 字符分隔值文件读写库

    类 字符分隔值文件处理:

    装饰为静态方法
    定义函数 读文件到数组(文件名)
    .......................
    azh7138m
        4
    azh7138m  
       2019-04-27 17:15:16 +08:00 via Android
    @plus743
    @sunocean
    头条这个文章就是楼主
    Yvette
        5
    Yvette  
       2019-04-27 17:34:39 +08:00 via iPhone
    楼主貌似对于跟中文编程有关的话题有着非一般的执着
    minamike
        6
    minamike  
       2019-04-27 18:14:43 +08:00
    楼主你这毅力和脸皮去卖房销售的话早就发财了呀
    还写什么代码(滑稽
    nfroot
        7
    nfroot      2019-04-27 18:39:19 +08:00 via Android
    @minamike 发财后无所事事还是会来 v2
    inframe
        8
    inframe  
       2019-04-27 18:52:35 +08:00 via Android
    什么,大清亡了?!
    noftscom
        9
    noftscom  
       2019-04-27 20:04:12 +08:00 via Android
    今日头条 VS 知乎?
    wozhihuipinyin
        10
    wozhihuipinyin  
       2019-04-27 21:33:18 +08:00 via Android
    为什么楼上的好像都在嘲笑楼主?
    nimrc
        11
    nimrc  
       2019-04-28 06:49:31 +08:00 via iPhone
    这有啥的 php 也可以
    xuanwu
        12
    xuanwu  
    OP
       2019-04-28 08:00:46 +08:00
    @nimrc 嗯, 一个个来: "在各种编程语言中使用中文命名" https://zhuanlan.zhihu.com/p/30886931
    Macolor21
        13
    Macolor21  
       2019-04-28 08:20:27 +08:00 via iPhone
    @nfroot 发了快一两年了,但是你觉得中文编程有必要吗?服务于不会英文的程序员?但是质量好的文档大部分都是英文的,中文的文档大多为 csdn 复制一遍别人博客或官方文档之流。
    Macolor21
        14
    Macolor21  
       2019-04-28 08:23:13 +08:00 via iPhone
    @wozhihuipinyin 天天扯这些编程语法上的东西,并不能改变什么,你要是写个 Linux,写个 java 这样的项目,用强制中文语法,能达到企业级应用的承载还有一部分的生态,那大家不得都用啊,那时中文编程还用推广吗?所以楼主这就是自嗨而已
    xuanwu
        15
    xuanwu  
    OP
       2019-04-28 08:28:27 +08:00
    @Macolor21 "编程语法"? 要扯也有点技术含量吧. 这篇讲的是啥你都没看(懂)就喷?
    pkm
        16
    pkm  
       2019-04-28 10:43:23 +08:00
    什么,大清又亡了?
    crazypig14
        17
    crazypig14  
       2019-04-28 11:41:01 +08:00
    这得有多白才能被糊弄
    xuanwu
        18
    xuanwu  
    OP
       2019-04-28 12:08:47 +08:00
    flyingfz
        19
    flyingfz  
       2019-04-28 12:15:42 +08:00
    用中文编程? 在写代码的时候, 切换输入法 , 好烦啊。
    dorothyREN
        20
    dorothyREN  
       2019-04-28 13:44:44 +08:00
    楼主怕是对中文编程有什么误解。满片就看见用中文定义变量了。。。。
    wupeaking
        21
    wupeaking  
       2019-04-28 17:47:58 +08:00
    这有啥的,有本事把关键字也改成中文我就服。
    nfroot
        22
    nfroot  
       2019-04-28 18:24:19 +08:00   1
    @Macolor21 这个学编程必先学英文,必看英文文档。。。这种想法我真的不是很理解。编程非要搞那么正式么?编程不就和啪啪啪一样每个人都能随随便便的玩么?

    我的意思是,每个人喜欢一样东西,都是极好的,它的门槛越低越好,就不用任何人去望而不得。。而且编程这玩意,除了专职的程序员,其他人普通人,明明简单的编码就能解决问题,非给他来一堆门槛,啊你必须先提升你的英文水平(如果你没有这能力,我不知道一个人要花多大精力才能达到流畅看英文文档的能力),你必须学这个那个那那个(可以参考一下近几年的前端技能树),耗费无数精力后,大部分人放弃最后毛都没学会。

    中文编程什么易语言,还有楼主的中文变量名系列……它可能作用不大,但是就是有它的作用好吧,只是对你没帮助,我举个例子,变量越写越多,浪费时间想英文如何简单命名的问题存在吗?还是说有一部分词已经向文言文发展了(只可意会不可言传)?

    唉,还是那句话,门槛低一些总是好的,这样每个人都可以多一些爱好,编程又不是健身,一个动作不规范,以后就是病根,亲人两行泪什么的。
    bao3
        23
    bao3  
       2019-04-28 19:31:08 +08:00 via iPhone   1
    对于我等门外汉,中文变量名真的是一大福音,感谢楼主
    xuanwu
        24
    xuanwu  
    OP
       2019-04-28 23:43:14 +08:00
    @wupeaking 服有啥用? 实现关键字汉化的已经有好几个项目. 但是, 连在成熟编程语言开发环境里用中文命名都没动力实践的话, 还指望你试那些?
    Macolor21
        25
    Macolor21  
       2019-04-29 07:33:55 +08:00 via iPhone   3
    @nfroot 我完全不同意你的观点。
    首先,编程得门槛已经很低了,虽然达不到上手就来,但是 txt 写几行,改后缀成脚本就已经算是程序的范畴了。足球的门槛也低啊,但是你不会的人上去闷一脚很大可能脚趾痛。啪啪啪你一上来就干,女的不得痛死?她说疼,轻点的时候,是不是引导是不是学习成本?

    其次,我个人十分厌恶随便玩玩的态度,爱好就可能随便玩玩么?你那比较爱好,叫三分钟热度,扎克伯格爱好编程写出了 facebook。我踢足球,我见过太多爱好足球的人,一点基本功都不练,上来就一顿操作,在我眼中,这些人玷污了本来就不多的足球场。真正爱好的人,愿意去花时间练基本功,查资料,和前辈学习,这些人才是真正为这个行业发展提供基石的人

    最后,现在大学生都已经如此泛滥了,你我都是受过高等教育的人,如果连编程这么简单的英语语法都不会,我这边建议这些人还是复读一下,国家也不会指望这些“人才”科教兴国。现在都 2019 年了,如果喜欢上手就来,可以穿越回山顶洞人那个年代。足球也用了 var 等技术了,规则也不断发展,这是因为人类的知识不断的发展。
    nfroot
        26
    nfroot  
       2019-04-29 11:18:20 +08:00   1
    @Macolor21 完全不同意我的观点没关系啊,你认为只有大学生水平才能编程,我觉得就算是小学生,只要有帮助它就可以被拿去用。说到底只是一个工具而已,用不好又不会出什么大事。

    所以既然我们观点如此鲜明,肯定是说服不了对方的,淡定哈哥们。
    J0G57faC6uPo75W0
        27
    J0G57faC6uPo75W0  
       2019-05-02 09:21:27 +08:00 via Android
    无语。。。
    nguoidiqua
        28
    nguoidiqua  
       2019-05-08 20:55:07 +08:00
    @nfroot

    编程的难易和是用汉字符合还是用英文符号毫无关系,九章算术是基于汉字符号的数学书,我想大家去看不见得数学就变好了。这种把编程语言汉字化就能更容易学习的观点和一百年前把汉语拉丁化就能降低文盲率的观点犯了一样的错误,问题的关键根本就不在文字本身上面好吗。

    我倒是很奇怪为什么数学、物理、化学、生物等学科没有人说把公式汉字化,学这些东西的难点在于这些公式用的符号太复杂、非母语吗?说句实话,改成汉字只会加大难度,因为汉字比一些拉丁符号复杂多了,几句话的时候感觉不明显,但要是满满一屏的时候,就会明显感觉眼花缭乱。这一点,随便找几个程序,把源码全都进行汉字替换看看就知道了。

    说句实话,我觉得中国人用基于拉丁字母的编程语言其实比美国人更有优势的,因为汉字注释和代码本身有很明显的区分,读代码的时候视觉压力小很多,没必要看注释的时候可以很自然的忽略注释的干扰。

    其实十多年前易语言我也是看过的,然而当时我一样觉得很复杂,没有学会。后来学 PHP 倒是两天就学会了,再后来学 Java 也没觉得多难,其实难的是一些语言概念和逻辑,我后来还学过很多其他编程语言看一些视频教程的时候看过很多人提问,没看谁说都是英文看不懂的,大家一般搞不懂的是运行逻辑。

    所以,这根本就是自己竖了一个不存在的靶子然后自己去射,就连易语言都知道难不难学在于语言特性而非取决于代码用汉字或拉丁字母。至于什么变量命名,你觉得汉字命名就不用想了?

    其实谈什么优势不优势毫无意义,谈什么易学不易学毫无意义。我倒是建议楼主就拿 Python3 纯汉字命名去写稍微完善点的网站出来就是了,老写小东西能看出什么效果,越复杂的结构才越能展现母语的理解优势嘛,不用太多,一万行以上就差不多了,或者就把 V2EX 大致仿一下就可以了。另外可以去这样教新人学 Python3,看是不是教得成功更好就是了。

    纸上谈兵讲优势,纯属搞笑,有那么多优势,你先用起来啊显示出使用后的效果再说嘛。比如你的程序因为用中文,写的又快又好又容易理解容易排错。比如你教中文编程,学生们学得又快又好,纷纷开发出又快又好的程序。这个实践又不要什么成本,不去做出成果,想考喊就喊出效果吗?
    xuanwu
        29
    xuanwu  
    OP
       2019-05-09 01:39:41 +08:00
    @nguoidiqua ”越复杂的结构才越能展现母语的理解优势嘛“ -- 入门教程也有优势。新人理解程序会更容易。之前写了一些,以后会有更多。
    nfroot
        30
    nfroot  
       2019-05-09 08:24:36 +08:00   1
    @nguoidiqua 喜欢英文编程的用英文编程就好啦,喜欢中文编程的让他们用中文编程好啦,让他们去折腾嘛,世界上多出一种语言又如何,看你的描述你觉得中文编程不好,差劲,不好入门,但是在其他人身上可能不一定呢?至少我看易语言的用户就入门了,拿起来就能干。。。。我的意思是,有那么多易语言的作品。说明了至少它还是有些作用和用处的。

    不是有句话这样说的么,没有好的,只有最合适的。合适很重要。
    nguoidiqua
        31
    nguoidiqua  
       2019-05-09 10:05:31 +08:00
    @xuanwu

    说了不要靠说来谈什么容易不容易了,现在这么多教程网站,你去以中文命名为基础做教程教人试试再说。

    我没学过 python,我去看了下你写的那点东西,没觉得比一般的教程更容易理解,相反,你写的代码我总感觉有点乱,这我不知道是你水平问题还是混用所致。

    而且,这还是存在大部分字母代码的情况,我在想如果所有函数和关键字都全部汉字了,不知道什么感觉。虽然你可能写不出一门纯汉字的编程语言,但是写个伪码你总写得出吧,比如拿一页代码手动全部替换成汉字看看。搞出来看看,然后发到这里让大家看,看看大家好不好懂。对了,别老是自己写那种寥寥数行的代码了,那种本身就简单,拿个开源产品的实用代码汉化下就行了。
    nguoidiqua
        32
    nguoidiqua  
       2019-05-09 11:45:10 +08:00
    @nfroot

    这跟喜欢不喜欢毫无关系,如果他说他喜欢中文编程,我没什么好说的。

    我也没有说中文编程有没有用,不管你用易语言也好,混用中文命名也好,写出来当然有点用了。另外,我也没有说中文编程不好差劲不好入门。

    是楼主觉得用中文会很有优势,更好,更容易,但我觉得说这个为时尚早,与其夸夸其谈,不如写点有用的东西,用事实来证明。实际上,我好像两三年前还是三四年前就在知乎看过楼主了,那时候他的例子是几十行的代码,现在还是如此。

    他可能觉得这样也能做点事,也算有用,但是难道学编程就仅此而已了吗?如果真的就是仅此而已,那这不但不是优势,反而是害人。易语言就是个例子,本来很多人可以好好的学编程,听说易语言简单就跑去学易语言,结果他们的编程真的就止步于此了,是他们真的脑子不行只能学到这个程度吗?(随便说句,易语言也没容易到哪去,我十多年前也学过,看了下就看不下去了,实际上易语言本身还是比有些语言复杂多了,它只不过是工具简单。)如果楼主自己一个会编程的,拿着中文编程写来写去几年还是只能写出几十行,那靠这个来学,能学到什么程度?如果学到这样也行,那不学也行,直接拿别人做的软件或者一键工具不是更好,学都不用学,最简单了。

    我的观点很简单:

    第一、编程的难点主要在于逻辑上面,平时看别人学编程,只看见说看不懂逻辑的,没有看见谁说英文看不懂云云,我看大部分教程降低学习难度都是靠图形化运行流程来做的,和字符关系不大的。

    第二、母语是否就会更容易理解,这个没有事实证明,个人觉得不能想当然就当作定论。根据平时观察来看,比如学语文、学历史、学很多纯母语教学的东西,并没有发现大家都很容易学,总有很多人学不明白。还有很多人学编程的时候年纪很小,根本没有学过多少英文,一样能学得很好。在英语国家,虽然美国人 IT 实力很强,但我觉得那是历史因素,同样讲英语的很多国家,很多教育条件比中国还好的国家,并没有诞生更多 IT 人才。欧洲出过不少大神,好像母语都非英语。欧洲我感觉 IT 比较强的是主要是俄国德国芬兰,都非英语国家。

    所以,口谈优势毫无意义,优势不是谈出来的而是用出来的,与其花几年时间辩论,不如花一点时间去试验。

    一、楼主先自己写个项目来看看,比如仿写下 V 战,这个不难吧?如果这样真能写出来,那至少说明这样能实用。能够实用了,再谈有没有优势。

    二、拿出这样的实际项目代码,放出来给大家看,看看对于大家来说,是否好理解。或者,随便找份实用的项目,改成纯汉字的伪码,分成两组,看看哪组理解得更好。

    三、以这样的形势去教学,看有几个人学,学了能写出什么东西。建议拿别人的教程改,这样正好对照下效果。

    这个东西是个很简单的事情,很容易证明的事情,但是不去证明,天天说又有什么用呢?有些人出于民族情感想要中文编程,我又不是不知道,我还希望所有东西都是中国人发明的呢。但是闭着眼睛瞎吹就能达成希望吗?怎么不去汉化数学、物理、化学呢?这些都是有古法可依的。怎么不把拼音字母改成注音字母甚至改成切韵呢?中国不都用过,注音现在还在用,日本也还在用假名,这些都是有实例可证的,怎么不去谈母语优势呢?怎么不去把度量衡改回去呢?数字要不要全部改成一二三四五六七八九十呢?

    你可以这样去做,但别盲目的说这样更有优势,先做出结果来看看。
    nfroot
        33
    nfroot  
       2019-05-09 15:05:55 +08:00
    @nguoidiqua 淡定,千万要淡定,我也和你一样一回复上来就是几百字,太可怕了
    dosmlp
        34
    dosmlp  
       2019-05-09 20:21:50 +08:00
    何止中文啊,用 emoji 表情也可以,何止 python 可以啊,据我所知 C 艹、Java 也可以
    xiaoboost
        35
    xiaoboost  
       2019-05-11 10:09:48 +08:00
    你这算个啥中文编程啊………………
    不过是用中文命名变量名字而已…………
    我给你看看我在的某个群的大佬写的,这才是中文编程好吧

    <img src="https://imgchr.com/i/EWgOv8" />
    <img src="https://imgchr.com/i/EWgq8P" />
    <img src="https://imgchr.com/i/EWgLgf" />
    xiaoboost
        36
    xiaoboost  
       2019-05-11 10:12:38 +08:00
    xiaoboost
        37
    xiaoboost  
       2019-05-11 10:13:09 +08:00
    还是不会发图…………那就算了吧…………反正点进去也能看
    xuanwu
        38
    xuanwu  
    OP
       2019-05-11 13:32:07 +08:00
    @xiaoboost 是 CTS 吧?看到词形那部分认出来了。我也一直在关注啊。这和在现有编程语言中命名完全没有矛盾。中文命名可以不借助任何额外的库和工具,何乐而不为?

    @nguoidiqua “编程的难点主要在于逻辑上面” -- 请先了解下“代码可读性”再继续讨论。

    @dosmlp 搜:《这 26 个编程语言都支持中文命名,你用的在内吗?》
    lookas2001
        39
    lookas2001  
       2019-05-12 00:17:14 +08:00 via Android
    中文编程现在是一个技术问题还是一个意识形态问题?
    相比搞变量函数名中文命名,我觉得有这时间还是把自己写过的项目完善一下注释,完善一下文档吧。
    感觉这些东西可能更实用一些,毕竟很多东西写出来不仅仅是给自己看的是吧。
    xuanwu
        40
    xuanwu  
    OP
       2019-05-12 03:54:26 +08:00
    @lookas2001 中文命名本身就可以省去一些注释。和任何技术一样,因地制宜,不搞一刀切。
    violence123456
        41
    violence123456  
       2019-05-13 11:49:25 +08:00
    中文变量=中文编程,?
    xuanwu
        42
    xuanwu  
    OP
       2019-05-13 13:49:25 +08:00
    @violence123456 中文变量中文编程
    avv
        43
    avv  
       2019-05-13 19:25:44 +08:00
    为什么不直接用 E 语言
    xuanwu
        44
    xuanwu  
    OP
       2019-05-13 22:57:42 +08:00
    @avv 因为我没有 E 语言开发环境
    nancheng911
        45
    nancheng911  
       2019-05-14 08:25:33 +08:00   1
    哈哈 可以,我是才知道
    lusheldon
        46
    lusheldon  
       2019-05-14 08:49:34 +08:00 via Android
    @wupeaking 这个还真可以哦,去了解一下 robotframework
    yuankui
        47
    yuankui  
       2019-0514 10:58:50 +08:00
    楼主,你试着把这个实践写到项目里面,看你会不会被打?
    xuanwu
        48
    xuanwu  
    OP
       2019-05-14 11:41:47 +08:00
    @yuankui 科普。爱用不用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5782 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 06:07 PVG 14:07 LAX 23:07 JFK 02:07
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86