`

你今天Python了吗?(上)

阅读更多

        你今天Python了吗?为了提高你的生产效率,赶快去关注一下小蟒蛇的成长吧!别再把Python当作你的业余爱好了,她能为你做手头上几乎所有的工作,而且能做得更好,也让你把写代码看成是一种真正的乐趣。为什么我们就一定只将注意力盯在C++、Java、C#这些所谓正统的语言上呢?我们的目标不是Be a pragmatic programmer吗?C++、Java乃至C#都可以看做是同一类型的语言:C++还算灵活,但纷繁复杂的语法使得生产效率低下,Java提高了生产效率,却损失了灵活性;C#算是在生产效率和灵活性平衡之间做得不错了,但是还是不够的,要不Boo语言之父就不用愤而著Boo了。
        Python首先是一种动态类型和强类型语言,动态类型意味着你不再需要为每一个变量的类型做无数次的声明,因为编译器会帮你做类型判断,它会跟根据变量的赋值来决定变量的类型。强类型则是意味着你不能将一个string当成一个int来用,除非你显式地转换它。
        Python本身是结构紧凑的,因为space在C++、Java、C#是会被忽略的,而且还有"{}"去界定code block,那么如果你喜欢,你就可以将所有代码写在一行上,写得多么让人晕头转向都行。但是这在Python中是不可能出现的,因为在Python中只有一种分隔符,就是冒号":",同时通过缩进来区分code block,或许你一开始会对这样的方式有点不习惯,但是到了后来,你会发现这样的方式会让你获益非浅,因为你养成了一种很好的代码风格。
        别以为Python是一种很学院派的语言,尽管很多人认为它十分适合作为学习编程的入门语言。事实上,Python不仅很适合初学者学习编程,而且还是一种功能强大的语言,你可以用它来做其他语言能够做的任何事情。而Python本身也几乎无处不在,Python编写的程序可以在各种主流的操作系统中运行,甚至于Palm。哦,差点忘了,Eric Raymond还告诉我们说黑客必须掌握四种语言,首推就是Python了。
        说到这里,似乎还是没有跟生产效率扯上什么关系哦。那好,就来点所见即所得的吧。下载Python,当然如果你一天都不可以离开.NET的话,就从IronPython开始学习Python吧。安装完成并运行Python或者IronPythonConsole,当你看到Python特有的Interactive方式的提示符>>>后,输入print "Hello,world"并且按下回车,Hello,world便出现在屏幕上了,至此你的第一个Python程序就编写并执行完毕了。与C++、Java乃至C#相比,用Python编写并执行这个经典程序是不是要快得多呢?呵呵~~~如果我现在就下定论说,Python的生产效率很高的话,你已经会骂我骗人了。好,稍安毋躁,咱们再来点有实际意义的代码吧。不过在此之前,你得先去下载两个十分有名的类库:wxPythonTwisted。下载并安装完了吗?好,我们开始Enjoy Python with you in ten minutes之旅吧(不喜欢Teach这个词,呵呵~~~)。
        首先是wxPython,如果大家都有看我前面的Post,就会知道wxPython的来头了。它是大名鼎鼎的wxWidget在Python的实现,不知道wxWidget是什么?不会吧,多看我的Blog不就知道了(偶真是臭美啊,其实我也才知道不久。别打我,呵呵~~~)?总之,使用wxPython就可以很轻松地进行GUI的开发了。随便找一个顺手的编辑器,键入如下代码,并存为一个你以喜欢的名字的文件,但是后缀得是.py:

from wxPython.wx import wxPySimpleApp, wxFrame
app 
= wxPySimpleApp()
frame 
= wxFrame(None, -1"Hello World")
frame.Show(
1)
app.MainLoop()

然后在控制台下通过python *.py来运行这段代码。噢,一个窗口出现在屏幕上了。是不是有点成就感了呢?再来看看代码,就如WinForm一样简洁,但是别忘了,wxPython可是没有.NET平台的限制的哦。同时你从wxSimpleApp和wxFrame这样的类名是不是联想到了MFC的中Frame类、App类和Doc类呢?是的,wxPython也是通过相同的方式实现了MVC,使得整个GUI代码更加清晰,更加易于维护。如果你还不过瘾,嫌这个太简单,那就再来一个更加丰富的:

from wxPython.wx import *
ID_ABOUT
=101
ID_EXIT
=110
class MainWindow(wxFrame):
    def __init__(self,parent,id,title):
        wxFrame.__init__(self,parent,wxID_ANY, title, size 
= (400,200), style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
        self.control 
= wxTextCtrl(self, 1, style=wxTE_MULTILINE)
        
        filemenu
= wxMenu()
        filemenu.Append(ID_ABOUT, 
"&About"," Information about this program")
        filemenu.AppendSeparator()
        filemenu.Append(ID_EXIT,
"E&xit"," Terminate the program")

        menuBar 
= wxMenuBar()
        menuBar.Append(filemenu,
"&File") # Adding the "filemenu" to the MenuBar
        self.SetMenuBar(menuBar)  # Adding the MenuBar to the Frame content.
        EVT_MENU(self, ID_ABOUT, self.OnAbout) 
        EVT_MENU(self, ID_EXIT, self.OnExit)  
        self.Show(
true)

    def OnAbout(self,e):
        d
= wxMessageDialog( self, " A sample editor  "
                            
" in wxPython","About Sample Editor", wxOK)
                          
        d.ShowModal() 
        d.Destroy() 

    def OnExit(self,e):
        self.Close(
true)  # Close the frame.

app 
= wxPySimpleApp()
frame 
= MainWindow(None, -1"Sample editor")
app.MainLoop()

以上的代码中的MainWindow类继承了wxFrame,并且为这个frame增加了一个wxTextCtrl控件,同时增加了一个菜单和对于菜单项的事件处理。它的简洁是不是让你心动了呢?赶紧到wxPython的网站去获得更多的信息吧。以上的代码均引自wxPython网站的Getting Started
        除了这种方式开发GUI之外,利用IronPython与CLR的协作能力,也可以通过调用WinForms的API,很轻松地进行GUI的开发,甚至是一种交互式的开发。详细的信息可以参考IronPython的老爸Jim的blog,上面有一篇很有趣的Post。

分享到:
评论

相关推荐

    Python 今天吃什么小程序 Python源码

    Python 今天吃什么小程序 Python源码Python 今天吃什么小程序 Python源码Python 今天吃什么小程序 Python源码Python 今天吃什么小程序 Python源码Python 今天吃什么小程序 Python源码Python 今天吃什么小程序 Python...

    python项目——今天吃什么程序.zip

    python项目——今天吃什么程序.zip python项目——今天吃什么程序.zip python项目——今天吃什么程序.zip python项目——今天吃什么程序.zip python项目——今天吃什么程序.zip python项目——今天吃什么程序.zip ...

    文章:python干饭神器-今天吃什么?python告诉你 的源代码

    标题中的“python干饭神器-今天吃什么?python告诉你”指的是一个使用Python编程语言开发的小程序,这个程序能够帮助用户决定每天吃什么,为用户提供餐饮选择的灵感。在日常生活中,人们可能会面临选择困难,特别是...

    python实战项目源码22 今天吃什么小程序.zip

    总之,"Python实战项目源码22 今天吃什么小程序"是一个理想的实践平台,它不仅能让你提升Python编程技能,还能让你接触到小程序开发的各个环节,增强实际项目开发经验。通过这个项目,你可以锻炼解决问题的能力,...

    基于python实现的今天吃什么程序源代码.zip

    基于python实现的今天吃什么程序源代码 基于python实现的今天吃什么程序源代码 基于python实现的今天吃什么程序源代码 基于python实现的今天吃什么程序源代码 基于python实现的今天吃什么程序源代码 基于python实现...

    基于python的一款今天吃什么小程序源码

    标题中的“基于python的一款今天吃什么小程序源码”指的是一个使用Python编程语言开发的小程序,它的主要功能可能是为用户提供每日饮食建议。这样的小程序通常会结合随机选择、用户偏好、营养均衡等因素,帮助用户...

    基于python的今天吃什么程序源码.zip

    基于python的今天吃什么程序源码基于python的今天吃什么程序源码基于python的今天吃什么程序源码基于python的今天吃什么程序源码基于python的今天吃什么程序源码基于python的今天吃什么程序源码基于python的今天吃...

    Python获取昨天、今天、明天开始、结束时间戳的方法

    在Python中获取昨天、今天、明天的开始与结束时间戳,首先需要使用到datetime模块来获取当前日期以及进行日期的运算。下面会详细解释整个过程以及所涉及到的函数和方法。 首先,我们使用datetime模块中的date类来...

    Python——操作Excle_pythonexcel_python_

    在Python编程中,处理Excel文件是一项常见的任务,特别是在数据分析、报表生成或自动化流程中。Python提供了多种库来方便我们操作Excel文件,其中最常用的是`pandas`和`openpyxl`。本篇文章将深入探讨如何使用Python...

    datax python3版本语法文件

    然而,初期的DataX官方版本仅支持Python 2.7,这在Python 3逐渐成为主流的今天,无疑限制了其在更广阔范围内的应用。好消息是,现在有了专门为Python 3版本优化的DataX语法文件,通过下载并替换特定文件,用户可以在...

    今天 平安夜 Python 送你一顶圣诞帽 @微信官方

    好吧,你不给,咱自己来,不就是个帽子嘛。 Python 在手,圣诞帽我有! OpenCV 库 加上几张圣诞帽图片,三四十行代码轻松搞定。只不过调试的时候要注意点,图像坐标和像素矩阵索引的维度别搞乱了。 大致步骤: ...

    基于python的今天吃什么程序使用说明.zip

    基于python的今天吃什么程序使用说明基于python的今天吃什么程序使用说明基于python的今天吃什么程序使用说明基于python的今天吃什么程序使用说明基于python的今天吃什么程序使用说明基于python的今天吃什么程序使用...

    Python库 | rainbond-python-0.7.5.tar.gz

    今天我们将深入探讨一个特定的Python库——`rainbond-python-0.7.5`。这个库的资源以`.tar.gz`格式提供,是一种常见的压缩格式,它将多个文件打包并压缩,便于下载和存储。 `rainbond-python-0.7.5`库的命名暗示了...

    python迷宫小游戏

    通过阅读和理解这些代码,你可以学习到如何结合Python、Pygame和AI算法来创建一个交互式的迷宫游戏。这不仅是对编程技能的锻炼,也是对AI算法应用的好机会。当你完成这个游戏,不仅可以享受到编程的乐趣,还能提高...

    基于Python的Web技术

    今天,我们将对基于 Python 的 Web 技术进行详细的介绍。 什么是 LAMP LAMP 是一种流行的 Web 开发平台,由 Linux、Apache、MySQL 和 PHP、Perl、Python 或 Ruby 等脚本语言组成。LAMP 具有开放灵活、开发迅速、...

    python绘制旋风图

    其中,`matplotlib`库是Python中最常用的数据可视化库之一,它提供了各种图表类型,包括我们今天要讨论的“旋风图”(Whisker plot),也被称为箱须图或箱线图。旋风图是一种用于展示一组数据分布情况的统计图形,它...

    数学建模30个常用算法(Python)

    数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法(Python)数学建模30个常用算法...

    基于Python的超级玛丽马里奥源码.rar

    比如今天要介绍的一款经典游戏超级玛丽的编写,如果用其他语言可能要上千行代码,而使用Python最少只需两百多行就可完成。不信?那就让我们一起开始吧。 我们使用的扩展库是 Pygame Zero(简称Pgzero)。该库是一个...

    Python-GPUtil是一个Python模块使用nvidiasmi从NVIDAGPU获取GPU状态

    之后,你就可以在Python程序中导入并使用它了: ```python import GPUtil # 获取所有GPU信息 gpus = GPUtil.gpus print(gpus) # 筛选空闲GPU available_gpus = GPUtil.getAvailable() print(available_gpus) ``` ...

    Python学习-最完整的基础知识大全.pdf

    Python学习--最完整的基础知识⼤全 前⾯两篇⽂章分别介绍了Python的环境搭建和基本⼯具 Python学习--环境搭建 Python学习--⼯具介绍 本篇介绍Python的基础知识,关于python的基础知识学习,⽹上有很多资料,今天我就...

Global site tag (gtag.js) - Google Analytics