设为首页 收藏本站
查看: 1416|回复: 0

[经验分享] Python入门笔记(2):基础(上)

[复制链接]

尚未签到

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


1.工具准备  这个在上一章学习笔记中已经做好了
  2.资料准备
  《Python 核心编程》
Python官方文档
博客园、CSDN等社区
  3.入门教程准备
  大约在六月份之前完成Python入门笔记。
  4.心理准备
  关于如何学好一门新的编程语言,这里推荐阅读:http://www.iyunv.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)
  常见的换行符,在学其他编程语言中经常看到。
DSC0000.png
  3、反斜线(\)继续上一行
  也就是对一行一个语句的隔行,针对一些过长的语句可使用反斜杠\来分解成多行,如:



1 if a>0 and \
2 b>> 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语句,即没有缩进的代码,在模块被导入时就会执行。

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58989-1-1.html 上篇帖子: 初识Python(一) 下篇帖子: [Python] Python 虚拟机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表