前言

本节主要介绍函数,但是函数是由操作组成的。那么就分为两部,一部分为操作一部分为函数。

正文

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 之路 ——普通操作与函数(三)的更多相关文章

  1. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

  2. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  3. 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

    [重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder   1.String String是Java中的一个final ...

  4. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  5. 【重走Android之路】【路线篇(二)】知识点归纳

    [重走Android之路][路线篇(二)]知识点归纳   参考:http://blog.csdn.net/xujing81/article/details/7313507   第一阶段:Java面向对 ...

  6. 【重走Android之路】【番外篇】关于==和equals

    [重走Android之路][番外篇]关于==和equals   在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...

  7. 【重走Android之路】【开篇】序

    [重走Android之路][开篇]   [序]         本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤...也许你觉得我 ...

  8. 【重走Android之路】【路线篇(一)】路线图

    总结归纳了J2SE和Android的知识点,自己制订了一套详细的路线图,其中肯定有考虑不全和不合适的地方,欢迎各位大牛批评指正.   详细路线图如下:  

  9. 走正确的路 - IT业没有护城河 - 机器翻译新锐Deepl

    最近发生了一件很令我震惊的事情:新的一个机器翻译网站出现了 - www.deepl.com (DeepL 或许会成为你今年首选的翻译工具) 机器翻译早就是红海市场了.我就不从1954年IBM发布俄翻英 ...

  10. [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)

    [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...

随机推荐

  1. Java 多线程----- 解决线程安全问题的 方式三:Lock锁 --------jdk 5.0 新增

    1 package bytezero.deadlock; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 解决线程安全 ...

  2. PaddleOCR 服务化部署(基于PaddleHub Serving)

    最近用到百度飞桨的 PaddleOCR,研究了一下PaddleOCR的服务化部署,简单记录一些部署过程和碰到的问题. 基础环境 paddlepaddle 2.5.2 python 3.7 paddle ...

  3. [VueJsDev] 基础知识 - Node.js常用函数

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html Node.js 常用函数 总结常用 node 函数 用的 E ...

  4. FFmpeg命令行之ffplay

    一.简述 ffplay是以FFmpeg框架为基础,外加渲染音视频的库libSDL构建的媒体文件播放器. 二.命令格式 在安装了在命令行中输入如下格式的命令: ffplay [选项] ['输入文件'] ...

  5. linux使用hostapd+dnsmasq管理多张网卡,搭建dns服务器,并发射wifi热点(支持360wifi等等)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2015-03-03 18:37:39 ...

  6. YCProgress自定义百分比进度条

    目录介绍 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介绍 1.本库优势亮点 圆环百分比进度 ...

  7. 记录--Vue中前端导出word文件

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式. 一.提供一个word模板 该方法提供一个wo ...

  8. objective-c之Class底层结构探索

    isa 走位图 在讲 OC->Class 底层类结构之前,先看下下面这张图: 通过isa走位图 得出的结论是: 1,类,父类,元类都包含了 isa, superclass 2,对象isa指向类对 ...

  9. Oracle与Java JDBC数据类型对照

    Oracle Database JDBC开发人员指南和参考 SQL Data Types JDBC Type Codes Standard Java Types Oracle Extension Ja ...

  10. 痞子衡嵌入式:给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启动失败

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启动失败. 最近有一个 RW612 产品 ...