[Aprende python desde cero] 28. Variables locales y variables globales en Python

variable local

  • Una variable local es una variable definida dentro de una función.
  • Su ámbito de acción está dentro de esta función, es decir, solo se puede usar en esta función y no se puede usar fuera de la función
  • Debido a que su ámbito de acción es solo dentro de su propia función, diferentes funciones pueden definir variables locales con el mismo nombre (por ejemplo, tratarnos a usted y a mí como funciones, y entender las variables locales como teléfonos móviles en manos de todos, pero hay un iPhone8 , por supuesto también puedo tener un iPhone8, no están relacionados entre sí)
  • El papel de las variables locales, para guardar datos temporalmente, las variables deben definirse en la función de almacenamiento
  • Cuando se llama a la función, se crea la variable local y la variable no se puede usar una vez que se completa la llamada a la función.

Como se muestra abajo:

inserte la descripción de la imagen aquí

variable global

Si una variable se puede usar no solo en una función, sino también en otras funciones, esa variable es una variable global

Por ejemplo: hay dos hermanos que cada uno tiene un teléfono móvil, y cada uno tiene su propio pequeño secreto en el teléfono móvil, que no puede ser utilizado por la otra parte (se puede entender como una variable local); pero el el teléfono en casa puede ser usado por ambos hermanos de manera casual (pueden entenderse como variables globales)

# 定义全局变量
a = 100

def test1():
    print(a)  # 虽然没有定义变量a但是依然可以获取其数据

def test2():
    print(a)  # 虽然没有定义变量a但是依然可以获取其数据

# 调用函数
test1()
test2()

resultado de la operación:

Resumen 1:

  • Las variables definidas fuera de una función se denominan variables globales.
  • Se puede acceder a las variables globales en todas las funciones

Los nombres de variables globales y variables locales tienen el mismo problema

Mira el siguiente código:

inserte la descripción de la imagen aquí

Resumen 2:

  • Cuando la variable local y la variable global tienen el mismo nombre en la función, se entiende que el nombre de la variable = datos dentro de la función define una variable local en lugar de modificar el valor de la variable global

Modificar variables globales

¿Se puede modificar cuando se usa en una función?

el código se muestra a continuación:

# 修改全局变量
a = 100

def change_global_variable():
    global a  # 使用global关键字声明全局变量
    a = 200

change_global_variable()
print(a)  # 输出200

Resumen 3:

  • Si en la función aparece el nombre de la variable global global, aunque en esta función aparezca el nombre de la variable = dato que es igual al nombre de la variable global, se entiende que se modifica la variable global en lugar de definir una variable local
  • Si es necesario modificar varias variables globales en una función, se pueden declarar todas a la vez o por separado.
# 可以使用一次global对多个全局变量进行声明
global a, b
# 还可以用多次global声明都是可以的
# global a
# global b

Ver todas las variables globales y locales

Python proporciona dos funciones integradas globals() y locals() que se pueden usar para ver todas las variables globales y locales.

def test():
    a = 100
    b = 40
    print(locals())  # {'a': 100, 'b': 40}

test()

x = 'good'
y = True
print(globals())  # {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x101710630>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/jiangwei/Desktop/Test/test.py', '__cached__': None, 'test': <function test at 0x101695268>, 'x': 'good', 'y': True}

valor de retorno de la función

¿Cómo devolvemos múltiples valores en python?

1. ¿Retorno múltiple?

def create_nums():
    print("---1---")
    return 1  # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数
    print("---2---")
    return 2
    print("---3---")

result = create_nums()
print(result)  # 输出1

Resumen 1:

  • Puede haber varias declaraciones de retorno en una función, pero mientras se ejecute una declaración de retorno, la función finalizará, por lo que el retorno posterior es inútil.

  • Si el programa está diseñado de la siguiente manera, es posible porque se ejecutan diferentes retornos en diferentes escenarios

def create_nums(num):
    print("---1---")
    if num == 100:
        print("---2---")
        return num+1  # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数
    else:
        print("---3---")
        return num+2
    print("---4---")

result1 = create_nums(100)
print(result1)  # 输出101
result2 = create_nums(200)
print(result2)  # 输出202

2. Cómo una función devuelve múltiples datos

def divid(a, b):
    shang = a//b
    yushu = a%b 
    return shang, yushu  #默认是元组

result = divid(5, 2)
print(result)  # 输出(2, 1)

Resumen 2:

  • El retorno puede ir seguido de tuplas, listas, diccionarios, etc. Siempre que sea un tipo que pueda almacenar varios datos, se pueden devolver varios datos a la vez.
def function():
    # return [1, 2, 3]
    # return (1, 2, 3)
    return {"num1": 1, "num2": 2, "num3": 3}

Si hay varios datos después de la devolución, el valor predeterminado es una tupla.

Descomprimir los datos devueltos directamente

def get_my_info():
    high = 178
    weight = 100
    age = 18
    return high, weight, age  # 函数返回三个数据,会自动打包为元组

my_high, my_weight, my_age = get_my_info()  # 直接把元组拆分为三个变量来使用,更加方便
print(my_high)
print(my_weight)
print(my_age)

Resumir:

  • Preste atención al desempaquetar, la cantidad de datos a desempaquetar debe ser la misma que la cantidad de variables, de lo contrario el programa será anormal
  • Además de desempaquetar tuplas, también puedes desempaquetar listas, diccionarios, etc.
In [17]: a, b = (11, 22)
In [18]: a
Out[18]: 11
In [19]: b
Out[19]: 22

In [20]: a, b = [11, 22]
In [21]: a
Out[21]: 11
In [22]: b
Out[22]: 22

In [23]: a, b = {
    
    "m":11, "n":22}  # 取出来的是key,而不是键值对
In [24]: a
Out[24]: 'm'
In [25]: b
Out[25]: 'n'

Caso avanzado

[Python] Python se da cuenta del juego de adivinanzas: ¡desafía tu inteligencia y tu suerte!

[python] La biblioteca Python tkinter implementa un programa GUI para el convertidor de unidades de peso

[python] Use Selenium para obtener entradas (2023 Blog Star)

[python] Use Selenium y Chrome WebDriver para obtener información de artículos en [Tencent Cloud Studio Practical Training Camp]

Use el estudio Tencent Cloud Cloud para realizar la programación Baidu AI para realizar el reconocimiento de texto

[Diversión con la serie Python [Xiaobai debe ver] Rastreador de subprocesos múltiples de Python: descargue imágenes de sitios web de paquetes de emoticonos

[Serie Juega con Python] [Imprescindible para Xiaobai] Usa Python para rastrear datos históricos de Shuangseqiu y analizarlos visualmente

[Jugar con la serie python] [Imprescindible para Xiaobai] Utilice la tecnología de rastreo de Python para obtener una IP proxy y guardarla en un archivo

[Imprescindible para Xiaobai] Ejemplo de síntesis de imágenes de Python usando la biblioteca PIL para realizar la síntesis de múltiples imágenes por rangos y columnas

[Xiaobai debe ver] El combate real del rastreador de Python descarga imágenes de diosas en lotes y las guarda localmente

[Xiaobai debe ver] Análisis detallado del generador de nube de palabras de Python e implementación de código

[Xiaobai debe ver] Python rastrea un ejemplo de datos de jugadores de la NBA

[Imprescindible para Xiaobai] Código de muestra para rastrear y guardar audio del Himalaya usando Python

[Imprescindible para Xiaobai] Realización técnica del uso de Python para descargar imágenes de piel de League of Legends en lotes

[Xiaobai debe ver] Visualización y procesamiento de datos del rastreador de Python

[Imprescindible para Xiaobai] Programa rastreador de Python para obtener fácilmente imágenes de piel de héroe de King of Glory

[Xiaobai debe ver] usar Python para generar una lista personalizada de documentos de Word

[Imprescindible para Xiaobai] Combate de rastreadores de Python: obtenga imágenes del sitio web de Onmyoji y guárdelas automáticamente

Xiaobai debe ver la serie de sistemas de gestión de bibliotecas: código de muestra para las funciones de inicio de sesión y registro

100 casos del combate real de Xiaobai: un programa completo y simple de sentencia ganadora de la lotería Shuangseqiu, adecuado para los primeros pasos de Xiaobai

Procesamiento y visualización de datos geoespaciales usando geopandas y shapely (.shp)

Utilice selenio para rastrear los datos de la lista de películas de Maoyan

Explicación detallada del principio y la implementación del algoritmo de mejora de imagen Retinex

Guía de introducción a los rastreadores (8): Escriba programas rastreadores de datos meteorológicos para el análisis visual

Guía introductoria a los rastreadores (7): uso de Selenium y BeautifulSoup para rastrear la película Douban Top250 Ejemplo de explicación [Reptile Xiaobai must watch]

Guía de inicio de rastreadores (6): Anti-rastreadores y habilidades avanzadas: proxy de IP, disfraz de agente de usuario, verificación de inicio de sesión de omisión de cookies y herramientas de identificación de código de verificación

Guía introductoria a los rastreadores (5): rastreadores distribuidos y control de concurrencia [Métodos de implementación para mejorar la eficiencia del rastreo y el control de la racionalidad de las solicitudes]

Introducción a los rastreadores (4): la mejor forma de rastrear páginas web dinámicas con Selenium y API

Guía de introducción a los rastreadores (3): solicitudes de red de Python y estrategias comunes contra los rastreadores

Introducción a los rastreadores (2): cómo utilizar expresiones regulares para la extracción y el procesamiento de datos

Primeros pasos con los reptiles (1): aprenda los conceptos básicos y las habilidades de los reptiles

Aplicación del modelo de aprendizaje profundo en el reconocimiento de imágenes: práctica de conjuntos de datos CIFAR-10 y análisis de precisión

Conceptos básicos de programación orientada a objetos de Python y código de muestra

Guía de operación de la base de datos MySQL: aprenda a usar Python para agregar, eliminar, modificar y consultar operaciones

Guía de operación de archivos de Python: codificación, lectura, escritura y manejo de excepciones

Use Python y Selenium para automatizar el rastreo#【Convocatoria especial para el Festival del Bote del Dragón】Explore la última tecnología, y el futuro se lo debe a usted"Zong" #Artículos contribuidos

Tutorial de multihilo y multiproceso de Python: análisis completo, casos de código y habilidades de optimización

Conjunto de herramientas de automatización de Selenium - Guía completa y tutoriales

Tutorial de los conceptos básicos del rastreador web de Python avanzados al combate real

Tutorial introductorio de Python: domine los conocimientos básicos de for loop, while loop, operación de cadenas, lectura y escritura de archivos y manejo de excepciones

Tutorial de procesamiento y análisis de datos de Pandas: desde lo básico hasta el combate real

Explicación detallada de los tipos de datos de uso común y las operaciones relacionadas en Python

[Último en 2023] Explicación detallada de seis esquemas principales para mejorar el modelo de índice de clasificación

Introducción a los conceptos básicos y habilidades avanzadas de programación de Python, desarrollo web, análisis de datos y aprendizaje automático e inteligencia artificial

Gráfico de resultados de predicción con 4 métodos de regresión: regresión vectorial, regresión de bosque aleatorio, regresión lineal, regresión de vecinos más cercanos K

Supongo que te gusta

Origin blog.csdn.net/qq_33681891/article/details/132293363
Recomendado
Clasificación