重走py 之路 ——普通操作与函数(三)
前言
本节主要介绍函数,但是函数是由操作组成的。那么就分为两部,一部分为操作一部分为函数。
正文
py世界中的操作。
操作
if:
在学习任何一门语言中,关系if,要关系另外一件事,那就是if是否只能判断bool,还是可以判断其他的,比如说1或者0。
if 1:
print("good");
输出:good.
看了py 中if是对bool进行扩展了。
再来看:
if "":
print("good");
if "123":
print("123good");
输出:"123good"
看了其对空字符的是一个false状态
if None:
print("none");
没有任何输出,那么其对None 是false状态,在这里说明一下py中没有Null,只有None。
那么看下其对列表和集合的态度是怎么样的。
list=[]
a={};
if list:
print("not none");
else:
print("none")
if a:
print("not none");
else:
print("none")
返回两个none,说明其还会根据len来做判断,非常友好的一个东西。
那么在if中或和且是否是我们原来熟悉的&&还有||呢?
在这里说明一下,py的语义化太好了,直接使用and 和or 来说明。
比如说:
list=[]
if 'good' in list:
print("have good");
elif ('not good' in list or 'sleep' in list) and 'name' in list:
print("not good");
上面可以看出else if 用elif来替代。list是否包含某个字符,可以直接用in来操作。
输入:
在前面和上续中,有很多print,也就是输出,那么如何输入呢?
name = input("please say your name:");
print(name);
输入和输出:
please say your name:11
11
在这里说明一点,就是上面name的等于号,一定要有空格,这个py的规范,否则将会出现异常。
其他一些操作:
while 和其他语言一样,但是得记得while后面加:,例如:
while true:
pass
函数
在很多语言中,函数都是非常关键的东西,因为你不可能一行写到尾。
def printName(firstName,lastName):
print("firstName:"+firstName+"lastName:"+lastName);
printName("firstName","lastName");
输出:firstName:firstNamelastName:lastName
那么学了这么多语言,要思考的问题是py到底能不能设置参数默认值,或者能不能显示传参。
def printName(firstName,lastName):
print("firstName:"+firstName+"lastName:"+lastName);
printName(firstName="firstName",lastName="lastName");
事实证明是可以显示传参的,同样也是可以有默认值的。
def printName(firstName,lastName="tom"):
print("firstName:"+firstName+"lastName:"+lastName);
printName(firstName="firstName");
这样就可以。现在我们发现一个问题,那就是printName 在调用的时候没有信息,那么我们需要加上注释:
def printName(firstName,lastName="tom"):
"""
printName 输出名字
args:
firstName string
lastName string
return:
none
"""
print("firstName:"+firstName+"lastName:"+lastName);
printName(firstName="firstName");
那么看下什么效果:

是的,这样对于团队协作来说好太多了。
同样函数值得关注的还有是否可以传递任意数量的实参。
def printName(*name):
"""
printName say name
args:
firstName string
lastName string
return:
none
"""
print("firstName:"+name[0]+"lastName:"+name[1]);
printName("firstName","lastname");
这样似乎就可以了,*name,表示建立一个元组,传递任意的参数将会组成一个元组。
那么任意数量的实参是不是只能是数组呢?如果你在加一个*的话,那么你可以传递字典。
def printName(**name):
"""
printName say name
args:
firstName string
lastName string
return:
none
"""
print(name);
printName(firstName="firstName",lastname="lastname");
输出:{'lastname': 'lastname', 'firstName': 'firstName'}
结
next 类和模块
重走py 之路 ——普通操作与函数(三)的更多相关文章
- 【重走Android之路】【番外篇】有关于null的一些知识点
[重走Android之路][番外篇]有关于null的一些知识点 1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- 【重走Android之路】【路线篇(二)】知识点归纳
[重走Android之路][路线篇(二)]知识点归纳 参考:http://blog.csdn.net/xujing81/article/details/7313507 第一阶段:Java面向对 ...
- 【重走Android之路】【番外篇】关于==和equals
[重走Android之路][番外篇]关于==和equals 在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...
- 【重走Android之路】【开篇】序
[重走Android之路][开篇] [序] 本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤...也许你觉得我 ...
- 【重走Android之路】【路线篇(一)】路线图
总结归纳了J2SE和Android的知识点,自己制订了一套详细的路线图,其中肯定有考虑不全和不合适的地方,欢迎各位大牛批评指正. 详细路线图如下:
- 走正确的路 - IT业没有护城河 - 机器翻译新锐Deepl
最近发生了一件很令我震惊的事情:新的一个机器翻译网站出现了 - www.deepl.com (DeepL 或许会成为你今年首选的翻译工具) 机器翻译早就是红海市场了.我就不从1954年IBM发布俄翻英 ...
- [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)
[Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...
随机推荐
- nginx 代理 sftp转发流量
首先需要nginx安装有 stream模块,使用 nginx -V 查看下是否有 --with-stream,没有使用命令: yum -y install nginx-all-modules.noar ...
- map 简单梳理【GO 基础】
〇.map 简介 map 是一种无序的基于 key-value 的数据结构,Go 语言中的 map 是引用类型,必须初始化才能使用. 其中键可以是任何类型,但值必须是可比较的类型(如整数.字符串.布尔 ...
- @Autowired和@Resource整理
参考,欢迎点击原文:https://www.ixigua.com/6991282608663593508?id=6945836219422999079&logTag=944f6616c791c ...
- 使用Wireshark在RTP流中提取中264数据(针对udp)(转)
调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题.通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行 ...
- 360Linux 运维工程师面试真题
360Linux 运维工程师面试真题 首先我们来看下 360Linux 运维工程师招聘岗位要求: [岗位定义]运维工程师 [岗位薪资]15K-25K [基本要求]北京 / 经验不限 / 本科及以上 / ...
- Sealos 云开发:Laf 出嫁了,与 Sealos 正式结合!
千呼万唤始出来,Laf 云开发最近已正式与 Sealos 融合,入住 Sealos!大家可以登录 Sealos 公有云 体验和使用,现在正式介绍一下 Sealos 云开发. Sealos 云开发是什么 ...
- 记录--前端项目中运行 npm run xxx 的时候发生了什么?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 npm 是 node 捆绑的依赖管理器,常用程度可想而知.那么你每天都在 npm/yarn run 的命令到底是如何运行项目的呢? 前端项 ...
- power quyer 批量合并同一文件夹下数据格式相同的Excel文件
一.需求描述:现在有一批数据格式相同的Excel文件需要把里面的内容合并到同一个Excel的一个sheet里面 二.新建一个叫数据汇总的Excel文件-数据-新建查询-从文件-选择数据存放的文件夹-然 ...
- [Oracle]细节、经验
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131054454 出自[进步* ...
- SpringBoot如何优雅的进行参数校验
写在前面 上一篇文章中我们学会了如何优雅的接收前端参数,传送门 SpringBoot如何优雅的接收前端参数 接收到参数后,接下来要做的就是校验参数的合法性.这一步的重要性就不用多说了. 即使前端已经对 ...