资讯专栏INFORMATION COLUMN

python里能不能用中文

anquan / 1641人阅读

摘要:而且我们一直在讲的,也可以用中文来编程。带来的一个额外功能就是,你可以使用中文作为变量名。另外如果在代码里写中文,别忘了在开头加上或的声明。

现代计算机和编程的起源和推动力量主要源自美国,再加上26个字母很便于表示(算上大小写,6位bit就够了),因此英语一直是编程领域的不二之选。但这就给部分非英语国家的编程学习者带来一些困扰。以至于有些人还没开始学,就担心自己的英语问题。这完全没必要,因为 编程初期所用到的单词很有限 ,你就当做一个符号去记,也能很快熟悉。而且我们一直在讲的 Python,也可以 “用中文”来编程

Python3 对于字符编码这一块做了很大改进。带来的一个额外功能就是,你可以 使用中文作为变量名 。比如:


>>> 名字 = "张三"
>>> 年龄 = 18
>>> print(名字, 年龄)
张三 18

注意,Python2 是不行的。另外如果在代码里写中文,别忘了在开头加上 #coding: gbk#coding: utf8 的声明。关于版本 2 和 3 的差别之前的文章里有多次说过,不太清楚的同学请在公众号里回复关键字 2v3

上面这样的写法完全是符合语法的,但我个人没有习惯这么来命名。不过非要这么来的,我们可以尝试把教程里的“猜数字”代码改一下(原版代码见 教程 22 课 ):


from random import randint
def 是否相等(参数1, 参数2):
   if 参数1 < 参数2:
       print("太小了")
       return False;
   if 参数1 > 参数2:
       print("太大了")
       return False;
   if 参数1 == 参数2:
       print("猜中了!")
       return True

答案 = randint(1, 100)
print("猜猜我想的是几?")
是否猜中 = False
while 是否猜中 == False:
   猜测值 = int(input())
   是否猜中 = 是否相等(猜测值, 答案)

使用中文变量名,执行效果和原版完全一致(除非代码的编码出了问题)。更进一步,你还可以通过某些方式更改系统提供的函数名:


from random import randint as 随机整数

输入 = input输出 = print
对 = True
错 = False
整数 = int
def 是否相等(参数1, 参数2):
   if 参数1 < 参数2:
       输出("太小了")
       return 错;
   if 参数1 > 参数2:
       输出("太大了")
       return 错;
   if 参数1 == 参数2:
       输出("猜中了!")
       return 对

答案 = 随机整数(1, 100)
输出("猜猜我想的是几?")
是否猜中 = 错
while 是否猜中 == 错:
   猜测值 = 整数(输入())
   是否猜中 = 是否相等(猜测值, 答案)

这里牵涉到3个概念:

from random import randint as 随机整数 是引入模块时指定 别名

对 = True,就是一个普通的 变量赋值

输入 = input整数 = int,要理解这个用法,你需要有面向对象的认识:在 Python 中 函数也是一种对象 ,可以像普通值一样赋值给变量。赋值之后,这个变量就相当于这个函数,可以通过括号语法来调用。

如果你还嫌不够彻底,有人给了更凶残的解决方案:一个叫做“ 周蟒 ”的项目,相当于把 Python 翻译成了中文。(不过项目很久没更新了,我在 py3 上安装未成功)

在 py2 上通过 pip 即可安装:


pip install zhpy

之后就能通过 zhpy 进入交互环境,或者直接 zhpy test.py 执行你的中文 py 代码文件。

写出来代码是酱婶儿的:


从 random 导入 randint 作为 随机整数

定义 是否相等(参数1, 参数2):
   如果 参数1 < 参数2:
       打印 "太小了"
       返回 假
   如果 参数1 > 参数2:
       打印 "太大了"
       返回 假
   如果 参数1 == 参数2:
       打印 "猜中了!"
       返回 真

答案 = 随机整数(1, 100)

打印 "猜猜我想的是几?"
是否猜中 = 假
当 是否猜中 == 假:
   猜测值 = 整数(输入())
   是否猜中 = 是否相等(猜测值, 答案)

几乎帮你把所有基础语法都转成了中文,甚至还可以用 emoji 表情……之前有同学对猜数字代码的理解还有疑惑,尤其是 bingo 这个变量,那如果写成这样,是不是更容易理解一点呢?

除此之外,还有不少中文编程语言,其中最出名的莫过于“ 易语言 ”。虽然科班出身的程序员都不太看得上这种语言,但不得不承认,它在我国的草根黑客圈中有着广泛的群众基础。

另外,我还发现了一个有趣语言,叫 PerlYuYan 。看名字就知道是基于 Perl,但让你想不到的是,它将 Perl 翻译成了 文言文 ……比如官方示例里的代码:


用警兮用嚴。

印道
一至一
哉兮

印編曰雜申
      雜申矣
又纖曰龍鼠矣
  又曰
    一矣

亂曰
國無人莫我知兮    又何懷乎故都
既莫足與為美政兮  吾將從彭咸之所居

資曰
印重一至一兮
重起一至十合始印終



是不是感到不明觉厉!但实际上也就是字面上的翻译。比如 用警兮用嚴。,其实就是use warnings; use strict;。那么曰龍鼠矣,龙鼠又是什么鬼?根据下图自行体会吧(欢迎评论区抢答):

看了这些中文写出的代码,你现在有啥想法?觉得太酷炫了,还是视作异端?

最后还是说句,尽管可以用中文写代码,尽管有大量的中文资料、教程、文档,就算你自己也接受使用中文来学习编程甚至写代码,我还是 强烈建议你尽量提升下英文 ,逼着自己去 看报错、看原版文档、看 StackOverflow 上的问答 ,哪怕一开始你用翻译工具慢慢查。英语能力虽然对你编程起步的下限影响不大,但对你编程发展的上限至关重要。和学编程一样,这是个长期的过程,坚持下去总会有提升的。

之前我们还做过一个整理编程英语高频词汇的小项目,有需要的可以拿去参考:《我们用程序整理出了一份Python英语高频词汇表,拿走不谢!》,希望对你有所帮助。

════

其他文章及回答:

如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 人工智能 | 爬虫 | 我用Python | requests | 计算机视觉 | 字符播放器 | 一图学Python

欢迎搜索及关注公众号: Crossin的编程教室

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43073.html

相关文章

  • Chrome开发者工具,爬虫必备,解决一半的问题

    摘要:但这边特别提醒的是里看到的代码不等于请求网址拿到的返回值。这个文件包含了列表中所有请求的各项参数及返回值信息,以便你查找分析。理解了这几步,大部分网上的数据都可以拿到,说解决一半的问题可不是标题党。 网上爬虫的教程实在太多了,知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效了。 每个网站抓取的代码各不相...

    jiekechoo 评论0 收藏0
  • 爬虫攻防实践

    摘要:之前在学校曾经用过的方法做过一些爬虫脚本来玩,从正式转前端之后,出于兴趣,我对爬虫和反爬虫又做了一些了解,并且做了一些爬虫攻防的实践。爬虫脚本通常会很频繁的进行网络请求,比如要爬取豆瓣排行榜的电影,就会连续发送个网络请求。 之前在学校曾经用过request+xpath的方法做过一些爬虫脚本来玩,从ios正式转前端之后,出于兴趣,我对爬虫和反爬虫又做了一些了解,并且做了一些爬虫攻防的实践...

    wanglu1209 评论0 收藏0
  • 爬虫攻防实践

    摘要:之前在学校曾经用过的方法做过一些爬虫脚本来玩,从正式转前端之后,出于兴趣,我对爬虫和反爬虫又做了一些了解,并且做了一些爬虫攻防的实践。爬虫脚本通常会很频繁的进行网络请求,比如要爬取豆瓣排行榜的电影,就会连续发送个网络请求。 之前在学校曾经用过request+xpath的方法做过一些爬虫脚本来玩,从ios正式转前端之后,出于兴趣,我对爬虫和反爬虫又做了一些了解,并且做了一些爬虫攻防的实践...

    xiangzhihong 评论0 收藏0
  • python_bomb----有趣的微信聊天机器人

    摘要:模块是一个文件,以结尾,包含了对象定义和语句模块让你能够有逻辑地组织你的代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。命令执行成功,执行结果命令执行失败一秒后执行关机命令 Python 模块(Module) 是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代...

    bawn 评论0 收藏0
  • 写第一个Python程序

    摘要:关于中文为了处理汉字,程序员设计了用于简体中文的和用于繁体中文的。年一共收录了个字符,包括个汉字和个其它符号。年的是取代的正式国家标准。区分中文编码的方法是高字节的最高位不为。 Python 2和 Python3的区别 3.0有Unicode support ,这代表着可以直接默认写中文,2是不行的 有一些库改名了,但表面上变化不大,都是些大写变小写,下划线没了之类的 Twisted...

    ISherry 评论0 收藏0

发表评论

0条评论

anquan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<