Nulo em Python: 7 casos de uso com exemplos de código

Na programação, você pode encontrar situações em que uma variável não possui um valor. Essas instâncias são comumente representadas por um valor especial conhecido como nulo. Muitas linguagens de programação, como C, Java, JavaScript e PHP, possuem valores nulos integrados, mas o Python adota uma abordagem ligeiramente diferente para representar variáveis ​​nulas.

Em Python, o equivalente a null é None. É uma constante especial em Python que representa a ausência de um valor ou um valor nulo. É uma instância de seu próprio tipo de dadoso NoneType. Não é o mesmo que 0, False ou uma string vazia, pois é um tipo de dados próprio que não representa nenhum valor ou nenhum objeto.

Nulo em Python: 7 casos de uso com exemplos de código

Se você está aprendendo Python, é importante entender o conceito de None em Python. Ele fornece os meios para criar um código eficiente que lida com casos extremos. Ao explorar a programação Python, você encontrará vários cenários em que None prova ser essencial.

Neste artigo, exploraremos o que é um nulo, ou nenhum, em Python. Examinaremos exemplos e casos de uso para ajudá-lo a solidificar o conceito de valores nulos. Mas primeiro, vamos entender o conceito de valores None, ou Null, em Python.

Índice

O que é nulo em Python?

Para entender nulo em Python, você terá que entender os dois conceitos a seguir:

  1. Diferença entre nenhum e nulo

  2. nenhum tipo

1. Diferença entre nenhum e nulo

Nulo em muitas linguagens de programação é usado para denotar um ponteiro vazio ou um valor desconhecido. Você pode definir o valor nulo como 0 nesses idiomas.

No entanto, em Python, em vez de null, você usa a palavra-chave None para definir objetos e variáveis ​​vazios. None serve para alguns dos mesmos propósitos que null em outras linguagens. Mas é uma entidade distinta e não definida como 0 ou qualquer outro valor.

2. NenhumTipo

Em Python, None é um tipo único de estrutura de dados, classificado em um tipo chamado NoneType. É um cidadão de primeira classe, o que significa que você pode atribuí-lo a variáveis. Você também pode passá-lo como um argumento e retornar como resultado.

Quando você atribui um valor de variável None, ele se torna um objeto NoneType. None não é equivalente a uma string vazia, o valor booleano False ou o valor numérico 0. Significa simplesmente variável nula ou nada.

Agora que você entende as terminologias relacionadas a nenhum, vamos ver como você pode usar o None para diferentes casos de uso!

Como usar nenhum em Python

Em Python, você pode usar None para vários casos de uso. Nesta seção, veremos 4 casos de uso importantes de None em Python.

Nulo em Python: 7 casos de uso com exemplos de código

Especificamente, veremos os seguintes casos de uso:

  1. Atribuindo nenhum a variáveis

  2. Usando None como parâmetro padrão

  3. Verificando None com o operador de identidade

  4. Manipulando valores ausentes

Vamos entrar nisso!

1. Atribuindo Nenhum a Variáveis

Você pode atribuir None a variáveis ​​para indicar a ausência de um valor.

Por exemplo:

x = None

Nenhum aqui significa que o valor de x está ausente ou um valor válido ainda não foi decidido.

2. Usando nenhum como parâmetro padrão

Você também pode usar None como um valor de parâmetro padrão para definir funções. Isso é útil quando você deseja permitir argumentos opcionais para parâmetros padrão em suas funções.

O código a seguir mostra como usar None como um parâmetro padrão:

def greet(name=None):
    if name is None:
        print("Hello, World!")
    else:
        print(f"Hello, {name}!")

# Call the function without providing a name
greet()

# Call the function with a name
greet("Alice")

Quando você executa esse código, ele imprime “Hello, World!” quando você chama greet() sem nenhum argumento. Mas quando você chama o greet() com um argumento, como o greet(“Alice”), ele imprime “Olá, Alice!”. Isso permite que a função tenha argumentos opcionais.

Nulo em Python: 7 casos de uso com exemplos de código

3. Verificação de None com operador de identidade

Você pode usar o operador is identity para verificar se uma variável é None. Isso permite que você compare se duas variáveis ​​se referem ao mesmo objeto.

Veja a seguir um exemplo para mostrar como usar o operador de identidade:

# Define a variable with no value
var1 = None

# Define a variable with a value
var2 = "Hello, World!"

# Check if var1 is None
if var1 is None:
    print("var1 is None")
else:
    print("var1 is not None")

# Check if var2 is None
if var2 is None:
    print("var2 is None")
else:
    print("var2 is not None")

Nesse código, var1 é None retornará True porque var1 recebeu o valor None. Por outro lado, var2 é None retornará False porque var2 tem um valor de string.

A saída para o script é fornecida abaixo:

Nulo em Python: 7 casos de uso com exemplos de código

4. Lidando com valores ausentes

Você também pode encontrar dados com valores ausentes. Você pode representar esses valores ausentes com None e tratá-los adequadamente.

O seguinte é um exemplo ao lidar com uma lista de números:

# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]

def calculate_average(data):
    # Filter out None values using list comprehension
    valid_data = [value for value in data if value is not None]

    # Calculate average if valid_data is not empty
    average = sum(valid_data) / len(valid_data) if valid_data else None

    return average

# Call the function and print the result
print(calculate_average(data))

Essa função calcula a soma de todos os valores diferentes de None na lista e a divide pela contagem de valores diferentes de None. Se todos os valores na lista forem Nenhum, a função retornará Nenhum.

A saída é dada abaixo:

Nulo em Python: 7 casos de uso com exemplos de código

Usando None e as diferentes técnicas mencionadas acima, você pode efetivamente lidar com valores ausentes em Python.

To learn more about handling missing values in Python, check the following video out:

Some More Use Cases of None in Python

Apart from the use cases discussed in the section above, there are some other use cases of None as well. These use cases are not frequently used ones but are good to know and are useful in some scenarios.

In this section, we’ll look go over the following 3 use cases of None in Python:

  1. Using None in return statements

  2. Using None as flags

  3. Using None for custom objects

Let’s dive into it!

1. Using None as Return Statements

You can use None in return statements, particularly when a function completes its execution without finding a specific result.

For example, a function that searches for an element in a list can return None if the element is not found. The following code demonstrates using None as return value:

# Define a list
numbers = [10, 20, 30, 40, 50]

def find_in_list(lst, target):
    for i, value in enumerate(lst):
        if value == target:
            return i
    return None

# Search for a number in the list
print(find_in_list(numbers, 30))  
print(find_in_list(numbers, 60))

In this code, the find_in_list function iterates over the input list lst. If it finds the target value, it returns the index of that value. If it doesn’t find the target value after checking the entire list, it returns None.

The output is given below:

Nulo em Python: 7 casos de uso com exemplos de código

2. Using None as Flags

You can also use None as a flag to indicate the state of a variable. For instance, you might use it to mark whether a value is uninitialized or to track a special condition in the program.

The following is an example of how you can use None as a flag:

def find_first_even_number(numbers):
    # Initialize the first_even_number to None
    first_even_number = None

    # Iterate over the list of numbers
    for number in numbers:
        # If we find an even number and first_even_number is still None
        if number % 2 == 0 and first_even_number is None:
            first_even_number = number
            break

    return first_even_number

numbers = [1, 3, 5, 7, 8, 10]

# Call the function and print the result
print(find_first_even_number(numbers))  # Outputs: 8

In this code, None is used as a flag to indicate that we haven’t found an even number in the list yet.

If first_even_number is still None after the loop, this means that there were no even numbers in the list.

If first_even_number is not None, it contains the first even number from the list.

Nulo em Python: 7 casos de uso com exemplos de código

3. Using None for Custom Objects

You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.

The following example demonstrates how you can use None for user-defined objects:

class Person:
    def __init__(self, name):
        self.name = name
        self.best_friend = None

    def set_best_friend(self, person):
        self.best_friend = person

    def get_best_friend_name(self):
        if self.best_friend is not None:
            return self.best_friend.name
        else:
            return None

# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')

# Alice's best friend is Bob
alice.set_best_friend(bob)

print(alice.get_best_friend_name())  

# Charlie doesn't have a best friend
charlie = Person('Charlie')

print(charlie.get_best_friend_name())  

In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.

The above code will output the following:

Nulo em Python: 7 casos de uso com exemplos de código

Special Functions and Techniques for Null Object

Agora discutiremos algumas funções e técnicas especiais que você pode usar relacionadas a NoneType e à manipulação de valores nulos. Abordaremos duas subseções principais:

  1. A função de identificação

  2. A Função Getattr

1. Função de Identificação

A função id() em Python é uma função interna que retorna a identidade de um objeto. Essa identidade é um inteiro único e constante atribuído a um objeto durante seu tempo de vida.

Isso permite distinguir entre objetos com diferentes endereços de memória. A função é especialmente útil ao trabalhar com objetos NoneType, pois pode ser usada para verificar a presença de None em variáveis ​​ou expressões.

Veja a seguir um exemplo usando a função id() :

a = None
b = None
c = 42

print(id(a))  # Output: some unique integer representing None
print(id(b))  # Output: same integer as id(a)
print(id(c))  # Output: different integer from id(a) and id(b)

A saída deste código é dada abaixo:

Nulo em Python: 7 casos de uso com exemplos de código

Como None é um cidadão de primeira classe em Python, ele tem sua própria identidade exclusiva. Isso significa que você pode usar a função id() para comparar variáveis ​​com None usando suas identidades:

if id(a) == id(None):
    print("a is None")

A saída é dada abaixo:

Nulo em Python: 7 casos de uso com exemplos de código

2. Função Getattr

A função getattr() é outra função interna do Python que permite acessar os atributos de um objeto pelo nome.

Dado um objeto e uma string, getattr() retorna o valor do atributo nomeado ou o objeto None se o atributo não existir.

Isso pode ser útil para você ao lidar com valores nulos, especialmente nos casos em que você precisa acessar atributos que podem estar ausentes.

Veja a seguir um exemplo usando a função getattr() :

class ExampleClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

example_obj = ExampleClass(3, 4)

# Access attribute using getattr
print(getattr(example_obj, "x"))  # Output: 3
print(getattr(example_obj, "z", None))  # Output: None

No exemplo acima, usamos getattr() para acessar o atributo x e tentar acessar um atributo z inexistente.

Ao fornecer um valor padrão de None, evitamos um AttributeError e, em vez disso, recebemos o objeto None.

Como resultado, esta função permite acesso seguro a atributos mesmo na presença de objetos nulos ou atributos ausentes.

A saída deste código é dada abaixo:

Nulo em Python: 7 casos de uso com exemplos de código

Comparando nulo em outras linguagens de programação

No início deste artigo, fizemos uma pequena comparação entre Null em Python e Null em outras linguagens de programação.

Nesta seção, levaremos esse tópico adiante e compararemos Null em outras linguagens de programação populares com Null em Python. Isso ajudará você a entender melhor o conceito de None em Python se você tiver uma experiência de programação diferente.

Vamos entrar nisso!

1. Nulo em Java

Em Java, a palavra-chave “null” representa uma referência que não aponta para nenhum objeto ou valor. É usado para indicar a ausência de um valor e geralmente é usado como valor padrão para referências de objeto.

Por exemplo:

String myString = null; // Declare a String object with a null reference

O null do Java é diferente do None do Python. Null representa a falta de um objeto, enquanto None é um objeto real de NoneType.

2. Nulo em C

Na linguagem de programação C, nulo é representado por um ponteiro nulo, que indica um ponteiro não inicializado ou vazio. O ponteiro nulo geralmente é representado pelo valor inteiro 0.

O seguinte é um exemplo de uso de um ponteiro nulo em C:

int *myPointer = NULL; // Declare an integer pointer with a null reference

Nulo em C não está associado a um tipo de dados específico. Ele serve como um espaço reservado para ponteiros não inicializados ou vazios.

3. Nulo em PHP

No PHP, null representa uma variável sem valor ou sem referência. Como em outras linguagens, null é usado para denotar variáveis ​​não inicializadas ou vazias.

O seguinte é um exemplo de Nulo em PHP:

$myVar = NULL; // Declare a variable with a null reference

O null do PHP não é um objeto de um tipo de dados específico, mas sim uma constante especial que representa a ausência de um valor.

Pensamentos finais

Em sua jornada como programador Python, aprender sobre os valores None é de grande importância. É um recurso exclusivo que serve como a maneira do Python dizer “nada aqui”.

É essencial para representar a ausência de um valor. Compreendendo e usando None corretamente, você pode criar funções mais flexíveis com argumentos opcionais e lidar efetivamente com os dados ausentes.

Além disso, os valores None permitem que suas funções se comuniquem claramente quando algo está ausente ou quando uma condição não foi atendida. Além disso, entender None é crucial ao lidar com bancos de dados, objetos definidos pelo usuário ou quando você precisa inicializar variáveis.

Este guia sobre valores None em Python demonstra alguns dos cenários importantes em que você deseja usar o objeto None em seu código.

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.