你好python!——python中的函数与数据容器

news2024/11/27 8:31:25

一、函数的定义

1.1函数定义语法

1.2函数的参数 

1.2.1参数的传入

python中函数的参数和C语言函数的参数其实一样,他们都是形参,是实参的一份临时拷贝。我们来定义一个加法函数来看看函数的参数传入:

参数之间使用逗号进行分隔。

1.2.2函数的调用

那我们应该如何调用函数呢?如果函数有返回值,我们可以用一个变量来接收函数的值:

1.3函数的返回值

1.3.1函数有返回值

刚才我们讲到函数如果有返回值可以用变量接收,函数的返回值可以是表达式也可以是常量。

1.3.2函数无返回值

在C语言中的函数,没有返回值我们可以直接写成 return; 那么我们在 python 中应该如何定义没有返回值的函数呢?

python 中有个特殊的字面量 ''None'' ,它的类型是:<class'NoneType'>

None 可以直接用 return 返回,效果等同于不写 return 语句。

None的应用场景:

1.用在 if 判断上

    在 if 判断中,None 等同于 False,一般主动返回None,配合 if 判断做相关处理

2.用于声明无内容的变量上

    在C语言中,我们对于无内容的变量可以直接赋初值为0,在 python 中,我们就可以把变量值赋值为 None

 

1.4函数的说明文档

通俗点来说,函数的说明文档就是用注释给每个参数(包括返回值)进行说明,当我们在函数定义中打上多行注释再回车,就会自动显示每一个参数,辅助理解函数的作用:

不要小看这个注释,之所以叫说明文档是因为它真的是个存储信息的文档,当我们再次调用函数的时候,鼠标定格在函数名上,我们的说明文档就会自动浮现:

 二、数据容器

在我看来,python 中的数据容器好像 C语言 中结构体和数组的结合体。数据容器是可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素都可以是任意类型的数据,如字符串、整型、浮点型...

数据容器根据特点的不同,如:
是否支持重复元素
是否可以修改
是否有序,等
分为5类,分别是:
列表 (list)、元组 (tuple) 、字符串 (str)、集合 (set) 、字典 (dict)

2.1list(列表)

2.1.1列表的定义

 列表可以一次存储多个数据,可以为不同的数据类型,支持嵌套。下面我们来写一个实例演示:

2.1.2列表的下标

列表正向的下标和数组下标等同,第一个元素都是0,但是列表可不是只有这点功能,列表也可以反向索引,最后一个元素是-1,倒数第二个为-2...

我们要是想索引元素,应该怎么用呢? 

语法: 列表名[标号]

嵌套列表的下标和数组类似,但是也可以反向索引单个元素。

 2.1.3列表的常用操作(方法)

列表提供很多一系列功能:

插入元素、删除元素、清空列表、修改元素、统计元素个数...这些功能我们都成为列表的方法。

在 python 中,如果把函数定义为 class(类) 的成员,那么函数会称之为:方法

方法和函数功能一样,只是方法的使用格式不同:

查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

修改特定位置的元素值:

功能:直接对指定下标的值进行重新赋值

语法:列表[下标] = 值

插入元素:

功能:在指定的下标位置,插入指定的元素

语法:列表.insert(下标, 元素)

追加元素:

功能:将指定元素追加到列表的尾部

语法:列表.append(元素)

 

功能:将其他数据容器的内容依次追加到列表尾部

语法:列表.extend(其他数据容器)

删除元素:

功能:删除指定下标元素

语法1:del 列表[下标]

语法2:列表.pop(下标)

功能:删除某元素在列表中的第一个匹配项

语法:列表.remove(元素)

清空列表:

功能:清空列表内容

语法:列表.clear()

统计数量:

功能:统计某元素在列表内的数量

语法:列表.count(元素)

 

功能:统计列表内,有多少元素

语法:len(列表)

2.1.4列表的特点

·可以容纳多个元素

·可以容纳不同类型的元素

·数据是有序存储的

·允许重复数据存在

·可以修改

2.2 list(列表)的遍历

2.2.1 while循环

2.2.2 for循环

2.3 tuple(元组)

元组同列表一样,都是可以封装多个不同类型的元素,但是元组一旦定义,就不可以修改。

2.3.1元组的定义

注意:如果元组只有1个元素,这个数据后面要添加逗号

2.3.2元组的下标

元组的下标和列表等同,这里不过多介绍。

2.3.3元组的操作

查找某元素的下标

功能:查找指定元素在元组的下标,如果找不到,报错ValueError

语法:元组.index(元素)

统计数量:

功能:统计某元素在元组内的数量

语法:元组.count(元素)

功能:统计元组内,有多少元素

语法:len(元组)

2.3.4元组的遍历

元组的遍历和列表一样,具有 while 循环和 for 循环

2.3.5元组的特点

·可以容纳多个元素

·可以容纳不同类型的元素

·数据是有序存储的

·允许重复数据存在

·不可以修改(可以修改其嵌套的list中的元素)

2.4 str(字符串)

2.4.1字符串的下标索引

字符串的下标索引与列表一样,这里也不作过多解释

2.4.2字符串的操作

特别注意:字符串的操作在使用时一定要记得加双引号 ""

在C语言中,字符串是一个常量;在python中,字符串同元组一样,是一个无法修改的数据容器

修改指定下标的字符、移除特定下标的字符、追加字符......都是无法实现的,如果必须要做,我们只能通过得到一个新字符串的方法来实现以上功能。

字符串的替换

功能:将字符串1内的全部内容替换为字符串2

语法:字符串.replace(字符串1, 字符串2)

注意:不是修改字符串本身,而是得到了一个新字符串

           字符串可以指大字符串中的某小字符串

字符串的分割

功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中

语法:字符串.split(分隔符字符串)

注意:字符串本身不变,得到一个列表对象

这个功能像不像C语言中的 strtok 函数?

字符串的规整操作

功能:去除前后指定字符串

语法:字符串.strip(字符串)

           如果strip()中没有传入字符串,则默认去除前后空格以及回车符

注意:如果传入的是"32",那么"3"和"2"都会移除,系统是按照单个字符来去除的

           只能去除首尾的对应元素,并不能去除中间的对应元素

查找给定字符的第一个匹配项的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:字符串.index(字符串)

统计数量:

功能:统计某字符串在字符串内的数量

语法:字符串.count(字符串)

功能:统计字符串内,有多少元素

语法:len(字符串)

2.4.2字符串的特点

·只可以存储字符串

·长度任意

·支持下标索引

·允许重复字符串存在

·不可以修改

2.5数据容器(序列)的切片

2.5.1什么是序列

序列是指内容连续有序可使用下标索引的一类数据容器,列表、元组、字符串,均可视为序列

2.5.2 序列的常用操作:切片

功能:从一个序列中,取出一个子序列

语法:序列[起始下标:结束下标:步长]

表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

起始下标:表示从何处开始,可以留空,留空视作从头开始

结束下标(不含该下标元素):表示何处结束,可以留空,留空视作截取到结尾

步长:依次取元素的间隔  
           步长1表示,一个个取元素
           步长2表示,每次跳过1个元素取
           步长N表示,每次跳过N-1个元素取
           步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

注意:此操作不会影响序列本身,而是会得到一个新的序列

2.6 set(集合)

经过前面的学习,我们总结出列表、元组、字符串都是支持重复元素且有序的,但是当我们需要去重处理时,他们就不太合时宜了,所以我们接下来一起学习set(集合),他最大的特点就是不支持重复元素且无序。

2.6.1集合的定义

2.6.2集合的常用操作

因为集合是乱序的,所以集合不支持下标索引访问哦!

添加新元素

功能:将指定元素添加到集合内

语法:集合.add(元素)

结果:集合本身被修改,添加了新元素

移除元素

功能:将指定元素从集合内移除

语法:集合.remove(元素)

结果:集合本身被修改,移除了该元素

随机取出元素

功能:从集合中随机取出一个元素

语法:集合.pop()

结果:会得到一个元素的结果,同时原集合中该元素被移除

清空集合

功能:清空整个集合的元素

语法:集合.clear()

统计集合元素数量

功能:统计集合去重后的元素数量

语法:len(集合)

取出两个元素的差集

功能:取出集合1和集合2的差集

语法:集合1.difference(集合2)

           集合1有而集合2没有的

结果:得到一个新集合,集合1和集合2不变

消除2个集合的差集

功能:对比集合1和集合2,在集合1内删除和集合2相同的元素

语法:集合1.difference_update(集合2)

结果:集合1被修改。集合2不变

合并2个集合

功能:将集合1和集合2合并成新集合(自动去重)

语法:集合1.union(集合2)

结果:得到新集合,集合1和集合2不变

2.6.3集合的遍历

因为集合不支持下标索引,所以不能用 while 循环遍历

2.6.4集合的特点 

·可以容纳多个元素

·可以容纳不同类型的元素

·数据是无序存储的

·不允许重复数据存在

·可以修改

Python就写到这里吧,果然我还是太天真了,学习时间还是不够呀!

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

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

相关文章

在线知识库管理平台zyplayer-doc

什么是 zyplayer-doc &#xff1f; zyplayer-doc 是一款适合团队和个人私有化部署使用的知识库、笔记、WIKI 文档管理工具&#xff0c;同时还包含数据库管理、Api 接口管理等模块。 个人用户可免费下载部署使用&#xff0c;部署后也可以购买商业授权进行激活。 安装 建数据库…

elasticsearch 实战

文章目录 项目介绍导入项目 Elasticsearch Java API 查询文档快速入门发起查询请求解析响应完整代码 match查询精确查询布尔查询排序、分页高亮高亮请求构建高亮结果解析 项目介绍 本项目是一个由spring boot 3.0.2在gradle 8.4和java 21的环境下搭建的elasticsearch项目demo&…

机器学习的复习笔记3-回归的细谈

一、回归的细分 机器学习中的回归问题是一种用于预测连续型输出变量的任务。回归问题的类型和特点如下&#xff1a; 总之&#xff0c;支持向量回归是一种用于解决回归问题的机器学习方法&#xff0c;通过寻找支持向量和引入容忍度范围来建立回归模型&#xff0c;能够处理非线性…

【腾讯云 HAI域探秘】基于高性能应用服务器HAI部署的 ChatGLM2-6B模型,我开发了AI办公助手,公司行政小姐姐用了都说好!

目录 前言 一、腾讯云HAI介绍&#xff1a; 1、即插即用 轻松上手 2、横向对比 青出于蓝 3、多种高性能应用部署场景 二、腾讯云HAI一键部署并使用ChatGLM2-6B快速实现开发者所需的相关API服务 1、登录 高性能应用服务 HAI 控制台 2、点击 新建 选择 AI模型&#xff0c;…

【GD32307E-START】RT-Thread移植测试

【GD32307E-START】RT-Thread移植测试 1. 软硬件平台 GD32F307E-START Board开发板MDK-ARM KeilGCC Makefile 2. 物联网RTOS—RT-Thread RT-Thread RT-Thread诞生于2006年&#xff0c;是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写…

RH2288H V3服务器使用ISO安装系统

1.配置和服务器相同网段地址&#xff0c;RH2288H V3服务器bmc管理网口默认IP是192.168.2.100/24&#xff0c;默认用户root&#xff0c;默认Huawei12#$&#xff0c;网线连接BMC口&#xff0c;登录。默认密码可以在开机时按del键进入配置页面修改 2.配置raid&#xff0c;生产环境…

SpringCloud 微服务全栈体系(十八)

第十一章 分布式搜索引擎 elasticsearch 八、RestClient 查询文档 文档的查询同样适用 RestHighLevelClient 对象&#xff0c;基本步骤包括&#xff1a; 准备 Request 对象准备请求参数发起请求解析响应 1. 快速入门 以 match_all 查询为例 1.1 发起查询请求 代码解读&…

基于Java SSM框架+Vue实现药品销售进销存网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现药品销售进销存网站演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于药品管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了…

岂曰无衣 汉家衣裳再现锦绣美景

——福州第五届1122汉服节出行盛大开幕11月25日下午&#xff0c;闽江之心海丝广场&#xff0c;一场盛大的汉服文化节——福州第五届1122汉服节出行活动在这里隆重开幕。这个被誉为“穿在身上的历史”的传统文化&#xff0c;在这片古老而神秘的土地上焕发出新的生机与活力。据了…

Win10电脑用U盘重装系统的步骤

在Win10电脑中&#xff0c;用户遇到了无法解决的系统问题&#xff0c;用户这时候就可以考虑重装Win10系统&#xff0c;这样即可轻松解决问题&#xff0c;从而满足自己的操作需求。接下来小编给大家详细介绍关于Win10电脑中用U盘重装系统的教程步骤。 准备工作 1. 一台正常联网可…

group by

引入 日常开发中&#xff0c;我们经常会使用到group by。你是否知道group by的工作原理呢&#xff1f;group by和having有什么区别呢&#xff1f;group by的优化思路是怎样的呢&#xff1f;使用group by有哪些需要注意的问题呢&#xff1f; 使用group by的简单例子group by 工…

火力发电厂电气一次部分初步设计(论文+图纸)

1 原始资料 设计电厂为中型是凝汽式发电厂&#xff0c;共4台发电机组&#xff0c;2台75MW机组&#xff0c;2台50MW机组&#xff0c;总的装机容量为250MW&#xff0c;占系统容量的比例为&#xff1a; 250/(3500250)100%6.7%<15%&#xff0c;未超过电力系统的检修备用容量和…

深入理解JMM以及并发三大特性(2)

书接上文 文章目录 (1)CPU高速缓存(2)缓冲一致性(3)总线仲裁机制(4)总线窥探(Bus Snooping) 前面介绍到实现可见性&#xff0c;底层常用的一种方案是使用内存屏障&#xff0c;而内存屏障在汇编层面又是使用lock前缀指令来实现的&#xff0c;所以这里来介绍一下lock前缀指令。 …

skywalking 简单操作文档

1.1. 基础概念 1.1.1. 概述 SkyWalking是 apache基金会下面的一个开源 APM项目&#xff0c;为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标&#xff0c;并进行分布式追踪。通过这些调用链路以及指标&#xff0c;Skywalking APM会感知应用间关系和服务间关系…

酷开科技 | 酷开系统,让你与家人共度美好时光!

在日渐繁忙的生活中&#xff0c;我们常常会忽略和家人朋友的相处时光&#xff0c;有时候&#xff0c;我们亟需一种休闲方式&#xff0c;让家庭成员能够围坐在一起&#xff0c;享受无忧无虑的温馨和欢笑。酷开科技&#xff0c;致力于为消费者提供舒适的产品和服务内容&#xff0…

Windows11系统如何将此电脑和回收站图标放置在桌面上?

Windows11系统如何将此电脑和回收站图标放置在桌面上&#xff1f; 如下图所示&#xff0c;点击“开始”图标&#xff0c;&#xff0c;找到“设置”&#xff0c; 如下图所示&#xff0c;进入设置后&#xff0c;找到个性化—主题&#xff0c; 如下图所示&#xff0c;在个性化—主…

免费分享一套基于springboot的餐饮美食分享平台系统,挺漂亮的

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的基于springboot的餐饮美食分享平台系统&#xff0c;分享下哈。 项目视频演示 【免费】基于springboot的餐饮美食分享平台 Java毕业设计_哔哩哔哩_bilibili【免费】基于springboot的餐饮美食分享平台 Java毕…

校园导游程序及通信线路设计(结尾附着总源码)

校园导游程序及通信线路设计 摘  要 新生或来访客人刚到校园&#xff0c;对校园的环境不熟悉。就需要一个导游介绍景点&#xff0c;推荐到下一个景点的最佳路径等。随着科技的发展&#xff0c;社会的进步&#xff0c;人们对便捷的追求也越来越高。为了减少人力和时间。针对对…

VMWare虚拟机ubuntu克隆打不开

ubuntu克隆打不开 复制的存有ubuntu克隆的文件夹&#xff0c;导入vmware打不开 说找不到这个文件&#xff0c;那就到目录把它的删掉 的删掉 换000001.vmdk后缀的

好用的基于layui的免费开源后台模版layuimini

发现一个好用的后台模版 基于layui的免费开源后台模版layuimini layuimini - 基于Layui的后台管理系统前端模板 easyadmin开源项目 EasyAdmin是基于ThinkPHP6.0Layui的快速开发的后台管理系统。 演示站点 演示地址&#xff1a;跳转提示&#xff08;账号&#xff1a;admin&a…