python学起来很蛋疼_《转》python学习--基础上

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

一、欲练此功,必先自宫

从现在起,就开始真正地接触她了,或许很多人像我一样,不知道如何去快速掌握一门新的编程语言,今天贴出来一些建议,方便大家看看,这也是学习之前的十分重要的事情。虽然“欲练此功,必先自宫”太夸张,但是在学习之前,肯定要做好准备了。由于工作中使用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语句,即没有缩进的代码,在模块被导入时就会执行。

其他:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值