全局变量与局部变量:在函数外部或内部定义的变量 1. 函数内部的变量名首次出现,且在=号左边 不管这个变量在全局域中有没有定义该变量名,都被视为一个局部变量 例1: >>>num=100 #全局变量 >>>def func(): num=123 #就算在全局域定义了,此时num也属于局部变量 print(num) >>>func() 123 2. 函数内部的变量名首次出现,且在=号右边 如果该变量在全局域中定义了,则开始使用全局变量 如果全局域中未定义…

#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 全局与局部变量 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 当全局变量与局部变量同名时: 在定义局部变量的子程序内,局部变量起作用:在其它地方全局变量起作用. """ school = "tsinghua" #全…

在python多线程开发中,全局变量是多个线程共享的数据,局部变量是各自线程的,非共享的. 如下几种写法都是可以的: 第一种:将列表当成参数传递给线程 from threading import Thread import time def work1(nums): nums.append(44) print("----in work1---",nums) def work2(nums): #延时一会,保证t1线程中的事情做完 time.sleep(1) print("---…

1.函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,例如: num = 100 def func(): num = 123 print(num) func() 输出: 123 说明函数中定义的num是一个局部变量,会将全局变量覆盖.再例如: num = 100 def func(): num += 100 print(num) func() 输出: UnboundLocalError: local variabl…

变量作用域: 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量.全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量,那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢? global关键字: 为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性,可以指定变量的作用域.global关键字的作用:声明变量var是全局的 注意: 参考链接:…

在函数里面定义变量叫局部变量,它只能在函数里面用出了该函数外,就不能使用了在函数外面定义的变量,是全局变量,在函数内也可以使用 如果想在函数里面修改全局变量的值,那么要先用global关键字声明 要修改全局变量是int.string的话,必须得写global如果是字典和list的话,要修改的话,不能加global…

函数一般是从第一行代码开始执行,结束于return语句.异常.或者函数所有语句执行完毕.一旦函数将控制权交还给调用者,就意味着全部结束.函数中做的所有工作以及保存在局部变量中的数据都将丢失.再次调用这个函数时,一切将从头创建. 定义函数 >>>def myfun(x,y): #定义函数名 print(x+y) #函数体 >>>myfun(3,4) #调用函数 12 当函数体中存在循环且每次需输出时,使用print来打印多个结果 函数的返回值 >>>de…

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域. 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序内访问. 在调用函数的时候,所有在函数内声明的变量名称都被加到作用域中:…

1,鸭子类型和白鹅类型 1.1,白鹅类型 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现__contains__,__iter__,__len__,__getitem__,__reversed__,index,count. 对于其中的抽象方法,子类在继承时必须具体化,其余非抽象方法在继承时可以自动获得,Sequence序列必须具体化的抽象方法是__len__和__getitem__. from collections import abc class Foo(abc.Se…

# -*- coding: utf-8 -*- """ 获得线程, 进程 ID,NAME 总结: """ import threading import psutil import os import datetime # 1 获取线程ID,NAME t = threading.currentThread() #线程ID print('Thread id : %d' % t.ident) #线程NAME print('Thread name :…

面向对象编程 概念:简称OOP,是一种程序设计思想:OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数 面向对象的设计思想:抽象出类class,根据类class创建实例对象instance 类: 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例 对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法 类对象:当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用…

字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, end]]) 检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1 isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False isdigit() 如果字符串只包含数字则返回True,否则返回False isspace() 如果字符串中只包含空格,则返回…

在介绍递归函数之前,我们先介绍以下递归函数的使用有以下特征: 1.递归函数就是函数在函数体内部调用本身 2.递归函数的运算规模要不断减小,这样才是可以运算的 3.递归的层数不要超过999,因为函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧.调用层数过多就会导致栈溢出. 4.理论上所有的递归函数都可以用循环来表示,但是递归更形象易于理解(虽然我更习惯使用循环~~~~) >>> def factorial(n): ..…

以下的代码适用于LoRa sx1276点对点的通讯,纯粹的考虑在非发射模式下即为接收模式 配置sx1276的射频参数,并且切换到接收模式 //bandwidth [0:125 1:250 2:500] void set_private_LoRa_para(uint32_t freq, uint8_t datarate_index, uint8_t bandwidth,bool rxContinuous) { uint16_t timeout = 5;//DR_0 DR_1 DR_2 uint8_…

匿名函数 无需显式定义函数名,和函数过程,使代码更精简的lambda表达式 函数没有命名,不用担心函数名的冲突 冒号前面代表函数的参数,后面表示计算过程 >>>func=lambda x : 2*x+1 >>>func(5) 11 map() 根据提供的函数对指定序列做出相应的映射 它接受两个参数,第一个是函数对象本身,第二个是序列 map将传入的函数依次作用到序列的每个元素,并把结果作为新的迭代器返回 由于结果是一个迭代器,可通过list()函数让它返回一个新的lis…

迭代 用for...in来遍历一个可迭代对象的过程就叫迭代 可迭代对象:列表.元组.字典.集合.字符串.生成器 可以使用内置函数isinstance()判断一个对象是否是可迭代对象 >>>from collections import Iterable >>>isinstance('abc',Iterable) True >>>isinstance('abc',(int,str)) True 迭代器 可以被next()函数调用并不断返回下一个值的对象称…

切片 mylist[:3] 取前3位元素,0可省略不写 mylist[-4:] 取后4位元素,0可省略不写 mylist[2:4] 从第2个开始取,取到第4个,但第4个不取,取的元素值为4-2=2 mylist[:] 取全部元素,相当于复制了一个列表 mylist[:6:2] 前6个数,每2个取一个元素 列表生成式 用于创建list的一种生成式,将要生成列表元素的公式放在for前面,中间写for循环,后面还可以跟上if判断,还可以有两层循环,和多个变量 >>> [x * x for x…

内部函数 在函数内部定义另一个函数,也就是函数的嵌套 在外部函数的作用域内,外部函数可以随意调用内部函数 由于内部函数的整个定义过程都在外部函数中,所以出了外部函数就无法再被调用了 def outside(): print('外部函数被调用') def inside(): print('内部函数被调用') inside() >>>outside() 外部函数被调用 内部函数被调用 >>>inside() NameError: name 'inside' is not d…

查看所有的内置函数:dir(__builtins__) abs()   获取绝对值 max()   返回给定元素中的最大值 min()   返回给定元素中的最小值 sum()   求和 reversed()   反转,逆序对象 sorted()   排序 str()    转换为字符串类型 float()   转换为浮点型 int()   转换为整型 list()   列表构造函数 dict()   创建字典 set()   创建集合 type()   显示对象所属类型 len()   计算对象…

字典dict 映射类型,以键-值的方式存储,通过键来取相应的值 member={'one':1,'two':2,'three':3} 创建字典member=dict('苹果'='apple','桔子'='orange') 利用工厂函数创建member={} 创建一个空字典 member.pop('one') 删除键为one的项,返回键为2的值member.popitem() 删除并返回一个随机的项member.clear() 清空一个字典 member['four']=4 加入键值member[…

数据类型和转换 整型.浮点型.字符串.布尔值 int() 整型转换 float() 浮点型转换 str() 字符串转换 运算符.操作符 算术运算符:+  -  *  /  %  //  ** 赋值运算符:=  +=  -=  *=  /= 比较运算符:>  >=  <  <=  ==  != 成员运算符:in  not in 格式化运算符:%  format() 逻辑操作符:not > and > not 运算优先级别:幂 > 正负号 > 算术符 >…

一.函数的全局变量 1.什么是全局变量 顶着头开始写,没有任何缩进,在py文件的任何位置都能调用 #!/usr/bin/env python # _*_ coding:utf8 _*_ name="gouguoqi" name="gouguoqi" def change_name(): ",(name)) #这里的name就是调用的全局变量 change_name() C:\python35\python3.exe D:/pyproject/day14函数…

Shell全局变量.局部变量与特殊变量笔记总结 原文: 变量类型:全局变量(环境变量)和局部变量(本地变量) 环境变量可以在定义它们的shell及其派生出来的任意子进程的shell中使用.局部变量只能在定义它们的函数/脚本中使用.还有一些变量是用户创建的,其他的则是专用的shell变量. 1.全局变量(环境变量): 环境变量可用于定义shell的运行环境,环境变量可以在配置文件中定义…

---恢复内容开始--- 一.函数相关: 1.1位置参数: ef hello(name,sex,county='china'): pass #hello('hh','nv') #位置参数.默认参数 1.2可变参数:也叫参数组,在参数名前加*,一般习惯命名为*args *args 特性: (1)不必传 (2)不限制参数个数,可传一个或多个 (3)传多个参数的时候,args把传的值放在一个元组中 def send_email(*args): print("发邮件") print(args)…

Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语言关于内容的详细讲解,其实很多知识都是相同的. 第一部分:程序(计算机运行)为什么需要内存? 对于内存的理解是对编程语言直接相关的,如果没有对内存有很深的认识的话,对于编程语言也就是没有根本的认识,编程语言跟内存有千丝万缕的联系. 1.1 计算机程序运行的目的 计算机为什么需要编程?编程已经编了那么…

python 中全局变量和局部变量在使用过程中的一个容易出错的地方 什么是全局变量 python中,在函数外部声明的变量可以叫做全局变量. x = 10 def fn1(): pass fn1() 什么是局部变量 python中,在函数内部声明的变量通常情况下称之为局部变量,它的作用域也仅限在函数内部. x = 10 # 全局变量 def fn1() : y = 20 # 局部变量,只能够在函数内部中使用 fn1() # 调用函数 容易出错的一个点 在使用全局变量和局部变量的过程中,有一种情况十…

一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p…

如果你在为python中的变量:全局变量和局部变量头疼,我想这篇blog会给你帮助 运行效果: 代码部分: #Python中的变量:全局变量和局部变量 #在很多语言中,在声明全局变量的时候,都喜欢把全局变量的名称定义为大写 #定义学生人数为100 STUDENT_NUMBER = 100 #学校名称 SCHOOL_NAME = 'Guangzhou University' """\ 获取全局变量:学生人数STUDENT_NUMBER的值 """…

Python之路Python全局变量与局部变量.函数多层嵌套.函数递归 一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 全局变量没有任何缩进,在任何位置都可以调用. 子程序:如用def定义的函数. 作用域 一个标识符的可见范围,这就是标识符的作用域.一般常说的是变量的作用域 全局作用域(global):在整个程序运行环境中都可见 局部作用域:在函数.类等内部可见:局部变量使用范围不…

一.不定长参数 在函数定义中,经常会碰到*args 和**kwargs作为参数. 事实上在函数中,*和**才是必要的,args和kwargs可以用其他名称代替 *args 是指不定数量的非键值对参数.  **kwargs是指不定数量的键值对参数. *args 作为作为元组匹配没有指定参数名的参数. 而**kwargs作为字典,匹配指定了参数名的参数. *args 必须位于**kwargs 之前. 1.可变参数.参数组,*args # 1.不是必填参数: # 2.不限制参数的个数: # 3.传入多…