首页 > 代码库 > 《转》python学习--基础上

《转》python学习--基础上

学习的python本来想自己总结,但是发现了一篇不错的大牛的博客,拿来主义,,又被我实践了

关于前两篇如果总结的不详细,因此把他人的转载过来 http://www.cnblogs.com/BeginMan/archive/2013/04/12/3016323.html

一、欲练此功,必先自宫

从现在起,就开始真正地接触她了,或许很多人像我一样,不知道如何去快速掌握一门新的编程语言,今天贴出来一些建议,方便大家看看,这也是学习之前的十分重要的事情。虽然“欲练此功,必先自宫”太夸张,但是在学习之前,肯定要做好准备了。由于工作中使用Python,在工作前一个月就开始学习并投入到实际项目中,时隔一个月的学习,今天重温一遍。我做的准备如下:

1.工具准备

这个在上一章学习笔记中已经做好了

2.资料准备

《Python 核心编程》
 Python官方文档
博客园、CSDN等社区

3.入门教程准备

大约在六月份之前完成Python入门笔记。

4.心理准备

关于如何学好一门新的编程语言,这里推荐阅读:http://www.cnblogs.com/chgaowei/archive/2011/05/29/2061902.html

5.知识框架拆分准备

通过对整个Python学习过程中的框架进行拆分,利用《Python核心编程》一书中,几乎涵盖了所有Python知识点,但是对于像我一样的新手来说,我还是难以掌握她的整个学习框架、流程。如果我们大致看了这一本书,就能细分她的框架,分成模块来学,这样才能做到心中有数。下面是我拆分的框架:(由于我们先从Python基础学习,所以这里不考虑高级部分)

[1]、Python基础部分:

(1).语法基础、(2)、数据类型、(3).Python对象、(4).字符串、元祖和列表、(5).映射和集合、(6).函数

[2]、流程控制

条件和循环

[3]、文件操作

[4]、模块

[5]、面向对象

[6]、异常处理

[7]、环境部署

 

好了,这些准备都到位了,现在就开始学习吧,没事的时候建议看看Python哲学

二、Python语法

我不知道自己之前是如何写第一个Python程序的,貌似是照着《Dive Into Python》这本令人在之前学起来蛋疼的教程中写的。一如既往地,咱们从"helloworld"开始看吧,哈哈,我们学的很多语言都是从helloworld开始的。

>>> 1 + 1               
2
>>> print ‘hello world‘ 
hello world
>>> x = 1               
>>> y = 2
>>> x + y
3

这里例子并不能说明什么语法,但是能让我们熟悉一些,比如,Python 既是 动态类型定义语言 (因为它不使用显示数据类型声明) , 又是 强类型定义语言 (因为一旦一个变量具有一个数据类型, 它实际上就一直是这个类型了) 、一句程序结束后并不不以分号结尾、print 可以输出字符串等。那下面就细致讲解下python语法吧

1、注释

和很多Unix脚本类似,Python的注释语句从#字符开始,如:

# print "hello world"

注意Python的#字符注释只能实现单行注释,或许很多人和我一样好奇,如果要注释掉一百多行代码,那么是不是敲一百多次#呢??毋庸置疑,如果我们这样做,只能说明还是打酱油的雇的帮打酱油的人。

我们可以有如下小技巧:

(1).程序控制法:

在不影响整个程序的情况下,我们可以把一大堆要注释掉的代码段,利用if条件句进行间接注释,也就是if屏蔽了要注释的代码块的执行、可以使用 if False:、if None:、if 0:进行屏蔽处理,如下:

1 在eclipse中:
2 print ‘BeginMan‘    #输出 
3 if False:           #屏蔽,if 后还可以是 0、None等一切布尔值为假的条件
4     print ‘hello world‘
5     print ‘good man‘
6     print ‘sssss‘
7 print ‘ok!‘         #输出

则if 下的代码不会执行,也就没输出了。但是这个技巧呢,最好不要用,可能在很多代码存在的情况下存在潜伏的异常。

(2).编辑器技巧

如果在eclipse下,选中多行,可以使用快捷键ctrl+/注释或取消注释,这个强烈推荐,真是“工欲善其事,必先利其器”啊,对于编辑器,最好是掌握常用的快捷键,才能提高开发效率。

(3).doc string (文档字符串)

1 def foo(params):
2     """print a,b,c and return a """

三重引号(包含单引号又包含双引号)表示一个多行字符串。在开始与结束引号间的所有东西都被视为单个字符串的一部分, 包括硬回车和其它的引号字符。在三重引号中的任何东西都是这个函数的doc string, 它们用来说明函数可以做什么。 如果存在 doc string, 它必须是一个函数要定义的第一个内容( 也就是说, 在冒号后面的第一个内容 )。 在技术上不要求给出函数的 doc string, 但应该这样做。 Python 带来一些额外的动机: doc string 在运行时可作为函数的属性。

2、换行(\n)

常见的换行符,在学其他编程语言中经常看到。

技术分享

 3、反斜线(\)继续上一行

也就是对一行一个语句的隔行,针对一些过长的语句可使用反斜杠\来分解成多行,如:

1 if a>0 and 2 b<0 :
3     print ‘ok!‘

有两种例外情况可以不用反斜杠,一种是:小括号()、中括号[]、花括号{};另外一种是三引号。针对可读性,不建议使用反斜杠。

4、代码缩进

Python 函数没有明显的 begin 和 end, 没有花括号, 用于标函数的开始和结束。 唯一的分隔符是一个冒号 (:), 接着代码本身是缩进的。例子可以参考上面的。注意,码缩进十分严格,如果不按规律办事,不小心的话就会出现语法错误,比如unexpected indent之类的。甚至有时也会出现逻辑错误。

参考:http://www.cnblogs.com/tt-0411/archive/2011/11/11/2245693.html
技术分享 
技术分享

5、使用分号(;)可以在同一行书写多个语句

如;import os; a=123; print a

注意句子末尾不要带;建议不要这样写,因为会大大降低代码的可读性。

6、模块

每个python脚本看做一个模块,磁盘的形式存放,可多次拆分成多个模块。使用import 导入。

三、Python的变量

注意,与C#、Java、C/C++等编程语言不一样,Python的变量没有类型,它的类型是在内存中根据对象所确定的。由于涉及到Python函数部分,在本节先不讲,在后面的部分会有讲解。这一节就首先学学变量赋值。

Python是弱类型,无需明确指定变量类型,赋值的同时会自动声明类型。如:

1 >>> anInt=10
2 >>> astr="Car"
3 >>> aFloat=-1.2+3
4 >>> aList=[1,2,3]
5 >>> aTuple=(‘aa‘,‘ss‘)
6 >>> print anInt,astr,aFloat,aList,aTuple
7 10 Car 1.8 [1, 2, 3] (‘aa‘, ‘ss‘)

我们需要注意以下几点:

1、在Python中是通过对象的引用而不是值来赋值给变量的。

2、赋值操作符主要是"=",同时也可使用增量赋值,如 x+=1。但是没有自增、自减操作符。

3、在C语言中,赋值语句可以当作表达式(可以返回值),但是在Python中赋值语句不会返回值,如下面的就是非法的:

>>> x=1
>>> y=(x=x+1)
SyntaxError: invalid syntax

4、Python支持链式赋值、多重赋值、多元赋值

(1).链式赋值:

>>> y=x=x+1
>>> x,y
(2, 2)

(2).多重赋值

>>> x=y=z=1
>>> x,y,z
(1, 1, 1)

值为1的整型对象被创建,该对象的同一引用被赋值给了x,y,z

(3).多元赋值

为什么叫做多元赋值,在Python核心编程书中说,是作者自己其的名称,因为等号两边对象都是元祖。

>>> x,y,z=1,‘ssss‘,True
>>> x,y,z
(1, ‘ssss‘, True)
x,y,z=1,‘as‘,3
(x,y,z)=1,‘as‘,3
(x,y,z)=(1,‘as‘,3) #推荐

其中,Python变量交换实在太优雅了,如果交换x和y的值,在其他语言,如C,我们或许用一个临时变量来完成工作。但是在Python中,你只需这样做就行了

>>> x,y=y,x
>>> x,y
(‘ssss‘, 1)
四、标识符

首先变量的命名规则跟其他主流语言如C一样,其次,Python关键字、标识符在Python文档中都有,必要时可翻阅。

 五、编码风格
 1 #coding=utf-8                       #编码格式
 2 ‘‘‘
 3 Created on 2013-3-11               
 4 @author: BeginMan
 5 ‘‘‘
 6 "this is a test module"             #模块文档
 7 import os                           #导入模块
 8 import sys
 9 s=True                              #全局变量(globalvariable)
10 class FooClass(object):             #类的定义
11     "fooclass test"                 #类的文档对象
12     classAttribute=10               #类属性 
13     def myFunction(self):           #函数定义
14         "function test"             #函数的文档对象
15         dataAttribute="BeginMan"    #数据属性(实例属性)
16         pass                        
17 
18 if __name__=="__main__":            #主程序
19     inst=FooClass()
20     pass
21     

 这里我们重点是Python的主程序。那么什么是Python的主程序呢,就是说无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。通常这里不会有太多功能性代码,而是执行模式调用不同函数。

 技术分享

时刻记住一个事实,所有模块都有能力来执行代码,最高级别的Python语句,即没有缩进的代码,在模块被导入时就会执行。

 技术分享

其他:

如:垃圾回收机制,使我们更加专注于代码。

 

《转》python学习--基础上