python学习笔记<二>

时间:2023-02-26 21:16:19
#判断判断一个变量是不是字符串 -- isinstance
x = 'abc'
print isinstance(x,str)

#生成器generator-->一边循环一边计算的机制
g = (x*x for x in range(10))
print g
print g.next() #打印下一个数据
for x in g:
print x
#斐波那契
def fib(max):
n,a,b = 0,0,1
while n<max:
print b
a,b = b,a+b
n = n+1
print fib(6)
#在上述函数中,把print改为yield,就是generator

#高阶函数
#函数本身可以赋值给变量,也就是说——变量可以指向函数
f = abs
print f(-10)
#函数作为参数传入


#map map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
def f(x):
return x*x
map(f,[1,2,3,4,5,6,7,8,9])

ls = [1,2,3]
rs = map(str,ls)
print rs
#reduce->reduce把结果继续和序列的下一个元素做累积计算
def add(x,y):
return x+y
res = reduce(add,[1,3,5])
print res

#排序-->底层通过比较,得出-1,0,1的方式来进行排序,如果自定义更改返回值,排序的方式就会改变
r = sorted([1,5,2,3,4,0])
print r

#装饰器-这种在代码运行期间动态增加功能的方式
def myfunc():
print ("myfunc()called.")
f = myfunc()
print f

#偏函数
l = int('12345',base=10)
print l
r = int('110',base = 2)
print r

##练习
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
print i,j,k
#类
class student(object):
def __init__(self,name,score):
self.name = name
self.score = score

def print_score(self):
print '%s:%s' % (self.naem,self.score)
## __表示私有成员


#继承多态
class Animal(object):
def run(self):
print 'Animal is running'
class Dog(Animal):
pass
class Cat(Animal):
pass

dog = Dog()
print dog.run()


#获取对象信息 type()
type(123)
print type(123)

##isinstance()就可以告诉我们类型。
#lower()返回小写的字符串
print 'ACb'.lower()

class Student(object):

def get_score(self):
return self._score

def set_score(self, value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
s =Student()
s.set_score(60)
print s.get_score()\

#异常机制
#try .. except .. finally .. END
#在异常机制中,如果没有错误,expect就不会被执行,但是不管有无错误,finally一定会被执行
try:
print 'try..'
r = 10/0
print 'result',r
except ZeroDivisionError,g:
print 'expecrt',g
finally:
print 'finally..'
print 'END'

try:
print 'try...'
r = 10 / int('a')
print 'result:', r
except ValueError, e:
print 'ValueError:', e
except ZeroDivisionError, e:
print 'ZeroDivisionError:', e
finally:
print 'finally...'
print 'END'