Python学习笔记一
 2019-02-19 16:56:16   252   5   

本文最后更新于天前,文中介绍内容及环境可能已不适用.请谨慎参考.


py文件编码问题

emoji符号或其他编码 显示错误。

SyntaxError: Non-ASCII character '\xf0' in file p2.py on line 4,

#coding=utf-8

 

 

代码块

语句对齐,4空格tab.

 

:分号, 简单理解单个{} 的替代。

if elif else

for item in a:
    if(a>0):
        print('%' % item)
    elif(a<0):
        print(item+"11")
    else:
        print(0)

 

pass空的{}块

if(a):
   pass

 

函数

空函数

#空函数
def test(a):
   pass

 

普通位置参数略,没啥好说,按顺序来,读到啥就是啥。

 

函数默认参数

默认参数及多参数返回


#默认参数,多返回值
def test2(x,y,direct=0):
    if(direct>0):
        return x-4,y-4
    elif(direct<0):
        return x+4,y+4
    else:
        return 0
    
print(test2(1,4,1)[0], test2(1,4),test2(1,4,-2))

#result :(-3, 0, (5, 8))

可变参数

可变参数的函数及 *操作 ,

参数为可变的多个值。


#可变参数,接受参数变为 tuple,不可改变的list
def multiParaFun(*vals):
    num=0
    for v in vals:
        num+=v*v
    return num

#接受多个参数
print(multiParaFun(1,2))
#  *将普通tuple元素 变为可变参数 传入
print(multiParaFun( *(2,3) ))
#  *将普通list元素 变为可变参数 传入
print(multiParaFun( *[1,2,3] ))

 

关键字参数

,参数为 不确定的键值对

#--------------------------
#关键字参数 **,含参数名称的可变参数。 参数变为 dict(hashmap).
def keyParamFun(input,**vals):
    print(input)
    for item in vals.items():
        print (item[0],'%s' % item[1] )

keyParamFun("123",a=1,c=4,dd=5,name="测试")
#  ** 将普通dict==> 变为关键参数 传入
keyParamFun("222",**{"aa":1,'c':4,'dd':5,'name':"测试"})

 

命名关键字参数

命名关键字必须传入,

#--------------------------
#命名关键字参数 *, 星号后接参数,必须含有后续特定参数,否制报错
def testfun(a,b,c,*,name,sex):
    print (a,b,c)
    print (name,sex)

testfun(1,2,3,name=3) #error!
testfun(1,2,3,sex=2,name=3) #right
testfun(1,2,3,sex=11,hour=2,name=3)#error!

#--------------------------
#命名关键字参数 *, 星号后接参数,必须含有后续特定参数,否制报错
#含默认参数
def testfun(a,b,c,*,name,sex=1):
    print (a,b,c)
    print (name,sex)

testfun(1,2,3,name=3) #right!
testfun(1,2,3,sex=2,name=3) #right
testfun(1,2,3,sex=11,hour=2,name=3)#error! ,hour无法解析

 

参数的混用

必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这 5 种参数都可以组合使用

除了可变参数无法和命名关键字参数混合,即  *val,与 *,val 不能一起使用.

 

参数顺序:

必选参数、默认参数、可变参数/命名关键字参数和关键字参数

#--------
#混合参数,位置参数,可变参数,关键参数
def hunhefun(a,b,c,*vals,**kw):
    print (a,b,c)
    print("/",end=" ")
    for v in vals:
        print(v,end=" ")
    print("/")
    for key in kw.items():
        print(key)


hunhefun(1,3,23,"a","b",name="1",num=54)
#效果相同 
hunhefun(*(1,2,3,"a","b"),**{"name":"1","num":54})

#输出:
1 3 23
/ a b /
('name', '1')
('num', 54)

 

混合二

#--------
#混合参数,位置参数,默认命名关键参数,关键参数
def hunhefun2(a,b,c,*,d=4,**kw):
    print (a,b,c)
    print(d)
    for key in kw.items():
        print(key)

hunhefun2(1,3,23,d="for",name="1",num=54)
hunhefun2(1,3,23,name="1",num=54)
#效果相同
hunhefun2(*(1,3,23),**{"name":"1","num":54})

 

对于任意函数,都可以通过类似 func(*args, **kw)的形式调用它,无论函数是怎么定义的


 2019-02-21 13:27:20 
 0

  本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵 固定链接: 【Python学习笔记一】 转载请注明



发表新的评论
{{s_uid}}   , 欢迎回来.
您的称呼(*必填):
您的邮箱地址(*必填,您的邮箱地址不会公开,仅作为有回复后的消息通知手段):
您的站点地址(选填):
留言:

∑( ° △ °|||)︴

(๑•̀ㅂ•́)و✧
<( ̄) ̄)>
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
╮( ̄▽ ̄)╭
( ̄ε(# ̄)
(⊙ˍ⊙)
( ̄▽ ̄)~*
∑( ° △ °|||)︴

文章分类

可能喜欢 

KxのBook@Copyright 2017- All Rights Reserved
Designed and themed by 野生的喵喵   1624093   44999