# 7 第七节 函数
# 函数对于编程语言来说是一块重量级的内容。
# 他可以实现或者简化编写的代码。
# 编写好特定功能的函数后,就可以重复调用函数来完成任务。
# 下面我们就用函数的形式来封装前面学过的知识。 # 1> 简单的函数结构
def plus_plus():#<---这是函数名
'''
运算既定的数字加法 #<-----这是函数功能的注释
'''
a = 1 + 1
return a#<-----return代表将a值赋值给plus_plus print(plus_plus())#<-----打印plus_plus
# 输出结果如下:
# 2
# 上面讲的是函数最简单的结构 # 2> 给函数加上参数
# 我们只要稍作修改就可以使plus_plus变成一个加法器。
def plus_plus(a,b):
'''
一个简单的加法器
'''
c = a + b
print(c) plus_plus(2, 4)#默认a = 2,b = 4
# 输出为:6
# 又或使用这样的语句:
# plus_plus(a = 2,b = 4)
# plus_plus(b = 4,a = 2) # 我们再定义一个新的函数
def introduce(name,age,like_foods='hamburgers'):
'''
一个简单的自我介绍
'''
a = 'My name is '
b = 'I am '
c = ' years old. '
d = 'I like '
print(
a +
name.title() +
'. ' +
b +
str(age) +
c +
d +
like_foods +
'. '
) introduce('kitty', 6)
# 输出结果如下:
# My name is Kitty. I am 6 years old. I like hamburgers.
# 其中like_foods是默认为汉堡。我们一般把有默认值的参数置于末尾。
# 如果想修改默认值,只需要如下操作。
introduce('Tom', 8,like_foods='noodles')
# 输出如下:
# My name is Tom. I am 8 years old. I like noodles. # 3> 可选实参
def introduce(name,age,like_foods=''):#给like_foods传入空字符串
'''
一个简单的自我介绍
'''
a = 'My name is '
b = 'I am '
c = ' years old. '
d = 'I like '
if like_foods:#<----如果like_foods不为空,就执行下方,否则执行else。
'''
做一个判断,如果没有输入喜欢的食物就不输出相关语句。
'''
print(
a + name.title() +
'. ' +
b +
str(age) +
c +
d +
like_foods +
'.'
)
else:
print(a +
name.title() +
'. ' +
b +
str(age) +
c
) introduce('lisa', 8)
# 输出结果如下:
# My name is Lisa. I am 8 years old.
introduce('lisa', 8,like_foods='noodles')
# 输出结果如下:
# My name is Lisa. I am 8 years old. I like noodles. # 4> 每个函数最好只有一个功能
# 做个签到模型
def signature_system(did_not_sign_in,already_signed_in):
'''提示签到成功'''
while did_not_sign_in:
signing = did_not_sign_in.pop()
print('\n你好,' + signing.title() + '。签到成功。')
already_signed_in.append(signing) def show_signature(already_signed_in):
'''展示签到列表'''
print('\n已经按时签到的员工:')
for signature in already_signed_in:
print('- ' + signature) a = ['xixi','didi','huanhuan']
b = []
signature_system(a,b)
show_signature(b)
# 代码运行结果如下:
# 你好,Huanhuan。签到成功。 # 你好,Didi。签到成功。 # 你好,Xixi。签到成功。 # 已经按时签到的员工:
# - huanhuan
# - didi
# - xixi # 在以后的编写中,尽量做到单个函数只实现一个具体的内容。这样可以让代码看起来通俗易懂。 # 小技巧:
# 用[:]做复制操作
a = ['xixi','didi','lala']
b = a[:]
print(b)
# 结果如下:
# ['xixi', 'didi', 'lala'] # 5> 设置任意数量的参数
# 用*告诉Python我们传入函数的变量是不确定数量的。
def guest(*b):
print("\n欢迎您们的到来!")
for a in b:
print("- " + a) guest('xixi','didi','huanhuan')
#运行结果如下:
#
# 欢迎您们的到来!
# - xixi
# - didi
# - huanhuan # 将*改为**就可以传入任意数量的字典。 # 自己编写函数时一定要遵循以下编写习惯:
# 1>给函数命名时,只是用小写字母和下划线。
# 2>函数名通俗易懂,最好以其实现的功能为名称。
# 3>每个函数都应该有注释,短注释用''' ''',长注释用下面的格式:
# '''
# xxxx
# '''
# 4>给参数指定默认值时,不要在等号的两边添加空格。
# 5>如果函数包含的参数过多,超过了一行79个字符,则要用下方的格式:
# def function_name(
# parameter_0,parameter_1,parameter_2
# parameter_3,parameter_4,parameter_5):
# '''
# xxxxx
# '''
# 6>函数与函数之间要有两个回车分开。
# 7>至少遵循以上编写原则。

【PY从0到1】第七节 函数的更多相关文章

  1. 【PY从0到1】第二节 字符串和数字

    #本课程都以代码形式呈现.现在进入Python的基础内容的学习. #由于本课程是从0开始分享,所以Python的基础内容是必不可少的.这也是Python量化的必经之路. #下面进入正题. #一般用'# ...

  2. 【PY从0到1】第一节 安装与界面介绍

    本系列是介绍如何用Python进行股票量化交易的课程. 课程内容以记录Python零基础学员从最简单的Python下载及安装开始,到最后能熟练运用Python进行量化交易的专业人员的成长历程.旨在打造 ...

  3. VUE2.0实现购物车和地址选配功能学习第七节

    第七节 卡片选中,设置默认 1.卡片选中html:<li v-for="(item,index) in filterAddress" v-bind:class="{ ...

  4. centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课

    centos Linux下磁盘管理   parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpf ...

  5. Angular 2.0 从0到1 (七)

    第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...

  6. JAVA 从GC日志分析堆内存 第七节

    JAVA 从GC日志分析堆内存 第七节   在上一章中,我们只设置了整个堆的内存大小.但是我们知道,堆又分为了新生代,年老代.他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比 ...

  7. delphi 线程教学第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行

    第七节:在多个线程时空中,把各自的代码塞到一个指定的线程时空运行     以 Ado 为例,常见的方法是拖一个 AdoConnection 在窗口上(或 DataModule 中), 再配合 AdoQ ...

  8. ES6 第七节 ES6中新增的数组知识(1)

    目录 ES6 第七节 ES6中新增的数组知识(1) 第七节 ES6中新增的数组知识(1) JSON数组格式转换 Array.of()方法: find()实例方法: ES6 第七节 ES6中新增的数组知 ...

  9. 基于Extjs的web表单设计器 第七节——取数公式设计之取数公式的使用

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

随机推荐

  1. javaScript编写9*9口诀

    学习html+css+javaScript<!DOCTYPE html> <html> <head> <title>chaoba</title&g ...

  2. CentOS 7 Xinetd服务安装配置

    CentOS 7 Xinetd服务安装配置 目录 CentOS 7 Xinetd服务安装配置 一.Linux守护进程与初始化进程 1. 什么是守护进程 2. 什么是初始化 二.Linux独立启动进程和 ...

  3. ZooKeeper集群“脑裂”

    ZooKeeper 集群节点为什么要部署成奇数ZooKeeper 容错指的是:当宕掉几个ZooKeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样Zoo ...

  4. [新手教程]申请https泛域名解析

    前置准备 教程开始,我们默认相信小伙伴们对基本的域名购买及解析有了一定的认识和实践 一个正常的域名 一台公网服务器 域名解析操作 如:现在我们要设置frps的泛域名解析 设置二级域名 frp.xx.c ...

  5. 风炫安全web安全学习第三十节课 命令执行&代码执行基础

    风炫安全web安全学习第三十节课 命令执行&代码执行基础 代码执行&命令执行 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 远程系统命令执行 ...

  6. 用python做youtube自动化下载器 思路

    目录 0. 思路 1.准备 i.savfrom.net 2. 探索并规划获取方式 i.总览 ii. 获取该网页取到下载url的请求 iii. 在本地获取请求 iv.解析请求结果 v.解析解密后的结果 ...

  7. VMware 安装 Centos7 超详细过程

    https://www.runoob.com/w3cnote/vmware-install-centos7.html centos7安装参考文档 VMware 安装 Centos7 超详细过程 分类  ...

  8. Centos镜像国内最全下载地址

    CentOS 官方下载地址:https://www.centos.org/download/Centos国内下载源http://man.linuxde.net/download/CentOShttp: ...

  9. Mybatis的CRUD 增删改查

    目录 namespace 命名空间 select insert update delete Mybatis 官网: https://mybatis.org/mybatis-3/zh/getting-s ...

  10. C#数组的 Length 和 Count()

    C#数组的 Length 和 Count() C# 数组中 Length 表示数组项的个数,是个属性.而 Count() 也是表示项的个数,是个方法,它的值和 Length 一样.但实际上严格地说, ...