# 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. Qt学习笔记-更高级的文本编辑器-完善第一版-gif动画

    现在的浏览器大多都有动作图标,现在我们也为浏览器加上图标. 在网上搜索到了几个ico的图标.现在直接拿来用. 首先创建资源文件. 在工程名上鼠标右键,选择add new 然后再选择 Qt Resour ...

  2. mysql远程访问被拒绝问题

    远程连接MySql数据库时: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 远 ...

  3. JavaScript入门-学习笔记(二)

    关于js变量 变量,就是一个用来存储数据的容器 一般来说,我们的变量都是可以得先声明,再使用,就像是一个东西先必须存在,才能看得见摸得着.然而在js里(es5),可以先使用,后声明. a = 100; ...

  4. 手写实现JDK的动态代理

    Person接口 package com.zhoucong.proxy.jdk; public interface Person { // 寻找真爱 void findlove(); } 人物实现类 ...

  5. sql server 用触发器记录增删改操作(转载)

    数据库结构: CREATE TABLE [dbo].[cg_tz_log] ( [logid] int NOT NULL IDENTITY(1,1) , operate varchar(10), -- ...

  6. JVM-03

    目录 1.1 新生代垃圾收集器 1.1.1 Serial 垃圾收集器(单线程) 1.1.2 ParNew 垃圾收集器(多线程) 1.1.3 Parallel Scavenge 垃圾收集器(多线程) 2 ...

  7. 【Flutter】可滚动组件之GridView

    前言 GridView可以构建一个二维网格列表.需要关注的是gridDelegate参数,类型是SliverGridDelegate,它的作用是控制GridView子组件如何排列(layout).Sl ...

  8. 【Oracle】Oracle 10g下载路径

    ORACLE 10g下载地址 下载方法: 直接复制下面的链接,打开迅雷,自动会识别下载的内容 Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise ...

  9. 【Oracle】instr()函数详解

    1)instr()函数的格式  (俗称:字符查找函数) 格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串) 格式二:instr( strin ...

  10. 在Jetbrain IDE中自定义TODO功能

    好的IDE能为开发以及学习源码带来效率的提升,今天要介绍的就是Jetbrain家族中IDE自带的TODO功能,我认为利用好它,能够大大的提升阅读源码的效率. 假设我现在需要去阅读源代码,看了半天我终于 ...