虽然天天都用python,但仔细想想自己对python也没啥了解…pytorch代码都是从github上东抄抄西抄抄然后自己改的,在写其他python代码的时候也是随时百度谷歌…这要是面试的时候问起来python的一些细节答不出来太丢人了啊!此博客用来记录python这个语言的一切,随时补充。
1. Python和其他语言的区别
- Python是解释型语言。这意味着不像C和其他语言,Python运行前不需要编译。
- Python是动态类型的,这意味着你不需要在声明变量时指定类型。你可以先定义x=111,然后 x=”I’m a string”。
- Python是面向对象语言,所有允许定义类并且可以继承和组合。Python没有访问标识如在C++中的public, private, 这就非常信任程序员的素质,相信每个程序员都是“成人”了~
python中的类定义:
class Employee:
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary
- 在Python中,函数是一等公民。这就意味着它们可以被赋值,从其他函数返回值,并且传递函数对象。类不是一等公民。下面详细解释一下Python中的函数对象。
函数也是一个对象,具有属性。作为对象,它还可以赋值给其它对象名,或者作为参数传递。
- Lambda表达式:
func = lambda x,y: x + y
print func(3,4)
- 函数作为参数传递:
def test(f, a, b):
print 'test'
print f(a, b)
test(func, 3, 5)
- map()函数:
map()是Python的内置函数。它的第一个参数是一个函数对象。
re = map((lambda x: x+3),[1,3,5,6])
- filter()函数:
def func(a):
if a > 100:
return True
else:
return False
print filter(func,[10,56,101,500])
- Python跑起来会比编译型语言慢。幸运的是,Python允许使用C扩展写程序,所以瓶颈可以得到处理。Numpy库就是一个很好例子,因为很多代码不是Python直接写的,所以运行很快。
python生成随机数
- 随机整数
- random.randint(a,b):返回随机整数x,a<=x<=b
- random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。
- 随机实数
- random.random( ):返回0到1之间的浮点数
- np.random.randn(10000):生成10000个符合标准正态分布的随机数;np.random.randn((2,4)):生成矩阵大小为(2,4)的标准正态分布随机数。