Python 快速入门


1.Python语句中一些基本的规则和特殊字符 screenshot.png
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新增的内建函数

screenshot.png


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.数字
screenshot.png


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.函数 screenshot.png
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)

评论关闭