1
resposta

[Dúvida] Esta forma esta válida?

Ao invés de usar o starwith ou endswith usei um slicing

url = input("Digite a URL para validação: ")


if url[:8] == "https://" and  url[-4:] == ".com":
    print("URL Válida!")
else:  
    print("URL inválida!")
1 resposta

Oii, Gustavo! Tudo bem?

Sim, sua solução é totalmente válida e funciona perfeitamente! Mandou muito bem na lógica.

O que você aplicou aí foi o Slicing (fatiamento de strings). Vamos analisar por que isso funciona e qual a diferença para o método sugerido pelo instrutor:

Por que seu código funciona?

Você entendeu corretamente como acessar partes específicas da string pelos índices:

  • url[:8]: Pega exatamente os primeiros 8 caracteres. Como "https://" tem 8 caracteres, a comparação bate certinho.
  • url[-4:]: Pega exatamente os últimos 4 caracteres. Como ".com" tem 4 caracteres, também funciona.

Comparando: Slicing vs. Métodos (startswith/endswith)

Embora sua solução funcione, no dia a dia de desenvolvimento Python, a preferência costuma ser pelos métodos startswith() e endswith(). Os motivos principais:

  1. Legibilidade (leitura humana):
    O código fica mais parecido com a linguagem natural (inglês).
  • if url.startswith("https://") lê-se: "Se a url começa com..."
  • if url[:8] == "https://" exige que quem lê o código pare para contar quantos caracteres existem ali para entender o que o 8 significa.
  1. Evitar erros de contagem:
    Imagine que a regra mude e você precise verificar http:// (sem o 's'). Você teria que lembrar de mudar o [:8] para [:7]. Usando o método, o Python calcula o tamanho sozinho, evitando erros manuais.

A sua lógica de programação tá excelente e mostra que você domina a manipulação de índices em strings! O uso dos métodos prontos (startswith) é apenas uma "melhor prática" para deixar o código mais fácil de ler e manter no futuro.

Parabéns por explorar outras formas de resolver o mesmo problema! Continue assim.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!