python知识点3

来源:互联网 发布:iphone本地阅读软件 编辑:程序博客网 时间:2024/06/05 18:15
1,python中的异常,如下
    >>> try:  #开头
...     raise IndexError("Hello")  #使用raise抛出一个异常
... except IndexError as e:   #捕获异常,并在下面做出操作
...     pass  #这里的pass是一个空操作,通常是在这里做一些恢复性的操作,但是我不会呀,慢慢学吧
...
>>>
2,python 中的函数,使用def来创建函数,例子如下
   >>> def add(x,y):
...     print("{x1} add {y1} is {z1}".format(x1 = x,y1 = y,z1 =x+y))#format之后是小括号,又在这里纠结了半天
...
>>> add(5,6)
5 add 6 is 11
>>>
  函数同c++相同,可以有返回值,这里我是直接打印的,没有返回值
 
 
   python中有接收可变参数的操作,我觉得就是把一堆参数的头地址给传输了过来,以*作为标志
   >>> def varargs(*args):   
...     return args
...
>>> varargs(1,2,3,4,5)
(1, 2, 3, 4, 5)
>>>

下面的例子是参数前面有两个**的操作,教程解释的是可变参数的关键字参数,我里格擦,我只明白了可变参数,关键字怎么用?
>>> def keyword_args(**kwargs):
...     return kwargs
...
>>> keyword_args(big = "foot",loch = "ness")
{'big': 'foot', 'loch': 'ness'}
>>>

可变参数和可变的关键字参数可以一起用,用逗号隔开
刚刚对什么是关键字不太明白,但是敲完这里的代码貌似有点懂了,例子如下

>>> args = (1,2,3,4)
>>> kwargs = {"a":3,"b":4}
>>> all_the_args(*args)
(1, 2, 3, 4)
{}
>>> all_the_args(**kwargs)
()
{'a': 3, 'b': 4}
>>> all_the_args(*args,**kwargs)
(1, 2, 3, 4)
{'a': 3, 'b': 4}
>>>

下面这个函数有点奇怪,好像是函数中套接着函数,另外感觉python中的函数完全是按照空格来识别的,因此不要忘记加空格,形成代码块
>>> def create_adder(x):
...     def adder(y):
...             return x+y
...     return adder
...
>>> add_10 = create_adder(10)
>>> add_10(3)
13
>>>

匿名函数(什么鬼?为什么要匿名)
>>> (lambda x:x > 2)(3)
    True
其中lambda是关键字,不能改为其他的字符,这个函数的意思是参数是否大于2,是则返回True,否则False
    
还有一些内建高阶函数什么的看不懂,感觉类这个教程也是讲的比较模糊,等看下廖雪峰的教程再说

3,模块
    >>> import math #导入一个库,类似java中的import
>>> print(math.sqrt(16))
4.0
>>> from math import ceil,floor#导入特定函数,也可以像java一样导入所有函数,如from math import *,但是不建议这么做(为什么?个人猜测可能是会消耗太多的系统资源,使本来就很慢的python变得更加的慢)
>>> print (ceil(3.7))
4
>>> print (floor(3.7))
3
    
 如果觉得哪个库的名字太长,也可以给他取个别名,如
    >>> import math as m  #以后m就是math的别名了,嘎嘎嘎
    >>> math.sqrt(16)==m.sqrt(16) 
    True   #事实证明确实如此

使用die(模块名)可以查看模块里面的函数和属性
>>> dir(math)
    ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
    >>>

python当然也支持自己写模块,就是自己写一个python文件,然后导入即可

600+行终于看完了,但是还有类和内建高阶函数没看懂,之后再看吧。
0 0
原创粉丝点击