python能用中文编写程序吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python能用中文编写程序吗?相关的知识,希望对你有一定的参考价值。

我在建立建立GUI窗口的时候输入以下代码“代码一“就对,但是输入”代码二“就错误呢?代码一:>>>import easygui>>>easygui.msgbox("Hello There")代码二:>>>import rasygui>>>easygui.msgbox("你好吗?")

python支持中文编码
如果是python3.x,只用将源文件编码改成utf8就可以了,
如果是python2.x需要将源文件编码改成utf8,同时在文件之前声明编码格式,像这样:
# coding:utf-8
然后在中文前面加u,如u"你好"追问

我还是不懂,能不能加段代码说明一下呢?

追答

比如

# coding:utf-8
print u'你好'

记得文件编码格式要使用utf-8

参考技术A 可能和你的编译软件有关,我是可以打中文的。
我用的是 Python自带 的 IDLE 开发环境。
这个你在Python的开始菜单中 就可以找到,(或者是python目录里,是一个python程序)
然后点击 File 选择 new Window,你就可以他来编写代码。追问

我就是按这些步骤做的,但就是只能出现英文的GUI,而不能出现中文的GUI

追答

你用的那个easygui模块我没用过,
我用自带的模块tkinter可以打中文代码如下
from tkinter import *
wnd = Tk()label = Label(wnd, text = "中文")label.pack()mainloop()
如果上面的代码可以打出中文,
那么就可能是你的那个模块的问题。

追问

那这个模块需要下载还是下载了python2.5就有的呢

追答

这个模块是python原装的,不过我用的是python 3.3 模块名字是 tkinter
我看的书是 python 2.6 里面模块的名字是Tkinter 也就是开头的T大写。

参考技术B 在开头加上 #-*-coding: utf-8-*- 试试

你能用纯序言写 between/3 吗?

【中文标题】你能用纯序言写 between/3 吗?【英文标题】:Can you write between/3 in pure prolog? 【发布时间】:2013-08-20 14:10:29 【问题描述】:

我一直试图了解如何从 Prolog 谓词中的回溯生成一系列值。内置谓词 between/3 将在回溯时一次生成一个范围内的所有整数,因此一个如何编写的示例可能对我的任务有所帮助。

我在现有的 Prolog 系统中寻找了一个实现,但是 GNU Prolog 的 between/3 的实现是一个 C 函数,其中的诀窍是它调用另一个 C 函数“Pl_Create_Choice_Point”,它允许它产生附加值关于回溯。

【问题讨论】:

【参考方案1】:
bet(N, M, K) :- N =< M, K = N.
bet(N, M, K) :- N < M, N1 is N+1, bet(N1, M, K).

在行动:

$ swipl
?- [bet].
% bet compiled 0.00 sec, 1,064 bytes
true.

?- bet(1,5, K).
K = 1 n
K = 2 n
K = 3 n
K = 4 n
K = 5 n
false.

如果使用cut,则可以防止最终搜索失败,并恢复确切的内置 between/3 行为:

bet(N, M, K) :- N < M, K = N.
bet(N, M, K) :- N == M, !, K = N.
bet(N, M, K) :- N < M, N1 is N+1, bet(N1, M, K).

在行动:

?- [bet].
% bet compiled 0.00 sec, 416 bytes
true.

?- between(1,5,K).
K = 1 n
K = 2 n
K = 3 n
K = 4 n
K = 5.

?- [bet].
% bet compiled 0.00 sec, 240 bytes
true.

?- bet(1,5,K).
K = 1 n
K = 2 n
K = 3 n
K = 4 n
K = 5.

【讨论】:

您的初始版本要好一些,因为它最终没有失败。【参考方案2】:

您真正要问的是如何创建选择点。只要你有一个成功的统一,你就会得到一个解决方案。这就是@seanmcl 的第一个谓词中发生的情况:

bet(N, M, K) :- N =< M, K = N.

要获得选择点,您需要有替代方案。在 Prolog 中只有两种方法可以替代:使用明确的“或”:;,或者提供另一个规则。 @seanmcl 的代码给出了另一个规则,这是这种情况的惯用语。

再举一个例子,member/2 为列表中的每个项目生成一个解决方案,但不需要神奇的 C 函数,只需两条规则:

member(X, [X|_]).
member(X, [_|Xs]) :- member(X, Xs).

让我们看看member(X, [1,2]) 会发生什么。首先使用第一条规则,将[X|_][1,2]统一,产生X=1_=[2]。这是一个成功的统一,因此产生了一个解决方案。如果失败(例如在控制台上按;),则会启动回溯。下一个选择点在两条规则之间,所以输入下一条规则。 [_|Xs] 与 [1,2] 结合,产生绑定 Xs=[2],然后调用 member(X, [2])。重新进入时,可以再次做出相同的决定,因此应用第一条规则member(X, [X|_]) 并生成X=2 绑定。这是一个解决方案。如果你再次回溯,你将得到一个无害的失败,因为这两个规则都没有与[] 统一。

我希望这有助于稍微了解情况。

【讨论】:

以上是关于python能用中文编写程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Python 编写原生 iPhone、Android、Windows、Blackberry 应用程序吗? [复制]

我可以在 python 中编写我的应用程序,然后从 C 中运行它们吗?

c语言 基本的加法、移位编写程序

Spark支持通过GO语言编写程序吗

能用python让网页与数据库连接吗

编写一个python程序,输出如下图形效果? 编写一个python程序,输出如下语句