python 一步步(一)

参考: 廖雪峰博客

http://www.liaoxuefeng.com/

 

判断 if else; if elif else ;

循环 for x in list;

range(100),产生100的序列数

字典 dict key-value存储  查询 插入 利器

set 存放key值 ,需要list创建  s = set([1,2,3]),特点:无序,无重复集合,可以做交集并集

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
set([2, 3])
>>> s1 | s2
set([1, 2, 3, 4])

 函数:

def 定义函数   

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
      
return 不是必须的,不过仍然有返回值,none
 空函数:
def nop():
    pass

pass-->避免  语法错误

  
def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x

参数类型检查 isinstance();  

可以返回多个值

 

定义函数时,需要确定函数名和参数个数;

如果有必要,可以先对参数的数据类型做检查;

函数体内部可以用return随时返回函数结果;

函数执行完毕也没有return语句时,自动return None

函数可以同时返回多个值,但其实就是一个tuple。

 

参数列表:

Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。

默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误!

要注意定义可变参数和关键字参数的语法:

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

以及调用函数时如何传入可变参数和关键字参数的语法:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})

使用*args**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

 

高级特性:

切片:取list  

方便字符串截取

迭代:

任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。

列表生成式:

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]


>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

  

 

 

  

 

posted @ 2015-12-27 11:43  步步bug  阅读(325)  评论(0编辑  收藏  举报