python学习总结day7

**

变量进阶

**
01变量的引用

  • 变量和数据都是保存在内存中的,变量和数据是分开保存的
  • 在python中函数的参数传递以及返回值都是靠引用传递的
    数据的地址本质上就是一个数字;调用函数时,本质上传递的是实参保存数据的引用,而不是实参保存的数据;如果函数有返回值,但是没有定义变量接收,程序不会报错,但是无法获得返回结果

02可变和不可变类型

  • 不可变类型:内存中的数据不允许被修改
    数字类型、字符串、元组
  • 可变类型:内存中的数据可以被修改
    列表、字典
    注意:当使用赋值语句给一个列表变量赋值新值时,是在改变变量的引用地址,而不是修改之前的内容;要修改列表或者字典的内容要通过方法调用的方式实现,但是内存地址不会发生变化
    字典的key只能使用不可变类型的数据
    id(a):用来查看a在内存中的地址
    哈希(hash)
  • python中内置有一个名字叫做hash(o)的函数
    。接收一个不可变类型的数据作为参数
    。返回结果是一个整数
  • 哈希是一种算法,其作用是提取数据的特征码(指纹)
    相同的内容得到相同的结果
    不同的内容得到不同的结果
  • 在python中,设置字典的键值对时,会首先对key进行hash已决定如何在内存中保存字典的数据,以方便后续对字典的操作:增、删、改、查
    。键值对的key必须是不可变类型数据
    。键值对的value可以是任意类型的数据

03局部变量和全局变量

  • 局部变量是在函数内部定义的变量,只能在函数内部使用
  • 全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量
    生命周期就是变量从被创建到被系统回收的过程,不同的局部变量之间定义了相同的局部变量,不会有任何影响;在python中,不允许直接修改全局变量,也就是不允许使用赋值语句修改全局变量的值;如果使用赋值语句,会在函数内部定义一个局部变量
    在函数内部修改全局变量的值
    如果在函数中需要修改全局变量,需要用到global进行声明,global关键字会告诉解释器后面的变量是一个全局变量,再使用时赋值语句时,就不会创建局部变量
    例如:num = 10
    def demo1():
    global num ( # 这个num就是一个全局变量了)
    num = 99
    print(" demo1 ==> %d" % num)
    def demo2():
    print(" demo2 ==> %d" % num)
    输出的结果都是99
    注意:如果想要保证所有的函数都能正常的访问到每一个全局变量,就要在开发时,把模块中的所有全局变量定义在所有函数上方
    全局变量名前面应该增加g_或者gl_前缀(避免代码的混淆),如果要一次性同时修改,就点中那个变量,点击右键,选择Refactor中的Rename,改完之后点击Refactor(或者用快捷键Shift + F6,同样可以实现上述功能)

**

函数参数和返回值

**
01返回值

如果函数返回的类型是元组,小括号可以省略
当看到返回类型没有小括号时,一定要知道返回的类型是元组
如果函数返回的类型是元组,同时希望单独的处理元组中的元素,可以使用多个变量,一次接收函数的返回结果,变量与变量之间用逗号分隔,使用多个变量接收结果时,变量的个数应该与元组中的元素的个数****保持一致
交换两个数的值:
a = 6
b = 100

  • 解法一——使用其他变量
    c = a
    a = b
    b = c
  • 解法二——不使用其他变量
    a = a + b
    b = a - b
    a = a - b
  • 解法三——python专有
    a,b = (b,a)
    print(a)
    print(b)
    解法三的意思是把等号右边元组(b,a)中的第一个元组中第0个元素传递给等号前面a这个变量,把第1个元素传递给b这个变量
    等号右边的括号可以省略,但是它是元组(切记)

    在python中,列表变量调用 += 本质上是在执行列表变量的extend方法,不会修改变量的引用

02缺省参数

定义函数时,可以给某个参数指定一个默认值具有默认值的参数就叫做缺省参数
缺省参数需要用最常见的值作为默认值
缺省参数的定义位置必须在参数列表的末尾

03多值参数

python中有两种多值参数:

  • 参数名前面增加一个 * ,可以接收元组
  • 参数名前面增加两个 * ,可以接收字典

一般在给多值参数命名时,惯使用以下两个名字
① * args ——存放元组参数,前面有一 个 *
② * * kwargs——存放字典参数,前面有两个 * *
(args是arguments的缩写,有变量的含义;kw是keyword的缩写,kwargs可以记忆键值对)

04函数的递归

一个函数内部调用自己就叫做递归
一定要针对参数进行判断,递归的出口,当参数满足某个条件时,不再执行函数,这个非常重要,否则会出现死循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值