Python的设计哲学和定位


Python的设计哲学是“优雅”、“明确”、“简单”。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“ Python格言”。在Python解释器内运行import this可以获得完整的列表。


  1. 优美胜于丑陋(Python 以编写优美的代码为目标)

  2. 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

  3. 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

  4. 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁,多加注释!)

  5. 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

  6. 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题,一行代码不能超过80个字符,你可以换行或起一个新的逻辑来写)

  7. 可读性很重要(优美的代码是可读的)

  8. 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上),觉对不允许特列必须按照这个规则

  9. 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

  10. 当存在多种可能,不要尝试去猜测!

  11. 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

  12. 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

  13. 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

  14. 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

  15. 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

 
简单的拿php和python做对比:

python是综合性的语言,他不光可以做web开发。他俩的对比应该仅限于web开发方向。不见其phpweb开发别python好,php是先入为主,python的web框架在2000才有的比较晚了;没有相对的好和坏,只有某些方面,哪个更好!

简单的拿C和python做对比:

Python慢,慢的严重,慢出风格,慢出自信!!!相同的程序Python比C慢几百倍很正常,这是因为他们一个是编译型语言一个是解释型语言。

程序的快慢很大程度上程序员逻辑、SQL、算法,比起O(n)和O(n^2)的区别, 语言间的差异就显得微乎其微

 

Python的编码风格


1、语法
统一缩进:

同一级代码保持一致,所有的Python Code第一行顶格写,然后你的缩进最好保持一定的风格(保持2个空格、4个空格、8个空格,按照官方的推荐保持4个空格规范为好),一开始养成了一个好的编码模式编程起来都会很舒服,所以一定一开始就要严格要求自己。然后最好不要去用table去设置空格,因为在不同的操作系统下,不同的编辑器一个table键表达的空格数都有所不同,所以做好手敲空格!!

有句话说的好"工欲善其事,必先利其器",所以选择一把利器也会对你的编程有很大帮助(推荐:Pycharm、Eclipse with PyDev、Sublime Text、PyScripter等!)


2、变量

  1. 变量名只能是 字母、数字或下划线的任意组合不能有特殊字符(* & ^ & $ # -),也不能有空格;

  2. 第一个字符必须是字母(大小写均可)或者是下划线('_')开头,不能是数字;

  3. 有效的变量举例: _myname、name、file2、file_2、w1w2_xx001

  4. 无效的变量举例: 2file、my name is crh 、mysql-pid

 
small tip:
常量:数值不会变动的
变量:数值会变动的
 
在Python里面其实没有常量一说,所有的数值都可以改变,但是他依然有个常量的概念,但是是人为去定义它的,约定俗成的就是定义一个常量都是大写字母。
 
IDE="PyCharm" 这个IDE你就可以认为它是一个常量,但是你还是可以修改他,但是你既然有意识的把它定义为常量就不要去改动了。

Age=19  这个Age就是一个变量,你可以随时操作修改和引用。
****这里需要注意下,设置变量的时候不能设置python自带的内置方法比如type
以下关键字不能声明为变量名

['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']


3、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号

教你认识Python(二)_java


关于中文
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
 
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文


#!/usr/bin/env python
  
print "你好,世界"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
print "你好,世界"


4、注释
单行注释:#
多行注释:""" 被注释内容"""  or  '''被注释内容'''


Python安装


Windows:

1、下载安装包
    https://www.python.org/downloads/
2、安装
    默认安装路径:C:\python27
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python27,切记前面有分号,如果安装的是Python3.X也是同样的方法,换汤不换药。


Linux  Or Mac:

无需安装,一般自带不是Python2.6就是Python2.7

如果要安装Python3.X的话,Linux下如果你的系统版本较低的话,默认安装源里面是没有的,这样就需要你用源码安装。
如果是Mack系统可以直接:
$ sudo brew install python3

教你认识Python(二)_java_02