学习的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: BeginMan5 '''6 "this is a test module"             #模块文档7 import os                           #导入模块8 import sys9 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学习--基础上相关推荐

  1. Python学习-基础介绍

    Python学习-基础介绍 Python基本语法介绍 变量 数据类型 列表 list 添加 删除 统计分析 切片器 set 集合 添加 判断是否存在 删除 数组 array 运算符 控制语句 if/e ...

  2. Python学习-基础篇14 Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  3. Python学习基础方便查询

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. python学习基础篇Day02(P11~~23)

    b站达内python课学习笔记 P11 Python基础-2.1 课程回顾 一.复习 python 免费,开源,跨平台,动态,面向对象的编程语言 执行方式 交互式 文件式 执行过程 源代码-编译-&g ...

  5. 我们为什么不能只相信建立在深度学习基础上的人工智能系统

    来源:简书 本文摘自: https://www.jianshu.com/p/55e1abcd896d Gary Marcus介绍了如何实现通用智能以及为什么通用智能可能会让机器更安全. 加里•马库斯( ...

  6. Python学习基础必备知识点:字典dict详解

    取键值 1.Python 字典 setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None. get() 和 setde ...

  7. [转载] python学习-基础教程、深度学习

    参考链接: 在Python中使用NLTK对停用词进行语音标记 人工智能学习线路图 Python教程 Python 教程Python 简介Python 环境搭建Python 中文编码Python 基础语 ...

  8. Python 学习 --- 基础知识

    第一章 1.python于1989年底由范.罗萨姆始创.是一种面向对象的解释型语言. 第二章 python起步 1.输出语句print. print和%结合使用,实现字符串的替换,与C语言中的prti ...

  9. python学习--基础

    学习廖雪峰老师的Python记录的笔记 一 输入输出 输入 input() 输出 print # print ('abc', 'hello', 'world') name = input('pleas ...

最新文章

  1. Python基础02-Python基础
  2. 初步建立了完整AI产业链,我国AI域累计融资世界第一
  3. Java知识系统回顾整理01基础04操作符07Scanner
  4. (57)模拟线程切换
  5. 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
  6. php数组指定键名,查找数组中指定键名的值_PHP教程
  7. .NET 6 预览版 7 发布--(最后一个预览版)
  8. 希望我在开始第一个机器学习项目之前就了解的那些事儿
  9. Qt——P5 命名规范及快捷键
  10. sql转java对象_关于hibernate中使用sql语句时,类对象的转换问题。
  11. html/jsp如何固定图像的大小
  12. springboot项目elasticsearch6.x transportClient切换为restHighLevelClient(包含restClient)
  13. SDN是什么东东???
  14. python加密狗的制作_如何使用U盘制作Windows系统开机加密狗图文教程
  15. 在国企做程序员怎么样?
  16. 关于程序新手入行的分析与看法
  17. 雪碧新年神兽主题的观后
  18. 训练赛1_E_Lawnmower
  19. 【3】一铭操作系统初体验,安装ope…
  20. Linux 硬盘分区及挂载

热门文章

  1. 【集训心得】在真哥强迫下不得不写的总结
  2. I/O流的概念和流类库的结构
  3. unix改变shell显示颜色
  4. 干货丨一组图详解元数据、主数据与参考数据
  5. erlang mnesia数据库简单应用
  6. .net你不行——是你的父亲把你封装的太死,还是你的子孙们太懒,未把你发扬光大。...
  7. C#_获取 SQL服务器列表
  8. 多表联合查询存储过程
  9. 运营商与SP再次博弈手机广告
  10. Eval.cs的改进版 动态编译类,可以计算表达式,也可以调用系统中的类