Python学习记录

  • Python 中对类型的判断有三种形式:
    1. if type(L) == type([]): ...
    2. if type(L) == list: ...
    3. i isinstance(L,list): ...   (但是通常在用python编程时不应该出现这种类型判断,即使python支持它,因为它会使程序变得不灵活,非python编程之道。更多的情况是直接面对Object接口,多态往往是最佳的选择。)

 

  • 虽然通常被称为脚本语言,但是Python却并不真的只是“脚本语言”那么简单,它是一门强大的程序设计语言,几乎可以满足你大多数的项目需求。"Object"是它的一个非常强大的特征,但同时也是可选的一个特征:
  • python中定义一个对象的形式如下:
                        View Code
1 class User:
2     def    __init__(self,name,age): #创建的时候初始化,self 就是新创建的对象
3             self.name = name  
4             self.age = age
5     def lastName(self):
6             return self.name.split()[-1]
7     def growUp(self,increment):
8             self.age += increment 

             创建新对象:u = new User('jacob',20)

     访问对象函数:u.lastName()        

     访问对象属性:u.age

      python中的对象和Java 、C++等面向对象语言类似,都是字符串、数字和对这些字符串和数字的操作(类函数)组成的。

  •  dict创建的两种方式:
    • jacob ={'name','jc','age',23,'job','cs'}
    • jacob=dict(name='jc',age=23,job='cs')  

 

  • [...] 表示列表、{...}表示字典(dictionary)、(...)表示元组或者表达式
  • 2//3 等于0    然而 2/3却等于0.6666666...
  • 解释Python中的  a = 3 执行:
      1. 创建一个对象用于存放3
      2. 创建一个变量a
      3. 把变量a只想 存放3的对象 (引用)

               变量没有类型,只是所指向的对象的类型发生变化了。

  • 需要注意的特殊命名规则(或约定):
    1. 以一个下划线开始的名称(_X)将不会被"from module import *" 导入。
    2. 前后都有两个下划线的名称(__X__)是系统定义的名称,对于编译器有特殊的意义。
    3. 以两个下划线开始的名称(__X)是类的局部变量。
    4. 只有一个下划线的名称(_)将会记录最后一个表达式的结果。
  •  重定向输出:
    1. 给sys.stdout 直接赋值。
    2. 简便方式:print(1,2,3,file=xxx);   xxx代表要输出的文件对象,用open打开文件便可获取该对象。
  • 关于If语句:   
         View Code
1 if <test1>:
2      <statements>
3 elif <test2>:
4         <statements>
5 ...
6 else:
7     <statements>
  • python并不存在和Java或者C语言类似的switch/case 语句,但是可以用dict数据结构代替:   
         View Code
1 choice = "ham"
2 print({'spam':1.25,
3             'ham':2.55,
4             'egg':0.55,
5             'bacon':5.65}[choice]
6        )

it is "pythonic":

1 #基于Dictionary的分支调用技巧:
2 branch ={'egg':2.33,'van':8.88,'beer':6.55}
3 choice='egg'
4 if(choice) in branch:
5     print(branch[choice])
6 else:
7     print('Bad choice')
8 #或者:
9 print(branch.get(choice),'Bad choice')
  •  关于while循环:
while <test> :
    <statements>
else:
    <statements>
  •  可以用zip对象创建元组,而zip是可迭代的对象,所以按照常规的做法,可以把它用list包起来,以便输出所有的数据  list(zip(L1,L2))
  • def是可执行的语句,因此下面嵌套定义是成立的:
    def f1()
        X = 88
        def f2()
            printf(X)
        f2()
    
    f1()

     

 

posted on 2013-01-09 13:27  _Jacob  阅读(151)  评论(0编辑  收藏  举报

导航