Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luis Carlos Moura

Ajuda a utilizar o while

Recommended Posts

Sou um iniciante no Python e estou precisando de ajuda a utilizar ele para realizar o loop para diminuir linhas do programa.
O programa serve para verificar numericamente a probabilidade de um certo evento acontecer.

O script do programa é:

 

from itertools import product
from math import *

from numpy import*

 

#Espaço Amostral, Eventos e Probabilidades para a combinação de dados (D4,D6,D8):

 

X=18

 

espaco = list(product(range(1, 4+1), range(1, 6+1), range(1, 8+1)))
TAM1 = size(array(espaco))/3

 

evento = [ x for x in espaco if x[0] + x[1] + x[2] == X]
evento_1 = [ x for x in espaco if x[0] + x[1] + x[2] == X-1]
evento_2 = [ x for x in espaco if x[0] + x[1] + x[2] == X-2]
evento_3 = [ x for x in espaco if x[0] + x[1] + x[2] == X-3]
evento_4 = [ x for x in espaco if x[0] + x[1] + x[2] == X-4]
evento_5 = [ x for x in espaco if x[0] + x[1] + x[2] == X-5]
evento_6 = [ x for x in espaco if x[0] + x[1] + x[2] == X-6]
evento_7 = [ x for x in espaco if x[0] + x[1] + x[2] == X-7]
evento_8 = [ x for x in espaco if x[0] + x[1] + x[2] == X-8]
evento_9 = [ x for x in espaco if x[0] + x[1] + x[2] == X-9]
evento_10 = [ x for x in espaco if x[0] + x[1] + x[2] == X-10]
evento_11 = [ x for x in espaco if x[0] + x[1] + x[2] == X-11]
evento_12 = [ x for x in espaco if x[0] + x[1] + x[2] == X-12]
evento_13 = [ x for x in espaco if x[0] + x[1] + x[2] == X-13]
evento_14 = [ x for x in espaco if x[0] + x[1] + x[2] == X-14]
evento_15 = [ x for x in espaco if x[0] + x[1] + x[2] == X-15]
evento_16 = [ x for x in espaco if x[0] + x[1] + x[2] == X-16]
evento_17 = [ x for x in espaco if x[0] + x[1] + x[2] == X-17]

 

TAM2 = size(array(evento))/3
TAM2_1 = size(array(evento_1))/3
TAM2_2 = size(array(evento_2))/3
TAM2_3 = size(array(evento_3))/3
TAM2_4 = size(array(evento_4))/3
TAM2_5 = size(array(evento_5))/3
TAM2_6 = size(array(evento_6))/3
TAM2_7 = size(array(evento_7))/3
TAM2_8 = size(array(evento_8))/3
TAM2_9 = size(array(evento_9))/3
TAM2_10 = size(array(evento_11))/3
TAM2_11 = size(array(evento_12))/3
TAM2_12 = size(array(evento_13))/3
TAM2_13 = size(array(evento_14))/3
TAM2_14 = size(array(evento_15))/3
TAM2_15 = size(array(evento_16))/3
TAM2_16 = size(array(evento_17))/3
TAM2_17 = size(array(evento_17))/3

 

A = TAM2*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_1*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_2*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_3*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_4*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_5*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_6*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_7*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_8*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_9*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_10*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_11*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_12*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_13*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_14*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_15*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_16*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_17*(1.0/TAM1)


print(round(A*100, 2))

 

Ao iniciar o scrip sairá:
0.52
1.56
3.13
5.21
7.29
9.38
10.94
11.98
11.98
10.94
7.29
5.21
3.13
1.56
0.52
0.0
0.0
0.0

 

Eu queria diminuir o tamanho desse programa utilizando um loop, tendo os mesmo resultados no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por vicente386
      Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
      estou tentando fazer assim:
      <?php > ini_set('max_execution_time', 2000); $pdo = new > DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD); > $sql = $pdo->prepare("SELECT count(*) FROM tabela2018"); > $sql->execute(); > $livro = 1; > foreach($sql as $obj){ > $variavel = $obj[0]; > ceil((float)$variavel/100); > $qtdlaco = ceil((float)$variavel/100); > for ($id = 1; $id <= 35; $id++) { > for($L=1; $L < $qtdlaco; $L++) { > for ($P = 0; $P <= 30; $P++) { > $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id"); > $sql->bindValue(':LIVRO', $livro); > $sql->bindValue(':POS', $P); > $sql->bindValue(':PAGINA', $L); > $sql->execute(); > } > } > } >} ?> mas na tebela so aparece: LIVRO POS PAGINA 1 30 83 1 30 83 1 30 83 e nao como deveria : LIVRO POS PAGINA 1 0 1 1 1 1 1 2 1
    • Por Marcosvn
      Quero desenvolver um site semelhante a esse: https://www.catalogosofertas.com.br/ 
       
      No qual eles enviam diversas ofertas e encartes recentes de lojas em geral e supermercados. Eles possuem muito conteúdo que são atualizados frequentemente, no entanto, muitos dos supermercados, por exemplo, não possuem os folhetos de cada cidade em seus sites. De modo que pudesse criar um scraper pra ficar acompanhando as atualizações. 
       
      Ao mesmo tempo não imagino que eles tenha muitos funcionários fazendo isso, pois são muitas lojas e supermercados que o encarte vence em alguns dias. Oq me faz pensar que manualmente é inviável manter as atualizações.
       
      Queria saber de vocês, que tem experiência com a área ou mesmo que já tenham trabalhado em projetos semelhantes, como posso me organizar para fazer isso acontecer assim como no site de exemplo: https://www.catalogosofertas.com.br/ 
       
      Como posso fazer isso ? Realmente teria q ficar criando diversos scraper e códigos pra ficar acompanhando os encartes de cada loja e supermercado?
       
      Qual dica, sugestão , orientação poderá me ser muito útil, pois estou confuso sobre como fazer isso acontecer.
    • Por chinesedg
      Estou desenvolvendo um código para imobiliária mas não estou conseguindo fazer o pulo entre divs. Usando este código abaixo descaracteriza o layout da página pois o loop pega somente 1 <div class="events-grids"></div> e tem que ser dois sendo que no primeiro pega ids 1 2 3 e o segundo ids 456 e assim por diante. Na imagem penso vocês entenderem o que estou pedindo. Fui claro?
      Código:
      <div class="events">
              <div class="container">
              <?php
                  $conexao = bla bla bla
                      $banco = bla bla bla;
                  if (!$conexao) {
                      die("Connection failed: " . mysqli_connect_error());
                  }
                  $query = "SELECT * FROM imoveis";
                      $result = mysqli_query($conexao, $query);
                      if($result){
                          while($row = mysqli_fetch_array($result)){
                              $ref = $row["ref"];
                              .
                              .
      ?>
                  <div class="events-grids">
                      <div class="col-md-4 events-grid">
                          <div class="events-grid1 hvr-sweep-to-top">
                              <a href="imovel.php"><img src="images/6.jpg" alt=" " class="img-responsive" /></a>
                              <h4><a href="imovel.php"><?php echo "$bairro"; ?></a></h4>
                              <ul>
                                  <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?php echo "$cidade"; ?></a></li>
                              </ul>
                              <p>Quartos: <?php echo "$quartos"; ?> | Suites: <?php echo "$suites"; ?> | Banheiros: <?php echo "$banheiros"; ?> | Vagas: <?php echo "$vagas"; ?> | Condomínio: <?php echo "$condominio"; ?></p>
                              <h4><a href="imovel.php"><?php echo "$preco"; ?></a></h4>
                          </div>
                      </div>
                      
                  <?php
                      }
              }
              ?>
                  </div>            
              </div>
          </div>

    • Por Bruno Soares Slva
      Boa tarde pessoal,
      Estou com problemas para criar um robô. O mesmo esta dando na linha em negrito. Segue abaixo o erro que está aparecendo. Alguma informação. Estou usando o VSCode versão: 1.73.0, Python versão 3.8.0, chromedriver versão 18 (antepenúltima). Segue código e erro abaixo:
       
      Erro mostrado: 
       
      Windows PowerShell
      Copyright (C) Microsoft Corporation. Todos os direitos reservados.        
      Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6   
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52080' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py'
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse>  c:; cd 'c:\Users\soare\Documents\Estudos\Python\projectCourse'; & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52168' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py' 
      Traceback (most recent call last):
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
          return _run_code(code, main_globals, None,
        File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
          exec(code, run_globals)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
          cli.main()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
          run()
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
          runpy.run_path(target, run_name="__main__")
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
          code, fname = _get_code_from_file(run_name, path_name)
        File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 294, in _get_code_from_file
          code = compile(f.read(), fname, 'exec')
        File "c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py", line 17
          driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
                                    ^
      SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
      PS C:\Users\soare\Documents\Estudos\Python\projectCourse> 
       
       
      Obsrvação: 
      O erro está caindo nesta linha
      driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
       
       
       
      Codigo:
          from selenium import webdriver from selenium.webdriver.common.keys import Keys import time   options = webdriver.ChromeOptions() options.add_argument('--disable-logging') options.add_argument('--log-level=3')     driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options) driver.get("https://registro.br/")   pesquisa = driver.find_elements_by_id('is-avail-field') pesquisa.clear() pesquisa.send_keys('roboscompython.com.br') pesquisa.send_keys(Keys.RETURN)   time.sleep(8) driver.close()

         
       
       
       
       
       
       
       
       
       
    • Por Rafael Castelhano
      Boa tarde,
       
      Estou tentando criar uma imagem dinamicamente por javascript e carregá-la no input do formulário, apesar da imagem ser gerada corretamente, ao validar o formulário no python é retornado um erro alegando que o arquivo de imagem é inválido ou está corrompido.
       
      Segue gist com o código:
      https://gist.github.com/castelhano/bd72947e13421606453798bbf219cc74
×

Informação importante

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