Ir para conteúdo
DanielGrison

Como colocar duas condições num laço WHILE

Recommended Posts

Utilizando a linguagem Phyton.
Olá, preciso colocar duas condições num laço de repetição WHILE
É possivel fazer isto em phyton?

TENTEI O SEGUINTE:tempatamar=int(input('Informe se deseja uma escada com ou sem patamar, orientando-se por 1-COM // 2-SEM. Faremos o possivel dentro das obrigatoriedades para desenvolver a escada. '))

while (tempatamar != 1 ) or (tempatamar != 2):
    print ('Valor Invalido! Digite "1" para escada com patamar ou "2" para escada sem patamar')
    tempatamar=int(input(''))

print('Bem-Vindo ao LadderCalc!')
input("Tecle ENTER para prosseguir:\n")

Mas não funcionou, ele entra em looping.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer um while True e dentro dele traçar alguma condição para dar o break nele por exemplo

condicao_1 = "guilherme"
condicao_2 = "silva"
while True:
  if(condicao_1 == "guilherme" or condicao_2 == "silva"):
    break;
  else:
    ##segue o codigo daqui

Isso é uma forma mas existem varias outras.

No seu caso o que você precisa saber é quando aplicar o break; do while então ai vale a pena dar uma olhada em como condicionar variaveis nesse stack - https://stackoverflow.com/questions/181530/styling-multi-line-conditions-in-if-statements

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Caio_Lourençon
      Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas:   1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar.
      2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho?
       
      Agradeço qualquer informação.
    • Por marcosberaldo
      Pessoal, boa noite.
      Tenho uma tabela no BD que preciso criar um rankin.
      Fiz uma select que soma duas colunas, de pontuação e outra de desempate, depois ordena as somas por jogador e cria o ranking.
      Até ai está funcionando blz.
      Meu problema é o seguinte: Imagine que existam 100 jogadores, eu estou em 70º. Eu quero mostrar o rankin com a minha colocação, mas é inviável criar uma lista com mais de 70 jogadores. O que eu quero é mostrar 10 colocações antes de mim e 10 depois de mim, ou seja, mostrar do 60º ao 80º colocado, mas não consigo fazer isso.
      No meu código criei até um while que identifica minha colocação (70º), mas não consegui criar um while que exiba somente esses 20 jogadores. Se alguém souber como resolver... fico muito grato. Segue o código:
      $sql = "SELECT *, SUM(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE rodada = '$rodada' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acerto_Exato DESC"; // Inicia o While de pontuação $result = mysqli_query($conn, $sql); $result2 = mysqli_query($conn, $sql); $i = 1; // Define 1 para o primeiro lugar no ranking         // Esse while identifica minha posição no ranking         while($r = mysqli_fetch_assoc($result2)) {         $ID_Jog        =    $r['JogadorID'];         $Pos        =    $totalArray[$r['JogadorID']] = $i++;         if($LoginID == $ID_Jog) {          $Minha_Colocacao = $Pos;              }          }                   while($row = mysqli_fetch_assoc($result)) { $ID_Jogador        =    $row['JogadorID']; $Posicao        =    $totalArray[$row['JogadorID']] = $i++."º "; $RankJogador    =    $row['nome']; $Pontos            =    $row['TotalPontos']; $AcertoExato    =    $row['Acertos']; // Verifica se o usuário é o jogador logado e marca um style diferente para ele. if($LoginID == $ID_Jogador) {     // Se for o mesmo jogador define um fundo colorido para a linha dele na tabela     $destaque = "style=\"background-color:#e6a527\"";     //$Pos = explode('º',$Posicao);         } else {     // Caso não seja zera a variável novamente.     unset($destaque); } echo " <div class=\"divTableRow\" $destaque> <div class=\"divTableCell\" align=\"center\">$Posicao</div> <div class=\"divTableCell\" >$RankJogador</div> <div class=\"divTableCell\" align=\"center\">$Pontos</div> <div class=\"divTableCell\" align=\"center\">$AcertoExato</div> </div>"; }  
       
    • Por leardini
      Boa noite.
       
      Tenho uma consulta feita em PHP que mostra em uma table o resultado, e preciso que essa consulta o Valor do Campo "ID"  passe para uma Variável para que eu possa usar em outra consulta.
       
      Não consegui muita informação para o tipo de conexão que estou usando SQL Server e não My SQL, e é uns de meus primeiros códigos.
       
      Desde já agradeço a atenção!
       
      $rank = odbc_exec($connection, $verifica); if($pg == 1 or $pg == 0){ $i = 1; }elseif($pg > 1){ $i = $ini+1; } while($dados = odbc_fetch_array($rank)) { $id=$i+1; // AQUI OCORRE O PROBLEMA $idmomb = .$dados['id']; echo ($i % 2) ? "<tr>" : "<tr>"; echo '<td><center>'.$dados['ID'].'</center></td>'; echo '<td><center>'.$dados['MonsterName'].'</center></td>'; echo '<td><center>'.$dados['PublicDrop'].'</center></td>'; echo '<td><center>'.$dados['Quantity'].'</center></td>'; echo '</tr>'; $i++; } echo '</table>';  
    • Por mr22robot
      Estou com uma dúvida. É possível determinar um select a partir de uma escolha?
      Ex. 
      SELECT CASE WHEN a < b THEN select * from tabela1 WHEN d < e THEN select * form tabela2 END FROM tabela; Algo parecido. Se uma condição for atendida select1 , se outra condição for atendida: select2.
      O que acontece: estou com um relatorio que preciso criar no winthor e não consigo melhorar isso. Tenho de fazer três relatorios como solução. Se eu consigo implantar isso, eu faria somente um relatorio. 
      Tipo se marcar um campo, sai um relatorio. Se marcar outro, saí outro relatorio.
    • Por Maykel dos Santos Figueire
      Gostaria de saber como posso fazer para ter inputs enviando valores diferentes dentro de um loop do while...
      <form method="POST" name="form" action="<?php echo $_SERVER['PHP_SELF'];?>"> <?php while ($linhasMotoristas = mysqli_fetch_array($consultaMotoristas)) { $motoristasStatus = $linhasMotoristas['status']; $motoristasId = $linhasMotoristas['idmotoristas']; $motoristasNome = $linhasMotoristas['nome']; $motoristasCpf = $linhasMotoristas['cpf']; $motoristasGanhos = $linhasMotoristas['ganhos'] ?> <tr> <td class="s"> <?php if($motoristasStatus == 1){ echo "<div style='color: green;'>●</div>"; }else{echo "<div style='color: red;'>●</div>"; } ?> </td> <td class="m"><?php echo $motoristasId;?></td> <td class="n"><?php echo $motoristasNome;?></td> <td class="c"><input type="hidden" name="<?php $td_1 = $motoristasId;?>"><?php echo $motoristasCpf;?> </td> <td class="g"><?php echo round($motoristasGanhos, 2);?></td> <td> <input type="text" name="valorBruto"> <input type="submit" name="submit"> <?php if (isset($_POST['submit'])?$_POST['submit'] : 0) { $valorBruto = $_POST['valorBruto']; $porcentagemBase = 5/100; $encargosBase = 25/100; $vezesPorcentagem = $valorBruto*$porcentagemBase; $menosEncargosBase = $vezesPorcentagem-$encargosBase; $resultadoLiquido = $menosEncargosBase*$porcentagemBase; $resultadoGeral = $resultadoLiquido; } ?> <?php echo round($resultadoGeral,2); ?> <?php echo $td_1;?> </td> </tr> <?php } ?> </form> Como vocês podem ver na imagem, ele soma todos os campos com o mesmo valor, queria que somasse um valor para cada campo...

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.