python语法学习笔记

操作list

声明list=[1,2,3,4]

list.append() 在末尾增加一个对象

list.extend([]) 在末尾增加传入list的多个对象

list.insert(0,'obj')在下标为0的位置插入一个对象

list.remove('obj')删除指定对象

del list[0] list.pop(0)删除指定下标的对象

 

类型int和str之间转换

int--->str    

str(int类型数据)转换成10进制的字符串  

hex(int类型数据)转换成16进制的字符串

oct(int类型数据)转换成8进制的字符串

chr(int类型数据) 转换为一个字符

str--->int

int(string类型数据,16) 按十六进制格式解析string类型数据(默认不写为十进制),得到十进制int类型数据

例子:

int('1010101010',2)

682

int('0x12',16)

18

杨辉三角例子:

def is_palindrome(n):
    s = str(n)  
    for i in range(0,len(s)//2):
        if s[i] == s[-i-1] and i == len(s)//2-1:
            return True
    return False

output = filter(is_palindrome, range(1, 1000))
print(list(output))

回文算法

def is_palindrome(n):
    s = str(n)  
    for i in range(0,len(s)//2):
        if s[i] == s[-i-1] and i == len(s)//2-1:
            return True
    return False

output = filter(is_palindrome, range(1, 1000))
print(list(output))

函数参数

1.默认参数

def add_end(L=[]):
    L.append('END')
    return L
>>> add_end()
['END']
>>> add_end()
['END', 'END']
>>> add_end()
['END', 'END', 'END']


def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

>>> add_end()
['END']
>>> add_end()
['END']

def add_end(L=([1,2],)):
    L[0].append(1)
    return L
print(add_end())
print(add_end())
print(add_end())

2.可变参数

def cals(*nums):
    sum=0
    for x in nums:
        sum+=x
    return sum

print(cals(1,2,3,4,123))


def cals(nums):
    sum = 0
    for x in nums:
        sum += x;
    return sum

print(cals([1,23,4,5,5]))

3.命名关键字参数

def person(name,age,**kw):
    print(name,age,kw)

person("zhuqianli",123,city="温州",abc=12312)


def person2(name,age,*,city,abc):
    print(name,age,city,abc)

person2('bob',123,city=1,abc=12)
# person2('asd',123,city=1)

# 有默认值 就可以缺省
def person3(name,age,*,city=1,abc):
    print(name,age,city,abc)

person3(1,2,abc=1)

闭包

def getOneUtil(*num):
    L=[]
    def sum():
        s = 0
        for n in num:
            s += n
        return s
    L.append(sum)
    num = [1, 2, 3, 4]
    L.append(sum)
    return L

util = getOneUtil(1, 2, 3, 5, 5)
util1 = getOneUtil(2, 3, 4, 5, 2, 111)

print(util, util1)
print(util[0](),util[1](), util1[0](), util1[1]())
# [<function getOneUtil.<locals>.sum at 0x0000000001173400>, <function getOneUtil.<locals>.sum at 0x0000000001173400>] [<function getOneUtil.<locals>.sum at 0x0000000001173488>, <function getOneUtil.<locals>.sum at 0x0000000001173488>]
# 10 10 10 10
# 返回函数不是同一个 返回的函数保存外部参数num的引用

def getOneUtil1(*num):
    L=[]
    # 在定义函数的时候 将函数内部的sss赋值成num 这里是外部的num
    def sum(sss=num):
        s = 0
        for n in sss:
            s += n
        return s
    L.append(sum)
    num = [1, 2, 3, 4]
    # 在定义函数的时候 将函数内部的sss赋值成num 这里是内部定义的num
    def sum(sss=num):
        s = 0
        for n in sss:
            s += n
        return s
    L.append(sum)
    return L

util1 = getOneUtil1(1, 2, 3, 5, 5)
util11 = getOneUtil1(2, 3, 4, 5, 2, 111)

print(util1, util11)
print(util1[0](), util1[1](), util11[0](), util11[1]())
# [<function getOneUtil1.<locals>.sum at 0x00000000006E3598>, <function getOneUtil1.<locals>.sum at 0x00000000006E3620>] [<function getOneUtil1.<locals>.sum at 0x00000000006E3488>, <function getOneUtil1.<locals>.sum at 0x00000000006E36A8>]
# 16 10 127 10

转载于:https://my.oschina.net/zhuqianli/blog/876807

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值