参数在函数中使用,顾名思义。可选参数就是:这个参数是可选的

也就是可有可无

我们来看一下这个例子:

ver 1:

1.定义一个迭代输出列表元素的函数myPrint

2.参数为 列表

def myPrint(myList):
    for item in myList:
        print(item)

运行测试一下:

myL=['Python','JAVA','C++']

myPrint(myL)

<<< Python
<<< JAVA
<<< C++

ver 2:

现在,在原有myPrint函数的基础上,增加一个功能

使得能够控制输出格式

1.设置参数2

2.当参数2等于0时,直接输出列表元素

3.当参数2等于n时,输出n个空格之后再输出列表元素

def myPrint(myList,level):
    for item in myList:
        for i in range(level):
            print(' ',end='')  #  不明白end=''可以看上一篇关于内建函数的随笔
        print(item)

myL=['HTML','CSS','JavaScript']

#测试1

myPrint(myL,0)

<<<HTML
<<<CSS
<<<JavaScript

#测试2

myPrint(myL,5)  # 5个空格

<<<     HTML
<<<     CSS
<<<     JavaScript

在ver 1 中 myPrint函数只有一个参数1,而ver2中myPrint函数却有参数1和参数2共两个

假如我在代码中大量使用ver1版本时的myPrint函数

因为ver2时已经将其修改

导致之后运行该函数会大量出错

原因是参数错误

myPrint(myList)#这是ver1时的调用方法

myPrint(myList,5)#这是ver2后的调用方法

'''
使用老的调用格式的代码会在该函数更改参数后大量出错
所以这时就需要 可选参数
在ver2修改函数时 可以将参数2设置为可选参数,这样既兼容之前的调用方法
又可以拓张功能
'''

def myPrint(myList,level=0):
    ........    # 省略

将参数2level在定义的时候用’=0‘的形式

就可以将其设置为 可选参数

可有可无

[Python 从入门到放弃] 4. 什么是可选参数的更多相关文章

  1. [Python 从入门到放弃] 6. 文件与异常(二)

    本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...

  2. [Python 从入门到放弃] 1. 列表的基本操作

    ''' 列表 Create By 阅后即焚 On 2018.1.29 ''' 1. 列表的定义 列表看起来好像其它编程语言中的数组,但列表具备更加强大的功能,它是Python完备的集合对象,现在,你可 ...

  3. Python从入门到放弃系列(Django/Flask/爬虫)

    第一篇 Django从入门到放弃 第二篇 Flask 第二篇 爬虫

  4. [Python 从入门到放弃] 3. BIF(内建函数)

    BIF (built-in functions) Python中提供了70多个内建函数,具备大量的现成功能. BIF不需要专门导入,可以直接使用,拿来就用 1.print() # 在屏幕上打印输出 如 ...

  5. Python从入门到放弃

    计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...

  6. [Python 从入门到放弃] 5. 文件与异常(一)

    1.文件操作: 文件操作包含读/写 从文件中读取数据 向文件写入数据 Python中内置了open()方法用于文件操作 (更多关于open()BIF介绍 阅读此篇) 基本模板: 1.获取文件对象 2. ...

  7. python从入门到放弃之进程

    在理解进程之前我们先了解一下什么是进程的概念吧 以下就是我总结的一些基本的进程概念 进程就是正在运行的程序,它是操作系统中,资源分配的最小单位(通俗易懂点也就是电脑给程序分配的一定内存操作空间).资源 ...

  8. python从入门到放弃之anconada真愁人

    原先未使用anconada,用的python2.7,每次install各种包各种问题真的心累 后来装了anconada,安装了python3.6 使用起来比较方便了. 陆续将遇到的问题更新如下~  一 ...

  9. python从入门到放弃之Tensorflow(一)

    Tensorflow使用错误集锦: 错误1 : FutureWarning: Conversion of the second argument of issubdtype from ‘float’ ...

随机推荐

  1. C++编译器详解(二)常见precompiling 指令介绍

    VC++编译器中一些常见precompiling 指令介绍 我们在利用vc6.0 project wizard生成的代码中,经常看到大量的precompiling指令.本文讲解了常见的这些指令的作用 ...

  2. 老树新芽,在ES6下使用Express

    要让Express在ES6下跑起来就不得不用转码器Babel了.首先新建一个在某目录下新建一个项目.然后跳转到这个目录下开始下面的操作. 简单走起 安装babel-cli $ npm install ...

  3. C#-vs2012学习笔记-惊奇于vs的强大和便利

    网站常用功能自动完成,包括网页和数据库.

  4. DeepFace和GAN

    由于换脸技术的影响,现在造假视频的成本越来越低.AI换脸视频也越来越热门,甚至有一些已经达到了以假乱真的程度.虽然有明星反对表示无奈,可是.... 据报道,2018年,arXiv上发布了902篇GAN ...

  5. (单调队列) Bad Hair Day -- POJ -- 3250

    http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissi ...

  6. 一.认识python.变量.数据类型.条件if

    01.万恶之源-python基础 ⼀.python介绍  python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ ...

  7. hadoop的两大核心之一:HDFS总结

    什么是HDFS? hadoop distributed file system(hadoop分布式文件系统) 是一种允许文件通过网络在多台主机上分享的文件系统, 可让多机器上的多用户分享文件和存储空间 ...

  8. 10.DataGrid的特性

  9. C# byte和10进制、16进制相互转换

    var SRMP = new byte[4]; Array.Copy(Encoding.UTF8.GetBytes(1.ToString("x2")), SRMP, Encodin ...

  10. leetcode 152. 乘积最大子序列 java

    题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...