Desafio
Boa noite estou tendo dificuldade com esse Desafio, alguém poderia me ajudar
Acesse bootcamps ilimitados e +650 cursos
Boa noite estou tendo dificuldade com esse Desafio, alguém poderia me ajudar
# Número de casos de teste
N = int(input())
# Índice para controlar os casos de teste
index = 0
# Processamento de cada caso de teste
while index < N:
try:
# Leitura dos valores A e B
A, B = input().split()
# Verifica se B corresponde aos últimos dígitos de A
if A.endswith(B):
print("encaixa")
else:
print("nao encaixa")
# Atualiza o índice para o próximo caso de teste
index += 1
except ValueError:
print("Formato de entrada inválido. Certifique-se de fornecer dois valores separados por espaço.")
Parece que está certo sim, mas há um outro detalhe, que só vi quando passou o exercício completo na última mensagem. Ele espera os valores de A e B, na mesma linha, e não em linhas separadas.
Vc fez:
A = input("Informe valor A: ")
B = input("Informe valor B: ")
Tente fazer pegando os 2 valores de A e B, num mesmo 'input', por ex:
A, B = input("Informe A e B, separado por um espaço: ").split()
Dessa forma o usuário, entraria com os valores na mesma linha, como está nos exemplos do exercício:
56234523485723854755454545478690 78690
E mais uma dica, geralmente esses exercícios são verificados bem ao pé da letra, e é possível que dê algum erro, por conta da mensagem que você colocou nos input. Então se der algum problema, tenta remover tbm a mensagem dentro dos input().
De resto me parece tudo certo, qualquer coisa volta ai!
DI
Desafio
Paulinho tem em suas mãos um novo problema. Agora a sua professora lhe pediu que construísse um programa para verificar, à partir de dois valores muito grandes A e B, se B corresponde aos últimos dígitos de A.
Entrada
A entrada consiste de vários casos de teste. A primeira linha de entrada contém um inteiro N que indica a quantidade de casos de teste. Cada caso de teste consiste de dois valores A e B maiores que zero, cada um deles podendo ter até 1000 dígitos.
Saída
Para cada caso de entrada imprima uma mensagem indicando se o segundo valor encaixa no primeiro valor, confome exemplo abaixo.
Exemplo de Entrada Exemplo de Saída
4
56234523485723854755454545478690 78690
5434554 543
1243 1243
54 64545454545454545454545454545454554
Esse seria o desafio
DI
n = int(input())
while(n > 0):
a = input("Informe o valor de A: ")
b = input("Informe o valor de B: ")
n = n - 1
if len(a) >= len(b):
if (a[(len(a) - len(b)):]) == b:
print("encaixa")
else:
print("nao encaixa")
else:
print("nao encaixa")
OBS: Seria assim ?
Boson treinamentos é legal sim! Pra python, eu indico tbm o Guanabara no youtube.
E não precisa pedir desculpa não, estamos ai pra trocar experiências mesmo!
O exercício diz que vai ter um número de entrada, o N. Esse N, basicamente diz quantas vezes o programa deve perguntar pro usuário o valor de A e B.
Vamos supor que usuário digitou 5 para o N.
O seu while(n > 0), ou seja (5 > 0), vai ser verdadeiro, logo entrará no while. Vai pedir o valor de A, depois o valor de B, e verificar se o B corresponde ao final de A. Mas dentro do seu while vc seta n = n + 1, ou seja N agora vale 6.
Após fazer tudo que está dentro do while, ele volta para a condição do while(n > 0), para uma nova iteração, mas agora o N é 6, (6 > 0), e será verdadeiro novamente, e vai fazer tudo de novo. Você percebe que na próximo rodada, o N vai ser 7, depois 8... 9... e etc? Isso quer dizer que seu laço while nunca será falso, o while nunca vai parar, o N sempre vai ser maior que 0, e seu programa nunca vai parar, sem ser interrompido na unha.
Se ao invés de você incrementar o n, fazendo n=n+1, você decrementar n=n-1, o N em algum momento será 0, concorda? Pois a cada vez que ele entra no laço while, é substraído 1 de N. E então seu while, uma hora vai falhar (0 > 0), será falso. Ai ele pula o while e continua com as instruções seguintes, fora e após o while.
Será que deu pra ajudar? rsrs
Oi Diego.
Não sei se você já conseguiu descobrir o conteúdo sobre como funciona a estrutura while no Python. Se não, vou deixar o link de um video que explica esse assunto bem do princípio:: https://www.youtube.com/watch?v=oUXUVVP2_6E
O nome do canal se chama Boson Treinamentos - quando estava aprendendo Python, eu sempre consultava os víideos desta playlist e ela me ajudou bastante (principalmente pela didática do professor e o fato dos vídeos serem diretos e sem enrolação).
DI
Desculpa, mas não entendi o laço WHILE. ainda fiquei confuso. tem algum lugar onde eu possa saber mais?
DI
Muito obrigado vou tentar algo aqui, com suas dicas
Abraços
Opa, boa noite!
Antecipadamente, peço desculpas caso essa ajuda aqui esteja errada.
Parece que seu while está infinito. Dentro dele vc está incrementando o n ao invés de decrementar, pra quando o n for igual 0, a condição do while falhar.
E acho que tem outro erro na condição do seu if interno(o segundo). Vou dar uns exemplos com valores fictícios:
a = "abcdefghijkl"
b = "ijkl"
O a tem length 12, o b tem length 4. Substituindo os valores nesse seu if a[len(a)+len(b):], ficaria:
if a[16:] == b
Acontece que o índice 16 não existe em a. Deveria ser a[8:], não acha? Que conta vc poderia fazer, ao invés de a[len(a) + len(b):], pra pegar o indice 8 até o fim da string a, e não o indice 16? rsrs
No python você também pode selecionar elementos de uma lista de trás para frente com o sinal de subtração(-). Por ex a[-1:] pegaria a última letra,"l", da string a. Quer dizer que a[-4:], pegaria as 4 letras de trás pra frente da string a.
Tenta ai, e qualquer coisa escreve de novo.
Abs
dA
EA