Python学习笔记

字面意义上的常量
1.Python中有4中数据类型——整数、长整数、浮点数和复数
  a。52.3E-4是浮点数的例子。E标记表示10的幂,在这里,52.3E-4表示52.3 * 10-4
  b。(-5+4j)和(2.3-4.6j)是复数的列子
  c。布尔常量True和False

2.字符串
  a。使用单引号(')。可以用单引号指示字符串,就如同'Quote me on this'这样。所有的空白,即空格和制表符都照原样保留。
  b。使用双引号(")。在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What's your name?"。可以在双引号中使用单引号。
  c。使用三引号('''或""") 。利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。输出时单引号和双引号照原样输出。
  d。转义符。对于一些特殊的符号要当做字符,可以通过在该符号前加'/'来进行转义。在一个字符串中,行末的单独一个反斜杠,表示字符串在下一行继续,而不是开始一个新的行。
  e。自然字符串。如果想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定.
  f。Unicode字符串。在字符串前加上前缀u或U。记住,在处理文本文件的时候使用Unicode字符串。
  g。字符串是不可变的
  h。如果把两个字符串按字面意义相邻放着,他们会被Python自动连接。

变量
1.标示符的命名规则
  a。标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线('_')。
  b。标识符名称的其他部分可以由字母(大写或小写)、下划线('_')或数字(0-9)组成。
  c。标识符名称是对大小写敏感的。
2.数据类型:数和字符串
3.对象:Python把在程序中用到的任何东西都称为对象。
4.声明变量.形式如i=5,使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。

控制流
1.if结构
  if exp1:
      exp2
  elif exp3:
      exp4
  else:
      exp5

2.while结构
  while exp:
 ...
  else:
     ...
  说明:else块可有可无

3.for结构
  for i in range(m,n):
 ...
  else:
 ...
  注意:range函数的默认步长是1,但是可以提供第三个参数表示步长。记住,range向上延伸到第二个数,即它不包含第二个数。
  比如:range(1,5,2),步长是2,得到的值为[1,3],不包括5。else语句可选

4.break和continue
  break语句用来终止循环,哪怕循环还没有结束。如果从for或while中终止,任何循环对应的else都不会执行。
  continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环。

函数
1.函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对括号,括号内可以包含一些变量名,该行以冒号结尾。接下来一块语句,它们是函数体。

2.在函数中可以使用global定义全局变量,global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。

3.默认参数值
  在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。只有在形参表末尾的那些参数可以有默认参数值。如果给参数指定了值,将不采用默认参数值

4.关键参数
  如果某个函数有许多参数,而只想指定其中的一部分,那么可以通过命名来为这些参数赋值——这被称作关键参数。使用名字(关键字)而不是位置来给函数指定实参。
  如:def func(a,b=5,c=10),  函数调用func(c=50,a=100)使用了关键参数,与位置无关

5.return语句
  return语句用来从一个函数返回即跳出函数,也可选从函数返回一个值。
  注意,没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。除非你提供你自己的return语句,每个函数都在结尾暗含有return None语句。pass语句在Python中表示一个空的语句块。

6.文档字符串(DocStrings)
  文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。可以使用__doc__(注意双下划线)调用函数的文档字符串属性(属于函数的名称)。

模块
1.模块的文件名必须以.py为扩展名。引入其它模块使用import model_name。模块中的变量使用'.'号取得,比如sys.argv
  sys.argv变量是一个字符串的列表,sys.argv包含了命令行参数的列表,即使用命令行传递给你的程序的参数。脚本的名称总是sys.argv列表的第一个参数,计数从0开始,即sys.argv[0]

2.from.. import语句
  想要直接输入argv变量到程序中(避免在每次使用它时打sys.),那么可以使用from sys import argv语句。
  通过该语句可以把模块中的变量名和方法名引入,然后在程序中就可直接使用变量名和方法名,而不用采用模块名点取的方式。比如语句from mymodule import sayhi, version,其中sayhi是方法,version是变量在程序中就可直接使用sayhi(),version

3.模块的__name__属性
  每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。可以通过模块的__name__属性完成。如果是'__main__',这说明这个模块被用户单独运行

4.dir()函数
  使用dir函数可以列出模块定义的标识符,标识符有函数、类和变量。

数据结构
  Python中三种内建的数据结构——列表、元组和字典。列表之中的列表不会失去它的身份,要访问列表中的列表,需使用list[][]方式,元组亦是如此。只要是Python,它们就只是使用另一个对象存储的对象。

1.列表(list)——可变的
  列表的定义:列表的项目包含在方括号中,各项目之间使用逗号隔开。可以添加、删除或是搜索列表中的项目。可以在列表中添加任何种类的对象,包括数甚至其他列表。
  常用方法:append(object),sort(),del shoplist[0]

2.元组——不可变的,不能修改元组
  元组通过圆括号中用逗号分割的项目定义。
  含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。含有单个元素的元组,在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。

3.元组与打印输出
  print语句可以使用跟着%符号的项目元组的字符串。这些字符串具备定制的功能。定制让输出满足某种特定的格式。定制可以是%s表示字符串或%d表示整数。元组必须按照相同的顺序来对应这些定制。
  比如:print '%s is %d years old' %(name,age)

3.字典
  键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。记住字典中的键/值对是没有顺序的。
  对字典进行循环:for key,value in dict.items():

4.序列
  列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
  索引的计数从0开始,索引同样可以是负数,这种情况是从序列尾开始计算,[-1]表示最后一个元素。
  切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。shoplist[:]会返回整个序列的拷贝。
  可以用负数做切片。负数用在从序列尾开始计算的位置。shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片。

面向对象编程
1.self
  类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。在定义类的方法是,必须写上self这个参数。

2.类
  使用class语句后跟类名,创建了一个新的类。这后面跟着一个缩进的语句块形成类体。
  使用类名后跟一对圆括号来创建一个对象/实例。

3.类的__init__方法
  __init__方法在类的一个对象被创建时,马上运行。特殊的方法__del__,它在对象消逝的时候被调用。

4.类的变量和对象的变量
  类的变量:由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。
  对象的变量:由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。
  类变量定义:ClassName.var1 = value
  对象变量的定义:self.var2 = value

5.继承
  父类定义
    class SchoolMember:
  pass
  子类定义
    class Teacher(SchoolMember):
 pass

文件操作
  通过创建一个file类的对象来打开一个文件,分别使用file类的read、readline或write方法来恰当地读写文件。对文件的读写能力依赖于你在打开文件时指定的模式。最后,当你完成对文件的操作的时候,你调用close方法来告诉Python我们完成了对文件的使用。模式可以为读模式('r')、写模式('w')或追加模式('a')。不指定模式默认为只读。
  如:f = file('name.txt','w')
      f.write(str)
      f.close()

存储器(类似Java中的序列化)
  Python提供一个标准的模块,称为pickle。使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持久地储存对象。还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多。
  如:import cPickle as p
      file = file(filename,'w')
      p.dump(object,f)
      f.close()
  读取对象 obj = p.load(f)

异常
  使用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
  try:
      ...
  except EorrType:
      ...
  except:
      ...
  except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理所有的错误和异常
  在语句中抛出异常使用raise关键字
  try:
      ...
  finally:
      ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值