您的位置:首页 > 编程语言 > Python开发

Python 快速入门

2014-02-28 22:53 417 查看


1.Python语句中一些基本的规则和特殊字符




2.变量

  变量无需事先声明,变量一旦被赋值就可以使用它;变量无需指定类型,对象的类型和内存占用都是运行时确定的,变量都是动态类型,无需指定变量的类型。
     
     var = 1
         print var

         var = "hello"
         print var

注意:程序员不用关心内存的管理,Python解释器承担内存管理的复杂任务,变量名会被回收。
     del语句能够直接释放资源

3.导入模块

import sys
sys.stdout.write('hello world!\n')
print sys.platform
print sys.version

import PersonClass
s = PersonClass.Student("zhangzhe",25,60,2)
s.speak()

import PersonClass as Test
s = Test.Student("zhanghze",23,32,2)
s.speak()

from PersonClass import Student
s = Student("zhangzhe",25,60,2)
s.speak()

4.Pyhon新增的内建函数



 ls1 = range(2,10,2)

 print ls1       #[2, 4, 6, 8]

5.注释
#这是一段注释
#也可以在模块、类或者函数的起始添加一个字符串,起到在线文档的功能,这是Java程序员非常熟悉的一个特性。

def foo():
    "This is a doc string."
    print "foo funtion called."
    return True

6.数字

  


     

7.字符串
     先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1
= "hello,world" 
    如果要写成多行,那么就要使用\ (“连行符”)吧,如:
     s2 = "hello,\ 
     world" 
     s2与s1是一样的。如果你用3个双引号的话,就可以直接写了,如下: 
     s3 = """hello, 
     world, 
     hahaha.""",那么s3实际上就是"hello,\nworld,\nhahaha.", 注意“\n”,
     所以, 如果你的字符串里\n很多,你又不想在字符串中用\n的话,那么就可以使用3个双 
     引号。而且使用3个双引号还可以在字符串中增加注释,如下: 
     s3 = """hello, #hoho, this is hello, 在3个双引号的字符串内可以有注释哦 
     world,          #hoho, this is world 
     hahaha."”" 

     这就是3个双引号和1个双引号表示字符串的区别了,3个双引号与1个单引号的区别也是和这个一样的,实际上python支持
    单引号是有原因的,下面我来比较1个单引号和 1个双引号的区别。 当我用单引号来表示一个字符串时,如果要表示 Let's go 这个字符串,必须这样: s4 = 'Let\'s go',注意没有,字符串中有一个',而字符串又是用'来表示,所以 这个时候就要使用转义符 \ (\,转义符应该知道吧), 如果你的字符串中有一大堆 的转义符,看起来肯定不舒服,python也很好的解决了这个问题,如下: s5 = "Let's go" 这时,我们看,python知道你是用 " 来表示字符串,所以python就把字符串中的那 个单引号
' , 当成普通的字符处理了,是不是很简单。 对于双引号,也是一样的,下面举个例子 s6 = 'I realy like "python"!’ 

8.操作符

算术操作符
        +、-、*、/、//、%、**
        / 进行地板除法:传统除法是指两个操作数都是整型的话,他讲执行地板除法如果两个(取比商小的最大的整数)
        // 浮点数除法:不管操作数是什么类型,浮点数除法总是执行真正的除法。
        **  乘方操作符

比较操作符

逻辑操作符 

9.元组和列表

     列表用[]来表示 元组用()表示  元组可以看作是只读的列表。

10.字典
    字典是Python中的映射数据。用{}来表示
    键:可以是Python中的任意类型的对象 一般是数字和字符串
    值:可以是任意类型的 Python对象 

     m = {'a':1,'b':2,'c':3}

     print (m)
     print(m['a'])
     print(m.get('b'))

     m2= m.copy()
     print (m2)
     m2['a']=100
     print (m2)
     print (m)

     print (m.keys())
     print (m.values())
     print (m.items())

     m.pop('a')
     print (m)

11.代码块及缩进对齐

     代码块通过缩进对齐表达式逻辑,而不是使用大括号。因为没有额外的字符,程序的可读性更高。

12.if语句

     x = -2

     if x < .0:  #如果表达式的值非零或者布尔值为True  则执行if_suit(代码组)

         print "x<0"
     elif x ==0:
         print "x==0"
     else:
         print "x>0"

13.for循环和range()内建函数

   for item in ['hello','world','China']:

        print item,   #加逗号可以在同一行输出
     
     x = 'helo world'
     for c in x:
         print c, 


     x = 'foo'
     for i in range(len(x)):
         print x[i],'(%d)' %i

 

     for index,ch in enumerate(x):
         print ch,'(%d)' %(index)

14.列表解析
 
    可以在一行中使用for循环将所有值放到一个列表当中。
     square=[x*2 for x in range(4)]
     print square

     square=[x**2 for x in range(4)]
     print square

     square=[x*2 for x in range(4) if x%2==0 ]
     print square 

15.文件和内建函数open()和file()
     import pickle
      import struct

      d = {'a':1,'b':2}
       f  =  open('datafile.txt','wb')
       pickle.dump(d,f)
       f.close()

      f = open('datafile.txt','rb')
      e = pickle.load(f)
      print e

      f = open('data.bin','wb')

      data = struct.pack('hhl',1,2,3)
      f.write(data)
      f.close()

      f = open('data.bin','rb')
      data = f.read()
      values = struct.unpack('hhl',data)
      print values

16.错误和异常

try:
     list[2]/0
except IndexError:
     print("indexError")
except ZeroDivisionError:
     print("zeroDivisionError")
else:
     print "no error"
finally:
     print("finally")

#define custom exception
class LengthRequiredException(Exception):
    def __init__(self,length,minLength):
        Exception.__init__(self)
        self.length = length
        self.minLength=minLength

l = [1,2,3,4,5,6]
minLength = 6

try:
     raise LengthRequiredException(len(l),minLength)
except IndexError:
     print("index out of bounds")
except LengthRequiredException:
     print("Length not fit:length is %d required %d")
else:
     print("no exception was raised.")
finally:
     print("finally will be execute”)

class Test(object):
    def __enter__(self):
        print ("enter....")
        return 1

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("exit.....")
        return True

with Test() as t:
   print("t is not the result of test(), it is __enter__ returned")
   print("t is 1, yes, it is {0}".format(t))
   raise NameError("Hi there")
   print("Never here") 


17.函数
    



     def AddMe2Me(x=20):
         return (x + x)

     print AddMe2Me()
     x = 10
     print AddMe2Me(x)
     print AddMe2Me('Python')
     AddMe2Me([1,'abc']) 


18.类
     
     类的私有属性:__private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问,在类内部的方法中使用时 self.__private_attrs

     类的方法,在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数

    私有的类方法,__private_method 两个下划线开头,声明该方法为私有方法,不能在类地外部调用,在类的内部调用slef.__private_methods

   类的专有方法:

__init__  构造函数,在生成对象时调用
__del__   析构函数,释放对象时使用
__repr__ 打印,转换
__setitem__按照索引赋值
__getitem__按照索引获取值

__len__获得长度
__cmp__比较运算
__call__函数调用
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方

  class People:
    "People class doc."
     #attribute
    name = ''
    age  = 0
    __weight = 0

    #method
    def __init__(self,aName,aAge,aWeight):
        self.name = aName
        self.age = aAge
        self.__weight = aWeight

    def speak(self):
        print("%s is speaking:I am %d years old." %(self.name,self.age))

单重继承

class Student(People):
    #attribute
    grade = 10

    #method
    def __init__(self,aName,aAge,aWeight,aGrade):
        People.__init__(self,aName,aAge,aWeight)
        self.grade = aGrade

    def speak(self):
        print("%s is speaking:I am %d years old. I am  in grade %d." %(self.name,self.age,self.grade))

多重继承:需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索,即方法在子类中未找到时,从左到右查找父类中是否包含方法。
class Speaker():
    topic = ' '
    name  = ' '

    def __init__(self,aTopic,aName):
        self.name = aName
        self.topic = aTopic

    def speak(self):
        print("I m %s,I am a speaker!My topic is %s." %(self.name,self.topic))

class Sample(Speaker,Student):

    a  = ''
    def __init__(self,aTopic,aName,aAge,aWeight,aGrade):
        Speaker.__init__(self,aTopic,aName)
        Student.__init__(self,aName,aAge,aWeight,aGrade)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python