1.基础语法 ##
- 命令行输入字符串并转化为整数
year = int(raw_input('year:\n'))
- 类的继承
class Parent:
a=3
b='hello'
def __init__(self, a=3, b='hello'): #构造函数
self.a=a
self.b=b
def __del__(self): #析构函数
class Child(Parent):
__c='hello word' #私有变量
自带特殊函数,向对象中添加或者删除属性
getattr(obj, name[, default]) : 访问对象的属性。
hasattr(obj,name) : 检查是否存在一个属性。
setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。
delattr(obj, name) : 删除属性。
issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup)
isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。
- 可以一条语句或者函数返回多个值
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
# 输出了第10个斐波那契数列
print fib(10)
4.列表元素的append向其中添加元素
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
- 列表切片
a = [1, 2, 3]
b = a[:]
6.遍历dict
myD = {1: 'a', 2: 'b'}
for key, value in dict.items(myD):
print key, value
- 判断
score = int(raw_input('input score:\n'))
if score >= 90:
grade = 'A'
elif score >= 60:
grade = 'B'
else:
grade = 'C'
8.迭代器
class Fibs:
def __init__(self):
self.a = 0
self.b = 1
def next(self):
self.a , self.b = self.b , self.a + self.b
return self.a
def __iter__(self):
return self
for f in fibs:
if f > 1000:
print f
break
9 生成器yield:相当于将元素按照list组合
def flatten(nested):
for sublist in nested:
for element in sublist:
yield element