lógica – Una explicacion didactica para funciones basicas de Python

Soy nueva en Python y no he podido entender a plenitud la logica de las funciones basicas while, while true, for in y def. Alguna idea facil y didactica para una persona como yo que requiere de una tecnica mas didactica que tecnica.
He estado usando estas funciones pero mas a la ciega que siendo conciente de lo que en realidad estoy haciendo.
Gracias de antemano por quien pueda interesarse en mi dificultad.

variáveis – Lógica de programação (Portugol) (VisualG). Como essa variável (MA) consegue me mostrar o nome exato do aluno que obteve a maior nota?

O programa está funcionando perfeitamente. A minha dúvida é somente sobre esse algoritmo, não consigo entender como essa variável (MA) consegue me mostrar a maior nota apenas com a atribuição MA <- A. Se alguém conseguir me esclarecer essa questão eu agradeço.

Algoritmo "ContadorMaiorNota"

Var

   Q, contador: Inteiro

   N, MAIOR: Real

   A, MA: Caractere

Inicio

   contador <- 1

   Escreval("------------------------")

   Escreval(" ESCOLA ESTUDIOSOS ")

   Escreval("------------------------")

   Escreval("Quanto alunos tem na turma?")

   Leia(Q)

   Enquanto (contador <= Q) faca

      Escreval("Aluno ", contador)

      Escreval("Nome do aluno: ")

      Leia(A)

      Escreval("Nota do ", A,":")

      Leia(N)

      contador <- contador +1

      Se (N > MAIOR) entao

         MAIOR <- N

         MA <- A

      FimSe

   FimEnquanto

   Escreval("O maior aproveitamento foi o de ",MA," com a nota", MAIOR)

FimAlgoritmo

Dúvida em lógica de exercício de Python (Iniciante)

Olá, comecei recentemente meu estudo em Lógica de Programação em Python. Tenho uma pequena base em C. Me deparei com um exercício na internet no qual diz o seguinte:

“Faça um Programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 6 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00 ou em galões de 3,6 litros, que custam R$ 25,00.
Informe ao usuário as quantidades de tinta a serem compradas e os respectivos preços em 3 situações:

comprar apenas latas de 18 litros;

comprar apenas galões de 3,6 litros;

misturar latas e galões, de forma que o desperdício de tinta seja menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias.”

O problema é que eu cheguei no terceiro cenário e não consegui desenvolver o pensamento correto de como deveria fazer para calcular a forma de maior custo x benefício. Alguém poderia dar uma dica e informar se a lógica que eu tô seguindo está correta ?

Código:

metros = float(input("Informe os m²: "))
litros = metros/6
if(metros%108 > 0 and metros%21.6>0): 
latas = metros//108
latas = latas + 1
preçol = latas * 80
galao = metros//21.6
galao = galao + 1
preçog = galao * 25
print("Você vai precisar de: {} latas de 18L e vai gastar {} reais".format(latas,preçol))
else:
latas = metros/108
preçol = latas * 80
galao = metros/21.6
preçog = galao * 25
print("Você vai precisar apenas de {} latas de 18L e vai gastar {} reais".format(latas,preçol))
print("Você vai precisar apenas de {} galao de 3,6L e vai gastar {} reais".format(galao,preçog))

lógica – concatenar y sumar en prolog

una consulta estoy empezando en prolog y tengo un problema al momento de concatenar , sumar y usar el format, lo que quiero hacer , es que los datos sean los nombres y si la operacion de las notas son mayores a 11 como en el formato,salga aprobo o desaprobo ,pero me sale error.

introducir el código aquí
%suma
promedio:- write('ingrese los datos:'),
            read(A),
            write('ingrese la nota1:'),
            read(B),
            write('ingrese la nota2:'),
            read(C),
            D is (B+C)/2,
            D>=11,D='Aprobado',
            D<11, D='Desaprobado',
            format(A,'tu estas ~w',(D)).

introducir la descripción de la imagen aquí

python – Lógica de Programação

Foi realizada uma pesquisa de audiência de canal de TV em várias casas de uma certa cidade, num determinado dia. Para cada casa visitada foi fornecido o número do canal (2, 4, 7 ou 9) e o número de pessoas que estavam assistindo o canal naquele exato momento. É importante saber que se a televisão estivesse desligada, nada era anotado, ou seja, esta casa não entrava na pesquisa. Sabe-se que o canal 2, 4, 7 e 9, são, respectivamente às emissoras CULTURA, GLOBO, BAND e RECORD.Então, você foi contratado para fazer um programa em Python que:1.Leia um número indeterminado de dados, sendo que esta leitura deverá ser feita enquanto houverem casas a serem entrevistadas;2.Calcule a percentagem de audiência para cada emissora;3.Imprima o número do canal e sua respectiva percentagem;4.Imprima o nome da emissora que obteve a maior audiência, segundo a pesquisa.

Não consegui entender a lógica desse exercício

Considere que a variável is_ready é do tipo booleano. Qual declaração está correta e é a forma mais sucinta de testar se is_ready é verdadeiro?

if (is_ready):

if (is_ready == True):

if (not is_ready = False):

if (not is_ready == False):

if (is_ready = True):

pandas – Relacionar dois dataframes utilizando lógica em python

Olá, necessito relacionar os dois dataframes abaixo utilizando como condições (i) se ‘cat’ do df1 está na tupla da coluna ‘cat’ do df2; e (ii) a coluna ‘evento’. O resultado deveria ser uma coluna ‘resp’ no df1 que contem os respectivos dados na df2.

Abaixo deixo os exemplos de dataframes que se assemelham ao original:

import pandas as pd 

df1 = pd.DataFrame({
    'Nome': ('João', 'Maria', 'Antonio', 'Pedro', 'João', 'Maria', 'Antonio', 'Pedro'),
    'cat': ('A', 'A', 'B', 'C', 'A', 'A', 'B', 'C'),
    'evento': (1, 1, 1, 1, 2, 2, 2, 2),
    'sim/não': ('sim', 'não', 'sim', 'sim', 'não', 'sim', 'não', 'sim')
   })

df2 = pd.DataFrame({
    'cat': (('A', 'B'), ('C'), ('A', 'B'), ('C')),
    'evento': (1, 1, 2, 2),
    'resp': ('sim', 'não', 'não', 'não')
   })

O dataframe final deveria ficar assim:

df_resultado = pd.DataFrame({
    'Nome': ('João', 'Maria', 'Antonio', 'Pedro', 'João', 'Maria', 'Antonio', 'Pedro'),
    'cat': ('A', 'A', 'B', 'C', 'A', 'A', 'B', 'C'),
    'evento': (1, 1, 1, 1, 2, 2, 2, 2),
    'sim/não': ('sim', 'não', 'sim', 'sim', 'não', 'sim', 'não', 'sim'),
    'resp': ('sim', 'sim', 'sim', 'não', 'não', 'não', 'não', 'não')
   })

Pensei em utilizar o método “merge” da seguinte forma:

df_resultado = df1.merge(df2, how='left', on=('evento', 'cat'))

Contudo, com essa lógica a coluna ‘resp’ no df1 fica com valores nulos para as ‘cat’ A e B, já que o método analizou as tuplas que estão em df2.

Poderiam, por gentileza, me indicarem a sintaxe para fazer essa relação corretamente?

lógica – dúvida em como montar o algoritmo no VisuALG

é um algoritmo que deve retornar o dia da semana segundo o número correspondente, eu tentei escrever o algoritmo, porém ainda não entendi muito bem onde colocar o leia(mes), leia(ano), leia(dia).

//
//
// Descrição   : retorna o dia da semana
// Autor(a)    : Ana
// Data atual  : 07/03/2021
Var
   A, B, C, D, Ei, F, G, H, I, J : inteiro
   mes, ano, dia : inteiro

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...


   escreval ("alguma coisa aqui")
   A <- o int ((12 - mes) ÷ 10)
   leia(mes)
   B <- ano - A
   leia(ano)
   C <- mes + (12 x A)
   D <- o int  (B ÷ 100)
   Ei <- o int (D ÷ 4)
   F <- 2 - D + Ei
   G <- o int (365,25 x B)
   H <- o int  (30,6001 x (C + 1))
   I <- F + G + H + dia + 5
   leia(dia)
   J <- o resto (I ÷ 7)

   switch (j)
   caso 0:
   escolha "Sábado"
   caso 1:
   escolha "Domingo"
   caso 2:
   escolha "Segunda"
   caso 3:
   escolha "Terça"
   caso 4:
   escolha "Quarta"
   caso 5:
   escolha "Quinta"
   caso 6:
   escolha "Sexta"
   senao :
   escolha "Erro ao tentar retornar o dia da semana";





Fimalgoritmo
Fimescolha   

Problema de lógica simples – Stack Overflow em Português

Obrigado por contribuir com o Stack Overflow em Português!

  • Certifique-se de responder à pergunta. Entre em detalhes sobre a sua solução e compartilhe o que você descobriu.

Mas evite

  • Pedir esclarecimentos ou detalhes sobre outras respostas.
  • Fazer afirmações baseadas apenas na sua opinião; aponte referências ou experiências anteriores.

Para aprender mais, veja nossas dicas sobre como escrever boas respostas.

lógica – Runtime error em python 3.8 – URI

Estou praticando uns exemplos no URI Online Judge e cheguei a este exemplo:

inserir a descrição da imagem aqui

E tentei a seguinte solução:

numeros = input().split();
N1, N2, N3, N4 = float(numeros(0)), float(numeros(1)), float(numeros(2)), float(numeros(3))

NotaExame = float(input())

M = (N1 * 2 + N2 * 3 + N3 * 4 + N4) / 10
print("Media:", M)

if M >= 7:
    print("Aluno aprovado.")
elif M < 5:
    print("Aluno reprovado.")
elif 5 <= M <= 6.9:
    print("Aluno em exame.")
    print("Nota do exame:", NotaExame)

    NovaMedia = (M + NotaExame) / 2

    if NovaMedia >= 5:
        print("Aluno aprovado.")
    else:
        print("Aluno reprovado.")

    print("Media final:", NovaMedia)

Porém, obtive o seguinte erro na linha 4:

RUNTIME ERROR

Traceback (most recent call last):
  File "Main.py", line 4, in 
    NotaExame = float(input())
EOFError: EOF when reading a line

O URI é bem rígido nas suas entradas e saídas saírem idênticas a como ele deseja.

Coloquei aquela NotaExame alí porquê ao colocar dentro do elif da linha 13 (Pois o exemplo deixa a entender que esta entrada é para ocorrer apenas se o aluno ficar na condição para realizar o exame) acabou resultando em Wrong Answer (5%), então achei melhor tentar corrigir o Runtime Error, que acredito estar mais próximo do resultado.