# 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. 分析http协议和高并发网站架构

    案例任务名称 分析http协议和高并发网站架构 案例训练目标 深入理解http协议的工作原理 掌握http协议的分析方法 包含技能点 搭建web服务器 编辑简单的html页面并上传到服务器 使用wir ...

  2. java内部类对象使用.this,.new

    public class InnerClass { class Content { private int i; public int getVlaue() { return i; } } class ...

  3. ES6模板字符串及字符串的扩展方法

    一.ES6模板字符串 传统定义字符串的方式是: const str='hello es2015,this is a string' ES6新增了一种定义字符串的方式用反引号进行标识 const str ...

  4. Hbase之过滤器的使用

    一.过滤器概念 基础API中的查询操作在面对大量数据的时候是非常物无力的,这里Hbase提供了高级的查询方法:Filter(过滤器).过滤器可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hba ...

  5. 风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE

    风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http:/ ...

  6. Angular入门到精通系列教程(7)- 组件(@Component)基本知识

    1. 概述 2. 创建Component 组件模板 视图封装模式 特殊的选择器 :host inline-styles 3. 总结 环境: Angular CLI: 11.0.6 Angular: 1 ...

  7. VRay for SketchUp渲染图黑原因及解决方案

    很多人都遇到用Vray for SketchUp云渲染的时候,渲染出来的图片是全黑或者是局部是黑色, 这是什么原因呢? 1.有一种情况是,SketchUp的文件储存机制和其他的软件有些不同,它是把模型 ...

  8. 【Linux】kali 安装 python3 和 pip3(亲测有效)

    [Linux]kali 安装 python3 和 pip3 引言:   在使用kali的时候,经常会用到各种工具以及脚本,而大多数脚本都是以python编写的,但是烦就烦在python有2个版本,有些 ...

  9. python常见题型

    语言特性 1. 谈谈对 Python 和其他语言的区别 2. 简述解释型和编译型编程语言 3. Python 的解释器种类以及相关特点? 4. Python3 和 Python2 的区别? 5. Py ...

  10. .NET Core部署到linux(CentOS)最全解决方案,常规篇

    本文为大家介绍使用 .NET Core部署到Linux服务器的方法,通过本文你将了解到Linux在虚拟机下的安装.Xshell,Xftp的使用方法.git在linux下的交互使用以及.net core ...