python基础语法(一)

1、list
列表,是一种有序集合,可以随时添加和删除其中的元素

表达方式:list = [],里面元素的数据类型可以不同,还可以包含另外的list,
当包含另外的list时,可以当成二维数组,
关键方法:
list[-1]:倒数第一个数
list.append():在末尾追加元素;
list.insert(i,data):在索引位置i插入数据data;
list.pop():删除末尾的元素;
list.pop(i):删除指定位置的元素;

2、tuple
元组,与list非常类似,但tuple一旦初始化就不能修改,所以它不再有append(),insert()等方法,但可以使用下标方式访问数据tuple[i]

表达方式:tuple = (),
关注点:
当只有一个元素时,为避免歧义,会加上个逗号,如tuple=(1,)
理解tuple的不可变,当tuple中包含list时,list的指针不可变,list的内容是可以改变的,注意

3、dict
字典,在其他语言也称为map,使用键-值存储

表达方式:dist = {“name”:”ywr”,”age”:”18”}
关键方法:
dist[key]:取值
for key in dist = for key in dist.keys()
for value in dist.values()
for key,value in dist.items()

4、set
集合,只有key,需要提供一个list作为输入集合,

表达方式:myset = set(list)  如list = [1,2,3]
关键方法:
myset.add(key)
myset.remove(key)
myset_1 & myset_2:交集
myset_1 & myset_2:并集

5、*args 与 **kwargs 的区别
*args 表示可以传入不定个非关键字参数
**kwargs 表示可以传入不定个关键字参数

def getArgs(*args):
    for i in range(len(args)):
        print args[i]

    print args       ## 参数列表为一个 tuple

def getKwargs(**kwargs):
    if "name" in kwargs.keys():
        print kwargs["name"]

    print kwargs     ## 参数列表为一个 dict

getArgs("ywr",18)     ## 传参:不定个非关键字参数
getKwargs(name="ywr",age=18)   ## 传参:不定个关键字参数

6、python装饰器语法
装饰器简单来说是装饰原有的函数,加强原有函数的功能,但又不直接修改原有函数的代码。

def decorate(func):               ## 装饰函数,加强原有函数的功能
    def wrapper(*args,**kwargs):
        print "before"
        func(*args,**kwargs)
        print "end"
    return wrapper

## 有种简单的写法,在这上加上 @decorate ,然后直接调用 helloworld("ywr")即可
def helloworld(name):            ## 原有函数
    print "helloworld %s" % name

func = decorate(helloworld)     ## 进行装饰
func("ywr")

##因为python中函数也是对象,可以进行传参并且返回

7、单例模式

def singleton(cls):
    instances = {}      ## 为何只初始化一次 ??

    def _singleton(*args, **kwargs):
        if cls not in instances:
            instances[cls] = cls(*args, **kwargs)
        return instances[cls]

    return _singleton


@singleton                  ## 装饰器语法
class Animal(object):
    def __init__(self,name):
        print name

a = Animal("dog")     ## 初始化为 dog
b = Animal("cat")     ## 因为单例,不再初始化为 cat

print a               ## a 与 b 为同一个对象
print b

print type(Animal)    ## function,类Animal已经被转化为function
print type(a)         ## Animal实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值