|Python新手小白低级教程|第十九章:函数(1)

文章目录

  • 前言
  • 一、概说
  • 二、方法def简介
    • 1.示例:使用def关键字制作功能函数——找最大最小
    • 2.代码剖析
    • 示例代码Part 1
    • 示例代码Part 2
    • 示例代码Part 3
    • 练习1.1制作函数
  • 三、灵活使用函数
    • 1.制作一种函数,函数名和格式为even_num(a,b),输入a,b,输出a,b中间的所有偶数
  • 四、练习题
    • 2.1封装函数factor(n),输出1到括号里数的阶乘
    • 2.2封装函数u_d(n,m),将n和m中间的数字倒序输出
  • 总结
  • Test Key
    • 1.1
    • 2.1
    • 2.2

前言

我之前预告过我会讲解turtle库,所以我暂时没有时间写我们的Python基础教程了,在这里对粉丝朋友们深表歉意。今天,让我们继续学习Python新手小白入门教程吧~

一、概说

函数是什么,想必大家都认识。比如print()打印函数,lower()纯小写储存函数,upper()纯大写储存函数。那么,今天为什么要学习这么简单的东西呢?其实,大家想一想,函数符号和其他关键字(比如for,while)的区别是什么?它们有属于自己的功能。其实,这些函数都是用代码封装起来的。换句话说,只要学会了封装的过程,我们就能自己制作函数,自己独享功能函数。
所以,这节课我们就要学习封装函数的过程。

二、方法def简介

def就是用来管封装函数的。因为Python是由C的基础编译而成的一种语言,所以有一些函数的规则也是用C编译Python的时候制作而成的。
这么神奇的关键字,大家一定非常想要掌握它吧?不要急,我慢慢来告诉你们。

1.示例:使用def关键字制作功能函数——找最大最小

这两个函数我们应该见过,是max和min。不过,我们要亲自体验一下他们的制作过程。
我先给大家展示一下找最大的方式,到时候我给大家自己练最小的方式。
最大的方式非常简单,我们先命名一个函数叫做“max_s()”
首先,def的格式是这样:

def 函数名(参数值(,参数值)):功能代码return 返回值#和print()差不多

按照这个格式,我们套着用。

def max_s(a,b):if a < b:return belse:return aprint(max_s(1,3))

这个格式看起来是不是很陌生?不不不,接下来我给大家好好展示一下程序的运行原理

2.代码剖析

其实,上面的代码不是很复杂,我来给大家看看。

def max_s(a,b):if a < b:return belse:return aprint(max_s(1,3))

示例代码Part 1

这是整体代码。我们先来看看第一行:

def max_s(a,b):

这个def关键字的开始就是先建立一个函数名。
重点是后面的max_s(a,b)。这个a,b呢是两个变量名,在函数中我们把他们叫做参数
这个参数呢我们其实可以见过,我们来看看海龟编辑器里的一个例子:
在这里插入图片描述
这个max后面的一堆东西就是参数。我们上面的max_s()函数里面的a和b就是参数。这就是一个简单的变量赋值。下面的比较也用了这两个参数进行对比。

示例代码Part 2

来看看第二个部分:

if a < b:return b
else:return a

这就是函数判断的核心代码。if语句大家都认识,但是下面的return是啥意思?
return,中文意思“返回”。这里的a就是函数建立中的一个很重要的概念:返回值。这里,我们应该这么翻译:如果a<b,那么返回b;反之返回a。
我们新手在这里可以暂时理解为print,只不过要间接使用。
把函数赋值部分介绍完了,接下来就是应用部分。

示例代码Part 3

应用很简单,我们的目的就是输出max_s(a,b)的最大值。所以,大家懂了吗?这就是之前我们学的函数的原理。
当然啊,函数的参数值也不一定要有,比如我们之前学习的**对象+函数()**结构。

接下来,就是练习时间~~~~

练习1.1制作函数

制作函数,功能为输出括号内参数的最小值
这个之前也预告过,大家一起来试试看吧!

三、灵活使用函数

这个内容大家一定要好好记,因为这个内容会关系到以后的复杂编程,为了不重复使用,我们要好好应用。

1.制作一种函数,函数名和格式为even_num(a,b),输入a,b,输出a,b中间的所有偶数

首先,我们先回忆一下怎么做这个程序:
题目:输入a,b,用函数输出a,b之间的所有偶数
这个程序,如果大家好好看过我之前发布的文章,那么就能轻松做出来

num1 = int(input('输入第1个数:'))
num2 = int(input('输入第2个数:'))for i in range(num1,num2 + 1):if i % 2 == 0:print(i)

但是,怎么插入是重难点。

def even_num(num1,num2):for i in range(num1,num2 + 1):if i % 2 == 0:return inum1 = int(input('输入第1个数:'))
num2 = int(input('输入第2个数:'))
print(even_num(num1,num2))

我先给你们源代码了。大家好好分析一下,会发现:我们把for循环的部分插入了def语句,用于函数构造,而代码主部则简单地多。
我们做的函数可以直接在print()内置函数里面使用,所以大家可以直接用。
好了,def语句的基础铺垫到此结束,接下来我们用今天所学的基础知识来连几道题。

四、练习题

2.1封装函数factor(n),输出1到括号里数的阶乘

这道题就要回想一下之前我讲解循环时讲的实操示例。
[记忆模糊的小伙伴,记得看一下我之前发的文章! 网址如下:]
https://editor.csdn.net/md/?articleId=135991543#1_88
提取这个文章里的代码,我们的基础代码长这样:

n = 10
num = 1
while n > 0:num = n * numn = n - 1
print(num)

这还是我们用while循环做的对吧,这次我们要把他插入函数并使用。大家能自己挑战一下吗?加油!

2.2封装函数u_d(n,m),将n和m中间的数字倒序输出

这个有点复杂,大家可以向上面那道题目一样,先有一个循环的大体框架,再深入去编程。
其实我们可以先建一个列表,然后使用方法reverse来使用倒排输出
大家可以试试看!

总结

这节课我们主要学习了函数的封装与应用,你们要好好掌握这一段基础内容哦!下节课,我们会更加深入地学习函数的封装,精彩内容不容错过!

最后,制作不易,别忘了一圈三连,点亮关注哟!

Test Key

1.1

def min_s(a, b):if a > b:return belse:return aprint(min_s(1, 3))

2.1

def factor(n):num = 1while n > 0:num = n * numn = n - 1return num
n = int(input('请输入数字:'))
print(factor(n))

2.2

def u_d(n, m):result = ""for i in range(m-1, n, -1):result += str(i)return resultn = int(input())
m = int(input())
print(u_d(n, m))  # 输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777971.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——单向链表和双向链表的实现(C语言版)

目录 前言 1. 链表 1.1 链表的概念及结构 1.2 链表的分类 2. 单链表接口实现 2.1 数据结构设计与接口函数声明 2.2 创建结点&#xff0c;打印&#xff0c;查找 2.3 尾插&#xff0c;头插&#xff0c;尾删&#xff0c;头删 2.4 插入或删除 2.4.1在指定位置后 2.4.2在…

防疫物资管理新篇章:Java+SpringBoot实战

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

初识String类和String类的拓展

前言&#xff1a;以下是Java中String类的知识点与一些常见问题和注意事项&#xff0c;如有讲解不妥&#xff0c;请见谅&#xff01; 目录 1.String类的创建及常见API &#xff08;1&#xff09;String类的四种创建方式&#xff1a; 补充&#xff1a;字符串转化成字符数组 / …

038 什么是面向对象

面向过程&面向对象 什么是面向对象 现实世界中的事物、类、对象之间的关系 在我们想通过计算机解决一个具体问题的时候&#xff0c;我们可以研究与问题有关事物的共性&#xff0c;比如我在观察了大量的杯子后得出一些结论&#xff1a;杯子都应该有材质、颜色、尺寸、形状这…

Docker 容器网络:C++ 客户端 — 服务器应用程序。

一、说明 在下面的文章中&#xff0c; 将向您概述 docker 容器之间的通信。docker 通信的验证将通过运行 C 客户端-服务器应用程序和标准“ping”命令来执行。将构建并运行两个单独的 Docker 映像。 由于我会关注 docker 网络方面&#xff0c;因此不会提供 C 详细信息。…

LeetCode-第15题-三叔之和

1.题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

1899_野火FreeRTOS教程阅读笔记_任务创建

1899_野火FreeRTOS教程阅读笔记_任务创建 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 关于这部分&#xff0c;从一般前后台程序到RTOS的任务描述了很多。但是我觉得这本书的这部分描述没有描述到关键的信息点。其实&#xff0c;RTOS存在的一个主要的目…

MySQL篇----第八篇

系列文章目录 文章目录 系列文章目录前言一、存储过程优化思路二、触发器(一段能自动执行的程序)三、数据库并发策略四、MySQL 中有哪几种锁?五、MySQL 中有哪些不同的表格?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳…

创建自己的系统创富法则,做个轻松赚钱的甩手掌柜

一、教程描述 本套系统创富教程&#xff0c;大小744.80M&#xff0c;共有28个文件。 二、教程目录 01.走遍全球四十多个国家&#xff0c;我才发现赚钱的本质如此雷同.mp4 02.靠工资技术赚钱太慢&#xff0c;想赚到自己的第一个一百万的方法是&#xff1f;.mp4 03.不服暴发…

CSP-202112-2-序列查询新解

CSP-202112-2-序列查询新解 【70分思路】 【暴力枚举】按照题目思路遍历一遍f(x)和g(x)&#xff0c;计算error(A)&#xff0c;时间复杂度为O(N)&#xff0c;时间超限。 #include <iostream> using namespace std; int main() {long long n, N, sum 0;cin >> n …

【c++基础】骑士的金币(coin)(NOIP2015)

说明 国王将金币作为奖励&#xff0c;发放给忠诚的骑士。第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;里&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&#xff09;里&#xff0c;每天收到…

微软 CMU - Tag-LLM:将通用大语言模型改用于专业领域

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;https://arxiv.org/abs/2402.05140 Github 地址&#xff1a;https://github.com/sjunhongshen/Tag-LLM 大语言模型&#xff08…

ChatGPT高效提问—prompt常见用法

ChatGPT高效提问—prompt常见用法 1.1 角色扮演 ​ prompt最为常见的用法是ChatGPT进行角色扮演。通常我们在和ChatGPT对话时&#xff0c;最常用的方式是一问一答&#xff0c;把ChatGPT当作一个单纯的“陪聊者”。而当我们通过prompt为ChatGPT赋予角色属性后&#xff0c;即使…

SpringIOC之support模块PropertySourcesPlaceholderConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

LeetCode Python - 6.Z字形变换

文章目录 题目答案运行结果 题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输…

STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍

文章目录 1. 介绍FSMC2. FSMC特点3. Block示意图4. AHB接口4.1 Supported memories and transactionsGeneral transaction rulesConfiguration registers 5. 外部设备地址映射5.1 NOR/PSRAM地址映射将NOR Flash/PSRAM的支持进行封装 5.2 NAND/PC Card地址映射 1. 介绍FSMC 说到…

【正在更新】从零开始认识语音识别:DNN-HMM混合系统语音识别(ASR)模型原理

摘要 | Abstract TO-BE-FILLED 前言 | Introduction 近期想深入了解HMM隐马尔可夫模型和DNN-HMM混合模型&#xff0c;但是尽管网络上有许多关于DNN-HMM的介绍&#xff0c;如李宏毅教授的《深度学习人类语言处理》[1]&#xff0c;一些博主的语音识别系列文章[2]&#xff0c;斯坦…

4核8g服务器能支持多少人访问?- 腾讯云

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线&#xff1f;通用型-4核8G-180G-2000G&#xff0c;2000GB月流量&#xff0c;系统盘为180GB SSD盘&#xff0c;12M公网带宽&#xff0c;下载速度峰值为1536KB/s&#xff0c;即1.5M/秒&#xff0c;假设网站内页平均大小为60KB…

机器学习系列——(十八)K-means聚类

引言 在众多机器学习技术中&#xff0c;K-means聚类以其简洁高效著称&#xff0c;成为了数据分析师和算法工程师手中的利器。无论是在市场细分、社交网络分析&#xff0c;还是图像处理等领域&#xff0c;K-means都扮演着至关重要的角色。本文旨在深入解析K-means聚类的原理、实…

Sodinokibi(REvil)黑客组织发起大规模供应链攻击

前言 Sodinokibi勒索病毒黑客组织获取了远程管理解决方案提供商Kaseya基础设施的访问权限&#xff0c;并使用VSA软件的恶意升级执行程序在企业网络上部署Sodinokibi(REvil)勒索病毒&#xff0c;据报道该事件已经影响了全球数千家公司&#xff0c;相关受害者发布的信息&#xf…