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

[经验分享] Python学习笔记《Python核心编程》第2章 快速入门

[复制链接]

尚未签到

发表于 2015-4-23 08:51:58 | 显示全部楼层 |阅读模式
  Guido van Rossum于1989年底创建python;
  Python源文件通常用.py扩展名。Python是按照字节编译的,其结果就是可以生成一种近似机器语言的中间形式。  官网:http://python.org,可以下载相关软件;
  输出:
  1、print语句:程序输出 print ‘hello World’;
  2、下划线 _ 在解释器中表示最后一个表达式的值;
  3、print语句与字符串操作符(%)结合使用,可实现字符串替换功能:     



print “%s is number %d!” % ("Python",1); # %s表示由一个字符串来替换,d%表示由一个整型来替换,f% 表示浮点型来替换
  输入:
  1、raw_input() 内建函数,读取标准输入并读取数据赋值给只定变量;



     >>> user = raw_input("请输入你的名字:")
>>> print user;
  注:内建函数help(),获取一个函数的帮助,如:help(raw_input)
  2、input()只接受数字类型输入;
  注释:
  1、 从 # 开始,直到一行结束都是注释。
  2、 文档字符串特别注释,在模块、类或者函数的起始添加一个字符串,起在线文档功能



      def foo():
"this is a doc string."
return True
  操作符:
  +    -    *    /    //    %    **
  python 有两种除法,单斜杠为传统除法(取比商小的最大整数),双斜杠用作浮点除法(对结果四舍五入)
  双星号(**) 表示乘方操作;
  操作符优先级从高到低为 ** *or/ +-
  比较操作符: <        >=    ==    != or    逻辑操作符  and    or    not



      >>>  2 < 4 and 2==4
False
>>> 2 > 4 or 2 < 4
True
>>> 3 < 4 < 5     #Python 支持这样的表达式相当与  3>> pystr = 'python'
>>> iscool = 'is cool'
>>> pystr[0]        #'p'
>>> pystr[2:5]     #'tho'   不包含后面一位
>>> iscool[-1]      # '!'
>>> pyshr + iscool   # ‘python is cool!’
>>> pyshtr *2         #pythonpython
  列表 和 元组
  列表元素用中括号([])包裹,元素的个数及元素的值可以改变。元组元素用小括号(())包裹,不可以更改,元组是只读列表,通过切片运算([]和[:]) 可以得到子集



      >>>  aList = [1,2,3,4]
>>>  aList[0]    #   1
>>>  aTuple =  ('a','b','c','d')
>>> aTuple[:3]     # ('a','b','c')
  
  字典
  字典是python中的映射数据类型,由键-值对构成,字典元素用大括号({})包裹,类似javascript  中的对象。



      >>>  aDict = {'host':'earth'}     # create dict
>>>  aDict['port'] =  80            # add to dict
>>>  aDict                               # {'host':'earth','port':80}
>>>  aDict.keys()                     #  ['host','port']
>>>  aDict.values()                   #  ['earth',80]
>>>  for key in aDict:
print key,aDict[key]     #  'host'  'earth'   \n    port    80
  代码块及缩进:
  python 通过缩进对齐来表达代码逻辑,而不是大括号。
  if 语句 ( python 中的条件表达式不需要用括号括起来 )。结构如下:



     if  expression:
if_suite


if x < 0:
print "x 小于 0"
  if ... else ... 语句:



if  expression:
if_suite
else:
else_suite
  if ... elif ... else  语句:



     if expression1:
is_suite
elif expression2:
elif_suite
else:
else_suite
  while 循环:(while_suite会被连续不断地循环执行,知道表达式的值变成0或者False)
  while expression:
  while_suite
  for 循环和range() 内建函数
  python 中的 for 循环与传统的for循环不一样,更像foreach迭代。接受可迭代对象作为其参数,每次迭代其中一个元素。



      for item in ['e-mail','net-surfing','homework','chat']:
print item
  输出:  e-mail
          net-surfing
          homework
  chat
  注: print语句默认会给每一行添加一个换行符。只要在print语句的最后加一个逗号(,),就可以改变它的这种行为(会在元素之间自动添加一个空格,print空语句也会输出一个换行符)。也可以将所有的数据放到一处输出------只需要将数据放在格式化操作符右侧的元组或字典中。如:



      who = 'wolf'
what = 'ao!'
print 'we are the',who,'who say',what,what,what,what
>>>   we are the wolf who say ao! ao! ao! ao!
print 'we are this %s who say %s' % (who,(what +' ')*4)
>>>   we are the wolf who say ao! ao! ao! ao!
  也可以让for循环更像传统循环,如下:



      for eachNum in [0,1,2]:
print eachNum,          # 0  1  2
  range()内建函数可以生成计数列表。它接受一个数值范围,生成一个列表:



      for eachNum in range(3):
print  eachNum,        # 0  1  2
  也可以用for迭代一个字符串:



     foo = 'abcd'
for c in foo:
print c,        # a  b  c  d
  range()函数经常和len()函数一起用于字符串索引。



           foo = 'abcd'
for i in range(len(foo)):
print foo,'%d' % i,            # a(0)   b(1)    c(2)    d(3)
  enumerate() 函数:索引与元素同时循环:



for i,ch in enmumerate(foo):
print ch, '(%d)' % i,                  # a(0)   b(1)    c(2)    d(3)
  
  列表解析----可以在一行中使用一个for循环将所有值放到一个列表当中:



      squared = [x**2 for x in range(4)]   #求x的平方
print squared,         #0  1  4  9
sqdEvens = [x**2 for x in range(8) if not x % 2]     #  求x平方中能够被2整除的
print  sqdEens,       # 0  4  16  36
  文件和内建函数open()、 file()
  如何打开文件
   handle = open(file_name,access_mode = 'r')
  file_name 变量为文件的字符串名字,access_mode 打开模式,'r' 表示读取,'w'表示写入,'a'表示添加,'+'表示读写,'b'表示二进制访问。默认值为'r',如果open成功,返回一个对象句柄,后续的操作必须通过此文件句柄进行,如:readlines() 和 close()。



      filename = raw_input("输入文件名:")
fobj = open(filename,'r')
for eachLine in fobj:
print eachLine,
fobj.close()
  错误和异常try-except语句:try之后为管理的代码,except之后的代码组为处理错误的代码



try:
filename = raw_input('enter file name:')
fobj = open(filename,'r')
for eachLine in fobj:
print eachLine,
fobj.close()
except IOError,e:
print 'file open error:',e
  函数,python函数使用小括号(())调用。在调用之前必须先定义,函数没有return语句则返回None对象。python 是通过引用调用的,意味着函数内对参数的改变会影响到原始对象。
  定义函数:
  def function_name([arguments]):
  "optional documentation string"
  function_suite
  简单例子:



      def addMe2Me(x):
"apply + operation to argument"
return (x+x)
  函数调用:  addMe2Me(4.25)          #8.5
  addMe2Me('python')    #pythonpython
  addMe2Me([-1,'abc'])   #[-1,'abc',-1,'abc']
  函数默认参数:    



def foo(debug = True):
'determine if in debug mode with default argument'
if debug:
print 'in debug mode'
   类:
  类的定义-----class关键字定义类,可以提供一个父类或者说基类,如果没有合适的基类,那就使用object作为基类。class行之后是可选的文档字符串、静态成员定义及方法定义。
  class ClassName(base_class[es]):
  "optionl documentation string"
  static_member_declarations
  methiod_declarations



class Fooclass(object):
"""my very first class:Fooclass"""
version = 0.1    #类的静态变量,被以下4个方法共享——__init__()、showname()、showver()、addMe2Me()。
def __init__(self,nm='John Doe'):     #名字开始和结束都有两个下划线的方法是特殊方法,__init__()方法在类实例被创建时自动执行,类似构造函数,执行初始化工作
"""constructor"""
self.name = nm    #类实例的属性   self 是类实例的引用,如javascript中的this
print 'Created a class instance for',nm
def showname(self):
"""显示实例属性和类名"""
print 'Your name is',self.name
print 'My name is', self.__class__.__name__
def showver(self):
"""显示类的静态属性"""
print self.version          # 0.1
def addMe2Me(self,x):
"""参数相加"""
return x + x
  创建类实例
  foo1 = FooClass()    # 不需要用new来创建,和调用函数拥有一样的语法。
  foo1.showver()
  print foo1.addMe2Me(5)
  self.__class__.__name__   表示实例化他的类的名字,self.__class__ 引用实际的类
  python模块:包含可执行代码、函数和类、或者这些东西的组合。
  导入模块:    import module_name
  导入模块后可以通过句点来访问函数和变量:
  import sys
  sys.stdout.write('hello world!')
  实用的函数
  dir([obj])     #显示对象的属性,如果没有提供参数,则显示全局变量的名字
  help([obj])   #显示对象的文档字符串帮助,没提供参数则会进入交互式帮助
  int(obj)       #将一个对象转换为整型
  len(obj)       #返回对象的长度
  open(fn,mode)      #以mode方式打开一个文件名为fn的文件
  range([start,]stop[,step])     #返回一个整数列表,起始值为start,结束值为stop-1,star默认值为0,step默认值为1
  raw_input(str)       #等待用户输入一个字符串,可以提供一个可选的参数用作提示信息。
  str(obj)                #将一个对象转换为字符串
  type(obj)              #返回对象的类型(返回值本省是一type对象!)
  
  

运维网声明 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-59841-1-1.html 上篇帖子: python学习笔记之十:文件和素材 下篇帖子: Python repr() 或str() 函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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