你今天Python了吗?(上)

本文介绍了Python语言的优势,它是动态强类型语言,结构紧凑,能培养良好代码风格。Python适合初学者,可在多种操作系统运行。还提及通过下载相关类库,如wxPython和Twisted,能轻松进行GUI开发,相比C++、Java、C#等语言,生产效率更高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        你今天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:

None.gif from wxPython.wx import wxPySimpleApp, wxFrame
None.gifapp 
=  wxPySimpleApp()
None.gifframe 
= wxFrame(None, -1"Hello World" )
None.gifframe.Show(
1 )
None.gifapp.MainLoop()
None.gif

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

None.gif from wxPython.wx import  *
None.gifID_ABOUT
= 101
None.gifID_EXIT
= 110
None.gif
class  MainWindow(wxFrame):
None.gif    def __init__(self,parent,id,title):
None.gif        wxFrame.__init__(self,parent,wxID_ANY, title, size 
=  ( 400 , 200 ), style = wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE)
None.gif        self.control 
=  wxTextCtrl(self,  1 , style = wxTE_MULTILINE)
None.gif        
None.gif        filemenu
=  wxMenu()
None.gif        filemenu.Append(ID_ABOUT, 
" &About " , "  Information about this program " )
None.gif        filemenu.AppendSeparator()
None.gif        filemenu.Append(ID_EXIT,
" E&xit " , "  Terminate the program " )
None.gif
None.gif        menuBar 
=  wxMenuBar()
None.gif        menuBar.Append(filemenu,
" &File " ) # Adding the  " filemenu "  to the MenuBar
None.gif        self.SetMenuBar(menuBar)  # Adding the MenuBar to the Frame content.
None.gif        EVT_MENU(self, ID_ABOUT, self.OnAbout) 
None.gif        EVT_MENU(self, ID_EXIT, self.OnExit)  
None.gif        self.Show(
true )
None.gif
None.gif    def OnAbout(self,e):
None.gif        d
=  wxMessageDialog( self,  "  A sample editor  "
None.gif                            
"  in wxPython " , " About Sample Editor " , wxOK)
None.gif                          
None.gif        d.ShowModal() 
None.gif        d.Destroy() 
None.gif
None.gif    def OnExit(self,e):
None.gif        self.Close(
true )  # Close the frame.
None.gif
None.gifapp 
=  wxPySimpleApp()
None.gifframe 
=  MainWindow(None,  - 1 " Sample editor " )
None.gifapp.MainLoop()
None.gif

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值