1. Make a script both importable and executable(使你的脚本可输入且可执行)

if __name__ == '__main__':

Example

def main():
    print('Doing stuff in module', __name__)

if __name__ == '__main__':
    print('Executed from the command line')
    main()

$ python mymodule.py
Executed from the command line
Doing stuff in module __main__

>>> import mymodule
>>> mymodule.main()
Doing stuff in module mymodule

python语法非常灵活,其宗旨在与指导程序员快速开发,所以,只有想不到,没有它做不到的。最近偶然看见博客园一位大神Vamei的博客,当时就感觉相见他的博客恨晚,因为他的文字幽默,流畅,有深度,从设计的角度剖析技术,把死板板的技术写得非常有文艺范。做一个科技的文艺范是我读大学以来明确自己的一个终极目标,看到Vamei的博文,我瞬间感觉到这就是我想要的状态,一个科技的文艺范。Vamei是一个非常努力的人,兴趣跟我惊人的相似,他是大神,读书无数,而我现在屌丝,所以,必须向他看齐,并超越。他写了诸多教程,精辟流畅,比太多所谓的教程个人感觉要好几十倍。以前就学过python,但都是浅于表面,没有深度。现在看过Vamei写的教程,觉得有些知识点自己还是很模糊。所以,决心还是把那些知识点记录下来,免得以后又要重新回过头再查阅,浪费时间。站在巨人的肩膀上学习,不过我会从自己的角度剖析这些知识点,加深印象。

1、print 很灵活,打印多个对象没问题

>>> a = 1.4
>>> print a, type(a)
1.4 <type 'float'>

我始终相信任何事物(包括抽象的和具象的)的诞生都是有一定的原因的,在讯息快速更新迭代的今天,我们在接受新事物的同时,不当当要知道该事物是什么,而且有必要知道该事物的起源是什么,这样有助于我们应对这种变化,拥抱变化。

几经深思和犹豫之后,终于下定了决心要学Django,这是一个如何规划效用成本的问题,有得必有吧,但这是理想的东西,即使是蜗牛的速度,不管什么时候都应该去尝试一下。

在正式入门之前,首先要解决的就是开发环境部署的问题,我选择的是Linux,原因是Django依附于多个相关的python库,在windows上安装着实不方便,而在Linux上就显得格外简单,一行sudo apt-get install XXX的命令就可以搞定。本文主要记录我在安装Django的过程中所遇到的一些问题。

matplotlib初探

 Python

前言

最近摸索了Python的画图库Matplotlib,其画的图要多炫丽有多炫丽,要多优雅有多优雅,真的有被震撼到,最近项目要求需要画图,考虑到matlab虽然博大精深,但却不易上手,貌似网上最近也在盛传“是否matplotlib能取代matlab”的诸多言论,对于一个旁观者和门外汉,我不做评论,我只有一个理念:什么好学用什么。另外,对于语言的学习和掌握,我现在有一个特别明晰的目标,就是以后以Python为主轴,C\C++作为辅助,算法为核心来展开。

半年前就接触Python,但期间由于没有一个特定的目标,东捡一点西捡一点,到头来总是在重复同样的事情。现在觉得需要什么学什么,带有目标地去学习才能提高效率,也才能记忆犹新,废话不多说,本文就简单的说说matplotlib。由于刚入门,也没有什么心得,仅仅是看了matplotlib tutorial的一点笔记记录。由于手册是英文版,所以,本文算是对原文的翻译,但我会完全脱离原文的思路,用自己的思路来写,外加自己的一些引申的东西。在进入主题之前,先看下这个知乎大牛关于如何在论文中画出漂亮的插图的探讨,先目睹一下matplotlib所体现出炫丽与优雅。

简单概念

Numpy 是Python中用于科学计算的一个基本的包(Package),下面来看看Numpy的官方定义:
NumPy is the fundamental package for scientific computing with Python. It contains among other things:

  • a powerful N-dimensional array object
  • sophisticated (broadcasting) functions
  • tools for integrating C/C++ and Fortran code
  • useful linear algebra, Fourier transform, and random number capabilities

简单的理解Numpy就是:其为数值定义了特定的结构和规则,方便对不同的数值,甚至复杂的数值进行运算(这里说的数值是广义上的),如多维数组结构等。

最近在写Python的一些小程序,由于没有系统地学习过Python的语法及编码风格,在编码规范上栽了几个跟头。先看看我遇到的这两个问题,接着引出Python的编码规范。

缩进问题

缩进是Python中最重要的,也是最容易出错的细节,这个对于每个初学者都要牢记于心并养成习惯,我的问题出在,从一个文本文档拷贝一段代码到一个IDE的时候,出现了如下的两个错误。

IndentationError: unindent does not match any outer indentation level 
IndentationError:expected an indented block  

特殊符号的打印方法

打印单引号:print (“‘’”)
打印双引号:print (‘“”‘)
打印换行符:print (‘\n’)
打印反斜杠:print (‘\‘)

总结:一般情况下单引号和双引号的作用都是相同的.