Python高级

Python高级 面向对象编程 以一个例子来说明面向过程和面向对象在程序流程上的不同之处 假设我们要处理学生的成绩表,表示学生的成绩,面向过程的程序可以用dict表示: std1 = { 'name': 'Michael', 'score': 98 } std2 = { 'name': 'Bob', 'score': 81 } 而处理学生成绩可以通过函数实现,比如打印学生的成绩: def print_score(std): print('%s: %s' % (std['name'], std['score'])) 面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有name和score这两个属性(Property)。如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后,给对象发一个print_score消息,让对象自己把自己的数据打印出来 class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) 给对象发消息实际上就是调用对象对应的关联函数,我们称之为对象的方法(Method)。面向对象的程序写出来就像这样: bart = Student('Bart Simpson', 59) lisa = Student('Lisa Simpson', 87) bart.print_score() lisa.print_score() 类和实例 类是抽象的模板,实例是类创建的一个个具体的“对象” 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数 定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,没有合适的继承类,就使用object类,是所有类最终都会继承的类 由于类可以起到模板的作用,因此,在创建实例的时候,把我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:...

Python中级

Python中级使用 函数 调用函数 参数可以多个 >>> max(1, 2) 2 >>> max(2, 3, 1, -5) 3 参数类型需要一致 >>> abs('a') TypeError: bad operand type for abs(): 'str' 函数调用 >>> abs(100) 100 >>> abs(-20) 20 数据类型转换 >>> int('123') 123 >>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> str(100) '100' >>> bool(1) True >>> bool('') False 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量 >>> a = abs # 变量a指向abs函数 >>> a(-1) # 所以也可以通过a调用abs函数 1 定义函数 要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回 def my_abs(x): if x >= 0: return x else: return -x print(my_abs(-99)) 空函数:定义一个什么事也不做的空函数,可以用pass语句...

Python基本

Python基础语法 Python基础 # print absolute value of an integer: a = 100 if a >= 0: print(a) else: print(-a) Python的语法比较简单 #开头的语句是注释 当语句以冒号:结尾时,缩进的语句视为代码块 缩进实用四个空格的缩进 议input 用input()读取用户的输入 birth = input('birth: ') if birth < 2000: print('00前') TypeError: unorderable types: str() > int() 因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数 s = input('birth: ') birth = int(s) if birth < 2000: print('00前') 可以得到正确地结果 议不可变对象:str是不变对象,list是可变对象 对于可变对象,比如list >>> a = ['c', 'b', 'a'] >>> a.sort() >>> a ['a', 'b', 'c'] 对于不可变对象,比如str...