python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用

news2024/9/20 20:08:29

字典遍历方法

函数名含义
keys()以列表的形式,返回一个字典所有的键。
values()以列表的形式,返回一个字典所有的值。
items()返回由键值组成的序列,主要应用于遍历字典。

公共运算符

运算符描述支持的容器类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典

公共方法

能适用于Python容器的一些通用方法

描述
len(s)计算容器中的元素总个数
del删除
max()返回容器中元素最大值
min()返回容器中元素最小值

函数

语法:

def 函数名([参数, ..]):
    代码1
    代码2
    ...
    [return 具体的值]

(1)当将一些代码进行封装在一块,并给这块代码取了个名字,就叫做函数;

(2)定义函数时,需要使用(def)关键字。

函数特点:

(1)先定义,后调用;

(2)不调用,不执行;

(3)调用一次,执行一次。

#定义函数
def 函数名():
   代码1
   代码2
   ...
 #调用函数
 函数名()

函数的参数

当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。

定义有参数的函数,

语法:

def 函数名(参数1,参数2,...):  # 形参
    代码1
    代码2
    ...

调用函数,

语法:

函数名(参数值1,参数值2,...)  # 实参

函数的返回值

函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。

def 函数名([参数1, 参数2, ...]):
        代码1
        代码2
        ...
        return 值

说明:

(1)若要给函数返回结果,需要使用return关键字;

(2)return关键字的作用:把结果返回给函数;结束函数;

(3)当函数没有返回值时,默认返回None

说明文档

说明文档指的是:在定义函数的第一行,加上多行注释。这样的操作,可以让函数更加规范化。

def 函数名():
    """ 说明文档的位置 """
    代码
    ...

函数的嵌套调用

函数的嵌套调用指的是:在一个函数中,调用了另一个函数。

嵌套调用语法:

def 函数1():
        代码
        ...

def 函数2():
        代码
        # 调用函数1
        函数1()
        ...

变量分类

变量分类

特点

局部变量

局部变量只作用于当前所在函数内, 局部变量不能作用在该函数之外的区域。

全局变量

全局变量: (1)全局变量是指与函数处于同一级别的变量; (2)注意:当函数中的局部变量与全局变量同名时,在函数中使用的是局部变量的值。 (1)当要定义一个作用在整个模块的变量时,就可以使用全局变量; (2)注意:当要给全局变量修改值时,需要先使用(global)关键字来声明。 升级: 实际上,对于不可变类型的全局变量要修改值, 需要使用global声明; 但是对于可变类型的数据内容-全局变量, 可以不需要声明.

参数分类

参数类型

特点

位置参数

1)当调用函数时,要按照定义函数时的参数位置,进行传递值。 2)在给位置参数传递值时,要注意参数的(个数)、类型和顺序

关键字参数

1)当传递关键字参数时,可以使用【键 = 值】形式来指定参数; 2)当采用关键字参数传递值时,可以不关注参数的顺序,参数名要正确,参数个数要对应

缺省参数

也叫默认参数: 1)若给函数定义了缺省参数,则在调用函数时可以省略该参数值的传递; 2)缺省参数必须定义在其他参数的最末尾处,可以定义多个缺省参数

不定长参数

也叫可变参数: 1)注意:如果不确定要给函数传递多少个参数值时,可以优先考虑使用(不定长参数) 2)当给不定长参数传递数值时,可以理解为:就是综合运用位置参数和关键字参数来传值。

拆包

在Python程序中的拆包:把组合形成的元组形式的数据,拆分出单个元素内容。

变量名1,变量名2,... = 结果

例如,一起来完成:

(1)在一个函数中,使用return返回求解两个数的和、差;

(2)使用items()方式遍历处理字典中存储的学生信息各个键与值;

(3)分别使用拆包方式来拆分数据。

# 1.定义函数, 返回多个数据
def get_sum_sub(a, b):
     sum = a + b
     sub = a - b
     return sum,sub

result = get_sum_sub(560,89)
print(result)  # (649, 471)


ret1, ret2 = get_sum_sub(560,89)
print(f"和为:{ret1}")
print(f"差为:{ret2}")

# 2.items()处理
student = {"name": "马云", "age": 28, "gender": "男"}
for key,value in student.items():
    print(f"{key} --> {value}")

==总结:==

(1)当要把一个组合的结果快速获取元素数据时,可以使用拆包来完成;

(2)注意:对列表、元组数据结果,都可以使用拆包方式。

交换变量值

使用拆包方式可以用于交换变量的值。

例如,一起来完成:

(1)有变量a、b,请完成变量之间值的交换;

(2)使用引入第三方变量的形式完成数值的交换;

(3)使用拆包方式完成数值交换。

# 1.拆包 -互换两个数位置
a = 10
b = 98
b, a = (a,b)
print(f"变量a={a}, b={b}")
(a,b) = (b,a)
# 2.求最大最小值
data = [12,3,14,56,7,0,1,-199]
data = [12,3,14,56,7,100,1,199]
# 1.先入为主;   2.简化操作
# 最大值
max_value = data[0]
# 最小值
min_value = data[0]
# min_value = 0
for temp in data:
    if max_value < temp:
        max_value = temp
    if min_value > temp:
        min_value = temp
print(f"最大值:{max_value}")
print(f"最小值:{min_value}")

==总结:==

(1)交换两个变量的方式较多,但最简单的是:直接使用拆包方式交换值。

引用

引用可以通俗的称为内存地址值。在Python中,引用有两种表现形式:

(1)十进制数 5040624

(2)十六进制数 0x45AC6 [后期讲解]

注意:在Python中,变量值是通过引用来传递的。

查看引用语法:

id(变量名)

说明:

我们可以把id()值理解为变量所在内存的地址值。

例如,一起来完成:

(1)定义一个变量a,查看变量的引用值;

(2)思考:有两个列表变量[1, 2],分别使用==和is去比较,结果如何?

# 1.定义变量,查看引用
a = 10
print(a)
print(id(a))  # 140704783964096
# 明确: 内存地址值是随机分配

# 2.==  is
# is比较的是内存地址值
# ==比较内容值
alist = [1,2]
blist = [1,2]
print(alist == blist)  # True
print(alist is blist)  # False
print(id(alist))
print(id(blist))

==总结:==

(1)当要查看一个变量的内存地址值时,可以使用()函数;==A、id()==;B、position()

(2)注意:比较两个变量的值是否相等时,使用==;比较两个变量的内存地址值是否相同时,使用is关键字。

[了解]把引用当做参数传递

我们知道,当定义函数时设定了参数,则在调用函数时也需要传递参数值。

而实际上,当给函数传递参数时,其本质就是:把引用当做参数进行传递。

例如,一起来完成:

(1)定义有一个参数的函数,并在调用函数时传递一个参数值;

(2)同时输出参数值与在函数内的参数的引用值,对比效果。

# 1.定义有参数的函数
def func(a):
    print("====================")
    print(f"a的引用值:{id(a)}")
    print("====================")

# 2.外面输出、函数内输出
number = 100
print(id(number))  # 140704783966976
func(number)

==总结:==

(1)当把变量传递给函数时,本质上是:传递变量的引用值。

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

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

相关文章

linux入门到实操-9 linux文件操作命令:创建文件、复制文件或文件夹、删除和移动文件、多种查看文件的方法

教程来源&#xff1a;B站视频BV1WY4y1H7d3 3天搞定Linux&#xff0c;1天搞定Shell&#xff0c;清华学神带你通关_哔哩哔哩_bilibili 整理汇总的课程内容笔记和课程资料&#xff08;包含课程同版本linux系统文件等内容&#xff09;&#xff0c;供大家学习交流下载&#xff1a;…

PHP限定post提交数据的次数

PHP限定post提交数据的次数。 在PHP中&#xff0c;你可以通过记录IP地址的提交次数并在会话或数据库中存储这些信息来实现这个需求。以下是一个简单的PHP示例&#xff0c;它使用会话来跟踪IP地址的提交次数。 <?php session_start(); // 获取用户的IP地址 $ip_address $…

迁移学习+多模态融合,小白轻松发一区!创新性拉满!

多模态研究如今愈发火热&#xff0c;已成为各大顶级会议的投稿热门。今天&#xff0c;我为大家提供一个多模态的创新思路&#xff1a;迁移学习与多模态融合。 迁移学习多模态融合方向的优势 1.提升模型性能&#xff1a;综合更多维度优势&#xff0c;跨模态互补 2.快速适应新…

计算机网络 --- 初识协议

序言 上一篇文章中 &#xff08;&#x1f449;点击查看&#xff09;&#xff0c;我们简单的了解了怎么寻找目标计算机&#xff0c;需要通过交换机&#xff0c;路由器等设备跨越多个网络来不断的转发我们需要传输的数据&#xff0c;直至到达目标计算机。  那我们设备之间数据是…

挖矿病毒排查演示

1、上传病毒文件到/opt目录中 2、把压缩文件名修改成virus.zip 3、检查一下/etc/passwd ​ root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:…

GeoGebra 與數學探索 3 GeoGebra 在微積分的探索與動態演示

Goal: GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索. “Talk is che…

unordered_map/set(底层实现)——C++

目录 前言&#xff1a; 1.开散列 1. 开散列概念 2. 开散列实现 2.1哈希链表结构体的定义 2.2哈希表类即私有成员变量 2.3哈希表的初始化 2.4迭代器的实现 1.迭代器的结构 2.构造 3.* 4.-> 5. 6.&#xff01; 2.5begin和end 2.6插入 2.7Find查找 2.8erase删除 3.unordered_ma…

mybatisplus中id生成策略

使用Tableld(value,type) 1.typeIdType.AUTO自增主键 2.typeIdType.ASSIGN,雪花算法生成 mybatisplus id生成策略全局配置 配置表前缀以及id生成策略 mybatis-plus:global-config:db-config:id-type: autotable-prefix: :t_

热点|创邻图查询范式引爆LDBC TUC2024

2024年8月30日至31日&#xff0c;创邻科技Galaxybase团队联合蚂蚁集团TuGraph团队、阿里巴巴GraphScope团队共同主办第18届LDBC TUC会议。在本次会议中&#xff0c;来自全球图数据库领域的学者和技术专家做了很多精彩的分享&#xff0c;共同探讨图技术的最新进展。创邻科技Gala…

EC Shop安装指南 [ Apache PHP Mysql ]

这个是软件测试课上老师布置的一个作业&#xff0c;期间老师也出现了不少错误&#xff0c;所以还是有必要记录一下吧&#xff0c;凑一篇文章 主要是老师的文档以及自己的一些尝试记录&#xff0c;试错记录&#xff0c;解决方案等 主要介绍了Apache的安装&#xff0c;MySQL的安…

weblogic CVE-2020-14882 靶场攻略

漏洞描述 32 CVE-2020-14882 允许远程⽤户绕过管理员控制台组件中的身份验证。 CVE-2020-14883 允许经过身份验证的⽤户在管理员控制台组件上执⾏任何命令。 使⽤这两个漏洞链&#xff0c;未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执⾏任意命令并…

基于协同过滤算法+PHP的新闻推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤算法PHPMySQL的新…

基于Java的房地产在线营销管理系统研究与实现

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 随着信息技术的迅猛发展&#xff0c;互联网已经渗透到我们生活的方方面面&#xff0c;为各行各业带来了前所未有的变革。房地产…

条件编译代码记录

#include <iostream>// 基类模板 template<typename T> class Base { public:void func() {std::cout << "Base function" << std::endl;} };// 特化的子类 template<typename T> class Derived : public Base<T> { public:void…

8585 栈的应用——进制转换

### 思路 1. **初始化栈**&#xff1a;创建一个空栈用于存储转换后的八进制数的每一位。 2. **十进制转八进制**&#xff1a;将十进制数不断除以8&#xff0c;并将余数依次入栈&#xff0c;直到商为0。 3. **输出八进制数**&#xff1a;将栈中的元素依次出栈并打印&#xff0c;…

navicate连接oracle数据库probable oracle net admin error

没用过oracle数据库 1、数据库版本19c&#xff1b; 使用dbeaver连接是没有问题的 使用navicate一直报错 解决方案&#xff1a; oracle官网下载win64的OCI环境 https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载好的压缩包直接解…

Git入门学习(1)

Git 00.准备工作-gitee注册 今天Git的设置中需要用到gitee的注册信息&#xff0c;先自行完成注册工作&#xff0c;可以 参考笔记 或第二天视频&#xff08;10.Git远程仓库-概念和gitee使用准备&#xff09; 传送门: gitee&#xff08;码云&#xff09;:https://gitee.com/ 注…

Hutool树结构工具-TreeUtil构建树形结构

1 pom.xml <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency> 2 核心代码 import cn.beijing.satoken.domain.ZhiweiCityArea; import cn.beijing.sa…

Superset二次开发之优化Mixed Chart 混合图(柱状图+折线)

背景 基于Mixed Chart(柱状图+折线)作图,显示 某维度A Top10 + 其他 数据,接口返回了值为 undefined 的某维度A 数据,前端渲染成 某维度A 值为 0 此图表存在的问题: 图表控件编辑页面,即便数据集正常查询出 Top10 + ‘其他’ 数据,但是堆积图表渲染时,返回了 值为 0…

HarmonyOS ArkTS 用户首选项的开发及测试

本节以一个“账本”为例&#xff0c;使用首选项的相关接口实现了对账单的增、删、改、查操作&#xff0c;并使用自动化测试框架arkxtest来对应用进行自动化测试。 为了演示该功能&#xff0c;创建一个名为“ArkTSPreferences”的应用。应用源码可以在文末《跟老卫学HarmonyOS开…