最近看基础,找一个不错的博客
博客地址:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html
以下是我自己的一些记录和笔记
序列:
list 和 tuple 都是有序的,区别是list可变,tuple不可变
a=['a','b','c','d']
print(a[1])
print(a[:2])
print(a[:-1])
print(a[-1:])
print(a[::-1])
关于[::-1]曾经面试吃亏过,问我逆向一个字符串,当时懵逼,自己写了一个函数实现,问我还有简单的方法吗,我说不知道
结果:
b
['a', 'b']
['a', 'b', 'c']
['d']
['d', 'c', 'b', 'a']
循环:
continue
break
函数:
a=1
def xx(a):
a=a+1
return a
print(xx(a))
print(a)
结果:
2
1
函数参数传递基础类型是值传递,内存中复制一份再传给函数
函数参数传递基础类型是值传递,内存中复制一份再传给函数
a=[1,2,3,4,5]
def xx(a):
a[0]=a[0]+1
return a
print(xx(a))
print(a)
结果:
[2, 2, 3, 4, 5]
[2, 2, 3, 4, 5]
函数参数是列表之类是引用传递
面向对象基础概念:
定义一个带属性的类
#定义一个类
class Bird(object):
have_feather = True
way_of_reproduction = "egg"
#实例化类
summer = Bird()
print(summer.way_of_reproduction)
结果;
egg
定义一个带函数的类
#定义一个类
class Bird(object):
#类属性
have_feather = True
way_of_reproduction = "egg"
#类函数
def move(self, dx, dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position
#实例化类
summer = Bird()
print(summer.move(5,8))
结果:
[5, 8]
继承
#定义一个类
class Bird(object):
#类属性
have_feather = True
way_of_reproduction = "egg"
#类函数
def move(self, dx, dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position
#类的继承
class Chicken(Bird):
#定义自身类的属性
way_of_move = "walk"
possible_in_KFC = True
class Oriole(Bird):
way_in_move = "fly"
possible_in_KFC = False
#实例化类
summer = Chicken()
#调用自身类的属性
print(summer.way_of_move)
#调用父类的函数
print(summer.move(5,8))
结果:
walk
[5, 8]
python类可以单继承也可以多继承,这并不矛盾,小明即是人又是学生还是男人,很合理
有些java程序员经常用伦理说明继承问题,一个人只有一个爹吧,多继承是一个人有多个爹,这就不合适吧
单继承 和 多继承 到底哪个合理,反正我没有到这么高的境界来讨论这个问题
类内部函数调用类属性和类方法
#创建一个类
class Human(object):
#类属性
laugh = "hahahaha"
#类函数
def show_laugh(self):
#类函数调用类属性
print(self.laugh)
def laugh_100th(self):
for i in range(5):
#调用类函数
self.show_laugh()
#实例化
li_lei = Human()
li_lei.laugh_100th()
结果:
hahahaha
hahahaha
hahahaha
hahahaha
hahahaha
__init__()函数
#定义一个类
class Bird(object):
#类属性
have_feather = True
way_of_reproduction = "egg"
#类函数
def move(self, dx, dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position
#类的继承
class HappyBird(Bird):
#初始化函数,类似java构造函数
def __init__(self, more_word):
print(more_word)
#实例化
summer = HappyBird("happy,happy!")
结果:
happy,happy!
对象的性质
#创建类
class Human(object):
#初始化
def __init__(self, input_gender):
self.gender = input_gender
def printGender(self):
print(self.gender)
#实例化
li_lei = Human("male")
print(li_lei.gender)
li_lei.printGender()
结果:
male
male
我对于对象性质的理解是对象实例化后才会产生的属性
#创建类
class Human(object):
#初始化
def __init__(self, input_gender):
self.gender = input_gender
def printGender(self):
print(self.gender)
#继承
class Huuman(Human):
def __init__(self, input_gender):
self.gender = input_gender
#子类的函数与父类相同,子类实例化后调用的是子类自己的函数
def printGender(self):
print(self.gender+"! hahahah")
#实例化
li_lei = Huuman("male")
li_lei.printGender()
结果:
male
male! hahahah