有没有游戏引擎支持python 模板引擎语言的

如何让你的Python程序支持多语言
import random
guessesTaken = 0
print(_(&Hello! What's your name?&))
myName = input()
number = random.randint(1, 20)
print(&Well, {}, I am thinking of a number between 1 and 20.&.format(myName))
while guessesTaken & 6:
& & print(&Take a guess.&)
& & guess = input()
& & & & guess = int(guess)
& & except ValueError:
& & & & print(&You should give me a number.&)
& & & & continue
& & if guess & number:
& & & & print(&Your guess is too low.&)
& & if guess & number:
& & & & print(&You guess is too high.&)
& & if guess == number:
& & & & break
if guess == number:
& & print(&Good job, {}! You guessed my number in {} guesses!&.format(
& & & & myName, guessesTaken))
if guess != number:
& & print(&Nope. The number I was thinking of was {}.&.format(number))
这是我们一个简单的猜数字游戏,我们执行看看过程。
$ python3 guess.py&
Hello! What's your name?
Well, Aidan, I am thinking of a number between 1 and 20.
Take a guess.
You guess is too high.
Take a guess.
Your guess is too low.
Take a guess.
You guess is too high.
Take a guess.
Your guess is too low.
Take a guess.
You guess is too high.
Take a guess.
Good job, Aidan! You guessed my number in 6 guesses!
程序是很漂亮了,可是老板突然要求你改成中文的,那么我们通常可能选择将字符串全部修改为相应中文,但是老板要让你自己针对不同用户不同语言就麻烦了。那有啥办法呢?标准库gettext可以帮助我们。
我们首先用_(),然改造我们的字符串。你可以把_()想象成类似如下函数
& & spanishStrings = {'Hello world!': 'Hola Mundo!'}
& & frenchStrings = {'Hello world!': 'Bonjour le monde!'}
& & germanStrings = {'Hello world!': 'Hallo Welt!'}
& & if LANGUAGE == 'English':
& & & & return s
& & if LANGUAGE == 'Spanish':
& & & & return spanishStrings[s]
& & if LANGUAGE == 'French':
& & & & return frenchStrings[s]
& & if LANGUAGE == 'German':
& & & & return germanStrings[s]
不过,当我查看他类型时,我发现他应该是某种继承了list的扩展类型。
&&& type(_)
&class 'list'&
改造后我们的代码如下
import random
guessesTaken = 0
print(_(&Hello! What's your name?&))
myName = input()
number = random.randint(1, 20)
print(_(&Well, {}, I am thinking of a number between 1 and 20.&).format(myName))
while guessesTaken & 6:
& & guessesTaken += 1
& & print(_(&Take a guess.&))
& & guess = input()
& & & & guess = int(guess)
& & except ValueError:
& & & & print(_(&You should give me a number.&))
& & & & continue
& & if guess & number:
& & & & print(_(&Your guess is too low.&))
& & if guess & number:
& & & & print(_(&You guess is too high.&))
& & if guess == number:
& & & & break
if guess == number:
& & print(_(&Good job, {}! You guessed my number in {} guesses!&).format(
& & & & myName, guessesTaken))
if guess != number:
& & print(_(&Nope. The number I was thinking of was {}.&).format(number))
提取字符串
Python 自带一个工具我们提取使用_()包裹的字符串
pygettext3 -d guess guess.py
它生成了如下文件:
$ cat guess.pot&
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR &EMAIL@ADDRESS&, YEAR.
&Project-Id-Version: PACKAGE VERSION\n&
&POT-Creation-Date:
15:35+CST\n&
&PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&
&Last-Translator: FULL NAME &EMAIL@ADDRESS&\n&
&Language-Team: LANGUAGE &LL@li.org&\n&
&MIME-Version: 1.0\n&
&Content-Type: text/ charset=UTF-8\n&
&Content-Transfer-Encoding: 8bit\n&
&Generated-By: pygettext.py 1.5\n&
#: guess.py:5
msgid &Hello! What's your name?&
#: guess.py:9
msgid &Well, {}, I am thinking of a number between 1 and 20.&
#: guess.py:12
msgid &Take a guess.&
#: guess.py:17
msgid &You should give me a number.&
#: guess.py:21
msgid &Your guess is too low.&
#: guess.py:24
msgid &You guess is too high.&
#: guess.py:30
msgid &Good job, {}! You guessed my number in {} guesses!&
#: guess.py:34
msgid &Nope. The number I was thinking of was {}.&
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'2012年7月 C/C++大版内专家分月排行榜第二2012年6月 C/C++大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。Python在国内的应用不多,一般做网页和脚本,国外的应用很多,下面是他的应用
=========================================================================
Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用。
  下面就让我们一起来看看它的强大功能:
  Python(派森),它是一个简单的、解释型的、交互式的、可移植的、的超高级语言。这就是对Python语言的最简单的描述。
  Python有一个交互式的开发环境,因为Python是解释运行,这大大节省了每次编译的时间。Python语法简单,且内置有几种高级数 据结构,如字典、列表等,使得使用起来特别简单,程序员一个下午就可学会,一般人员一周内也可掌握。Python具有大部分面向对象语言的特征,可完全进 行。它可以在MS-DOS、Windows、Windows NT、Linux、Soloris、Amiga、BeOS、OS/2、VMS、QNX等多种OS上运行。
  编程语言
  Python语言可以用来作为批处理语言,写一些简单工具,处理些数据,作为其他软件的接口调试等。Python语言可以用来作为函数语言, 进行人工智能程序的开发,具有Lisp语言的大部分功能。Python语言可以用来作为过程语言,进行我们常见的应用程序开发,可以和VB等语言一样应 用。Python语言可以用来作为面向对象语言,具有大部分面向对象语言的特征,常作为大型应用软件的原型开发,再用C++改写,有些直接用Python来开发。
  数据库
  Python在数据库方面也很优秀,可以和多种数据库进行连接,进行数据处理,从商业型的数据库到的数据库都提供支持。例如:Oracle,Ms SQL Server等等。有多种接口可以与数据库进行连接,至少包括ODBC。有许多公司采用着Python+MySql的架构。因此,掌握了Python使你 可以充分利用面向对象的特点,在数据库处理方面如虎添翼。
  Windows编程
  Python不仅可以在Unix类型的操作系统上应用,同样可以在Windows系统里有很好的表现。通过添加PythonWin模块,就可 以通过COM形式调用和建立各种资源,包括调用注册表、ActiveX控件以及各种COM等工作,最常见的例子就是通过程序对Office文档进行处理, 自动生成文档和图表。
  通过Python,还可以利用py2exe模块生成exe应用程序。还有许多其他的日常维护和管理工作也可以交给Python来做,从而减少 维护的工作量。利用Python,你还可以开发出象VB,VC,Delphi那样的GUI程序,但却可以在多个平台上执行。这在许多方面并不逊色于 Java。
  多媒体
  利用PIL、Piddle、ReportLab等模块,你可以处理图象、声音、视频、动画等,从而为你的程序添加亮丽的光彩。动态图表的生成、统计分析图表都可以通过Python来完成。另外,还有OpenGL。利用PyOpenGl模块,你可以非常迅速的编写出三维场景。
  Python可以广泛的在科学计算领域发挥独特的角色。有许多模块可以帮助你在计算巨型数组、矢量分析、神经网络等方面高效率完成工作。尤其是在教育科研方面,可以发挥出独特的优势。
  网络编程
  Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块,可以非常方便的定制出自己的,无论是c/s,还是,都有很好的解决方法。
  工具集:
  Soket编程
  CGI,Freeform
  Zope,CMF,Plone,Silva,NuxeoCPS...
  WebWare
  Twisted
  CherryPy
  SkunkWeb
  Quixote
  4SuiteServer
  Albatross
  Cheetah
  mod_python
  gopher
  XML-PRC
  Python可以非常方便的实现GUI编程,通过Tkinter,wxPython,QT等等模块,你就可以根据需要编写出强大的跨平台的用户界面程序。
  开发环境与编辑器
  Python程序的开发工具比较多,目前主要的工具既有IDLE,PythonWin这样的免费工具,也有一些商业性的工具。通过这些工具,可以让你更为快速的完成工作。
  集成开发环境(IDE):
  IDLE:这是Python里边自带的,基本上可以满足一般开发需要,请参考cnIDLE。
  PythonWin:这是基于Windows平台的编辑开发环境,基本上可以满足一般开发需要。
  PythonWorksPro
  Wing IDE
  Komodo
    代码编辑器:
  LEO:完全由Python编写的程序代码编写辅助工具,可运行在多种操作系统中,支持独特的程序代码管理方式。
  gVim:相当专业的代码编辑器,可运行在多种操作系统中,支持Python扩展。
  Emacs:Unix系统中常用的工具。
  SciTE:简单易用的代码编辑器,支持unicode编辑。
  嵌入和扩展
  Python可以嵌入到其它应用程序中,也可以通过C/C++编写扩展模块,从而可以提高程序的运行速度或者完成只有通过C/C++才能完成 的工作。现在Python已经可以和C#相结合,并且结合到Visual Studio里边,实现微软的.Net思想。如果你会C语言,再学习Python,这将是一个非常棒的一种选择。
    如果你掌握了Python,想在Java里应用它,你可以采用Jython。Jython是采用Java语言实现的Python。这样, 你只要按照Python的语法,就可以调用Java的各种类库,快速的编写出基于Java的程序。也就是通过Jython,编写Java程序。这样就可以 更为快速的实现Java的功能。Python在面向对象方面和Java是相通的。
  除了c/c++和java, Python目前还可以和Delphi、VB结合。
  Python在很早的时候就是一种游戏编程的辅助工具。在中扮演了重要的角色。在“阿贝斯(Abyss)”、“星球之旅 (Star Trek)”、“Indiana Jones”超级大片中担当特技和的(Industrial Light)就采用Python制作商业动画。目前,通过Python完全可以编写出非常棒的游戏程序。
  企业与政务应用
  目前,Python已经成功的实现企业级应用,在全球,已经有很多公司采用Python进行企业级软件的开发和应用,比如:ERP和CRM这样的应用。同时,通过Python技术,成功的实现了许多政务应用。
  用Python写的较大的系统有:
  Zope:一个应用程序服务器,具有、团队开发、XML、面向对象、SOAP接口等一系先进特性,且开放源码。参见:。
  Gadfly:一个用Python写的面向对象,具有小巧、快速、可移植性好,具有大部分SQL语言特性,且开放源码。参见 _blank href=
/gadfly.html。
  还有一些比较有名的公司也在用Python进行原型的开发,如Microsoft、IBM等,还有:
  红帽(Red Hat )曾用Python和Tk一起成功开发配置和管理操作系统的可视界面。整个系统可以全面控制Linux操作系统,并根据用户选择对配置文件作自动更新。
  Infoseek在其公用搜索引擎使用了Python。该公司还用Python对其软件进行定制,使最终用户能对该网站内容进行方便下载。  
  感兴趣的读者,可以到上下载一个下来试试。
发表评论:
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 python搜索引擎 框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信