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学习笔记一】 转载请注明
相关文章:
发表新的评论
文章分类
文章归档
标签
deb ,
,
蓝屏 ,
select ,
html5 ,
tomcat ,
gcc ,
ajax ,
apt-get update ,
选择 ,
js加密 ,
java ,
工作 ,
ocr ,
AngularJs ,
感慨 ,
work ,
click ,
javascript ,
反向代理 ,
ip查询 ,
空间查询 ,
word ,
ECS服务器 ,
centos ,
杂 ,
StartupWMClass ,
前端 ,
js ,
vmdk ,
感概 ,
select2 ,
virtualbox ,
gg代理 ,
share ,
seo ,
风筝 ,
email ,
ASR ,
转换 ,
cool ,
activiti-ui ,
喵小凡 ,
@PropertySource ,
ckeiditor ,
网站攻击 ,
SRILM ,
风景 ,
plugin ,
vdi ,
扩容 ,
chorme ,
阿里云 ,
KALDI ,
num ,
packer2 ,
pic ,
gg镜像 ,
win8.1 ,
ecs ,
mysql ,
Ubuntu ,
快递查询 ,
nginx ,
ubuntu ,
swap ,
maven ,
entropy_avail ,
tencent ,
语音识别 ,
prerender ,
xfce4 ,
进度条 ,
存储过程 ,
activiti ,
熵 ,
日出 ,
练笔 ,
虞美人 ,
nodejs ,
词 ,
demo ,
jquery ,
random ,
linux ,
cat ,
bootstrapValidator ,
angularJs ,
live ,
on ,
gg ,
雪 ,
婚姻 ,
景色 ,
@Autowired ,
pdf ,
emqttd ,
优化 ,
thchs30 ,
opencv ,