Criei um Objeto Iterável, mas não sei explicar porquê ele funciona

Olá, pessoal.

Estou resolvendo uma lista de exercícios de Python (3.7) e no primeiro exercício foi pedido que eu, no item A), criasse uma função geradora que escaneia uma string procurando a substring desejada e, no item B), que eu criasse um objeto iterável para que eu usasse no primeiro método.

Consegui fazer e entender bem o item A), mas no B), apesar de eu ter conseguido resolver, não estou entendendo o porquê do meu código dar funcionar corretamente.

Mais especificamente, a minha dúvida está em por que a minha construção do iterável está correta e por que o meu loop for para ele funciona corretamente, isso porque não estou conseguindo compreender como o:

  • for k in ScanStringPart(StrObj.ObjString, StrObj.ObjSegmento):

    • print(k)

funciona.

Desde já, agradeço.

#EXERCICIO 1  #ITEM A)  def ScanStringPart(String, Segmento):     #   Primeiro vamos checar se o que estamos a procurar sequer existe na string.     if Segmento in String:         for i in range(0,len(String),len(Segmento)):             #   Temos que testar se o tamanho do segmento é igual ou maior do que 1.             #   Se for igual, não podemos usar o caso do "elif String[i + 1 : i + 1 + len(Segmento)] == Segmento:"             # porque isto produziria redundâncias.             if len(Segmento) == 1:                 if String[i : i + len(Segmento)] == Segmento:                     yield(i)             elif len(Segmento) > 1:                 if String[i : i + len(Segmento)] == Segmento:                     yield(i)             #   Este elif serve para os casos onde aparece um número ímpar de caracteres antes do caractere pesquisado.                 elif String[i + 1 : i + 1 + len(Segmento)] == Segmento:                     yield(i + 1)  """ Dá pra resolver o Item A) com o método str.find() ou str.index() """   #ITEM B) """Crie uma classe que define um objeto iterável.                                                                                               -> OK.  Essa classe deve possuir o método construtor e os dois métodos necessários para tornar o objeto iterável (__iter__ e __next__ ).                -> OK.  O método construtor deve possuir como argumentos a string e o segmento e devem ser criados atributos para ambos argumentos recebidos.           -> OK.  Os métodos necessários para a iteração devem respeitar o protocolo de iteração e retornar a posição correta a cada iteração.  (Não se preocupe se aparecer a palavra None em algumas das iterações – é possível resolver sem None, mas não é necessário no exercício.)"""  class IterStrObject(object):     def __init__(self, String, Segmento):         self.ObjString = String         self.ObjSegmento = Segmento      def __iter__(self):         self.i = 0         return self      def __next__(self):         if self.i > len(self.ObjString):             raise StopIteration         self.i += 1         return self.i # TESTES  StrObj = IterStrObject('bbbbbb', 'bbb')  for k in ScanStringPart(StrObj.ObjString, StrObj.ObjSegmento):     print(k)  # String1 = 'engenharia' # String2 = 'bbbbbb' # Segmento1 = 'n' # Segmento2 = 'en' # Segmento3 = 'bb' # ScanStringPart(String1, Segmento1) # ScanStringPart(String1, Segmento2) # ScanStringPart(String2, Segmento3) 

llamada ajax no funciona

Estoy iniciando en este mundo de Javascript con JQUERY y estoy haciendo un proyecto estoy utilizando paginas aspx para renderizar JSON a traves de Webmethod con Newtonsoft.JSON y en el frontend estoy utilziando paginas HTML. En un archivo JS coloco todo mi codigo Javascript-JQUERY y utilizo funciones para ejecutar la lógica del lado cliente.

El problema es que tengo un Webmethod que despliega un JSON

Webmethod despliega datos serializados en JSON

Hasta aquí todo bien, eso creo.

El problema es que estoy llamando el JSON desde Ajax vía la pulsación del evento click del botón, mi función se encuentra dentro del archivo de librería .JS y cuando debugueo via Chrome entra correctamente a la función y ejecuta varios pasos previos correctamente pero cuando entra a la linea $ .ajax({}) simplemente salta hacia el final y no procesa el llamado de la Servicio Web.

introducir la descripción de la imagen aquí

La función siguiente obtiene el valor del input usuario y lo valida previamente vía otra función, dependiendo del resultado pasa a la llamada ajax para pasar el parámetro vía la propiedad data: JSON.stringify({ _cedula: _ced}). _cedula es el parámetro que tiene la función del Webmethod para hacer el filtro y retornar el resultado. introducir la descripción de la imagen aquí

En conclusión, no entra de la llamada ajax cuando hago el DEBUG en chrome y por ende no va a procesar la lógica para continuar si no hace esta parte, como novato en Javascript no se que estoy haciendo mal, si alguien me pudiera orientar. Gracias de antemano.

P.D. he visto videos y tutoriales y no doy con el problema..

requisição ajax com array so funciona com um elemento

essa é minha requisição enviada do JSP:

function addItem(){   var array =  [     {"quantidade":"1","valorUnd":10,"produto":      {"id":"1","grades":[{"propriedade":{"id":"2"},"classe":{"id":"1"}}]}     },     {"quantidade":"1","valorUnd":10,"produto":      {"id":"2","grades":[{"propriedade":{"id":"3"},"classe":{"id":"2"}}]}     },     {"quantidade":"1","valorUnd":10,"produto":      {"id":"3","grades":[{"propriedade":{"id":"4"},"classe":{"id":"3"}}]}     } ];   array = JSON.stringify(array);   $  .ajax({          headers: {                  'Content-Type': 'application/json',                 'dataType' : 'json'         },         type: "POST",          url : 'addItem',         data : array,          success : function(result) {             document.formulario.submit();         },          error: function (jqXHR, textStatus, msg) {             alert(msg);         }     });  

}

esse é o meu controller:

@RequestMapping(value = "addItem", method = RequestMethod.POST) public @ResponseBody void addItem(@RequestBody ItemEntrada[] array,HttpServletRequest request) {      /*      * ações do metodo     */     }  }    

executando assim recebo um 400 (Bad Request), porém se deixo apenas um objeto no array não da erro:

 var array =  [     {"quantidade":"1","valorUnd":10,"produto":      {"id":"1","grades":[{"propriedade":{"id":"2"},"classe":{"id":"1"}}]}     } ];  

ou, se tiro as grades dos produtos também funciona:

var array =  [     {"quantidade":"1","valorUnd":10,"produto":      {"id":"1"}     },     {"quantidade":"1","valorUnd":10,"produto":      {"id":"2"}     },     {"quantidade":"1","valorUnd":10,"produto":      {"id":"3"}     } ];  

porém não acho que o problema sejam as grades já que funciona quando deixo apenas um objeto no array. alguem tem alguma idéia do pode estar acontecendo?

Bootstrap o CSS no funciona en localhost o con PHP

Hola a todos y gracias por leer.

Tengo un pequeño problema que me surgió de esta pregunta que hice hace poco: Ajustar texto en celdas y Responsive Table con Bootstrap

La idea es básicamente optimizar y ajustar una tabla al ancho del navegador y que además sea responsive, es decir, quería que la tabla genere la barra de desplazamiento horizontal cuando el navegador esté totalmente maximizado, cosa que no sucedía, pero si lo hacía cuando lo achicaba.

La cuestión es que en la pregunta yo copio el código html pero en la realidad, mi código está escrito en una mezcla con PHP:

<!DOCTYPE html> <html lang="es"> <head>     <meta charset="UTF-8">     <title>OPERAR CON PROVEEDORES</title>     <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css">     <link rel="stylesheet" type="text/css" href="css/estilos.css"> </head> <body>     <?php         include"php/navbar.php";         include_once "php/conexion.php";         $  query = $  con->query("SELECT * FROM proveedores;");     ?>     <div class="container">         <div class="row">             <!-- <h2>PROVEEDORES</h2> -->             <div class="col-md-12">                 <div class="table-responsive">                     <table class="table table-hover  table-responsive table-condensed" border="0">                         <thead>                             <tr>                                 <th scope="col">ID</th>                                 <th scope="col">Nombre</th>                                 <th scope="col">CUIT</th>                                 <th scope="col">IVA</th>                                 <th scope="col">Dirección</th>                                 <th scope="col">Número</th>                                 <th scope="col">Piso</th>                                 <th scope="col">Puerta</th>                                 <th scope="col">Ciudad</th>                                 <th scope="col">Provincia</th>                                 <th scope="col">CP</th>                                 <th scope="col">Pais</th>                                 <th scope="col">Teléfono</th>                                 <th scope="col">Mail</th>                                 <th scope="col">Edición</th>                             </tr>                         </thead>                         <tbody>                              <?php foreach(mysqli_fetch_all($  query, MYSQLI_ASSOC) as $  proveedor){ ?>                                 <tr>                                     <th scope="row"><?php echo $  proveedor['id'] ?></th>                                     <td><?php echo $  proveedor['nombre'] ?></td>                                     <td><?php echo $  proveedor['cuit_tipo']."-".$  proveedor['cuit_dni']."-".$  proveedor['cuit_al'] ?></td>                                     <td><?php echo $  proveedor['iva'] ?></td>                                     <td><?php echo $  proveedor['direccion'] ?></td>                                     <td><?php echo $  proveedor['num'] ?></td>                                     <td><?php echo $  proveedor['piso'] ?></td>                                     <td><?php echo $  proveedor['puerta'] ?></td>                                     <td><?php echo $  proveedor['ciudad'] ?></td>                                     <td><?php echo $  proveedor['provincia'] ?></td>                                     <td><?php echo $  proveedor['cp'] ?></td>                                     <td><?php echo $  proveedor['pais'] ?></td>                                     <td><?php echo $  proveedor['codigo_area']."-".$  proveedor['telefono'] ?></td>                                     <td><?php echo $  proveedor['email'] ?></td>                                     <td><a class="btn btn-block btn-warning" href="<?php echo "editar.php?id=" . $  valores['nombre'] ?>"><i class="fa fa-edit">EDITAR</i></a></td>                                 </tr>                                 <?php } ?>                         </tbody>                     </table>                 </div>             </div>         </div>     </div> </body> </html> 

Ahora, cuando ejecuto el código, las tablas no funcionan como quisiera, es decir, la tabla ocupa todo el ancho del navegador y más, y es el mismo navegador el que me genera la barra de desplazamiento horizontal, es decir, la tabla no es responsive. Cuando achico el navegador, la tabla se vuelve responsive y genera la barra de desplazamiento.

Ahora, lo que hice luego fue copiar el código fuente en HTML puro y ejecutarlo sin PHP y me ha generado dos resultados:

  • Por un lado, cuando ejecuto el código HTML desde el navegador, y en la url se encuentra la ubicación del archivo desde file:///C:/xampp/htdocs/… , la tabla funciona como debería funcionar, es decir, se vuelve responsive con el navegador totalmente maximizado, es decir, funciona que debería, o como quiero que funcione. PERO:
  • Por otro lado, cuando ejecuto el mismo código HTML, pero esta vez desde localhost, deja de funcionar y la tabla vuelve a superar el ancho del navegador. Es más, la clase class="table-responsive" de Bootstrap no funciona en la etiqueta <table>, sino que solo funciona en una etiqueta <div>.

Espero se entienda el problema. Gracias!

¿Por qué no funciona “.dispose()” en mi código? (JAVA)

Buenos días y saludos a todos.

Tengo un JFrame principal (main) que es un formulario de LOGIN. En este JFrame principal (main) tengo un botón de “Crear usuario” que lleva a otro JFrame (frameNuevoUsuario).

Necesito que al hacer click en el botón “Crear usuario” se habrá el JFrame nuevo (frameNuevoUsuario) y se cierre el anterior (main).

El problema de mi código es que me abre el nuevo JFrame, pero no me cierra el anterior. No me funciona ni .dispose() ni .setVisible(false).

En un principio he creado este método:

public void cerrarFrame() {     frameNuevoUsuario nuevousuario = new frameNuevoUsuario();     nuevousuario.setVisible(true);      main esteFrame = new main();     esteFrame.dispose(); 

Y lo he metido tal cual en el botón:

botonCrearUsuario = new JButton("Crear usuario");     botonCrearUsuario.addActionListener(new ActionListener() {         public void actionPerformed(ActionEvent arg0) {              cerrarFrame(); 

Pero nada macho, que no me funciona. Os dejo el código acortado del JFrame porque seguro será de utilidad para ver donde estoy metiendo la pata. Gracias de antemano.

package proyectoBiblioteca;  // "IMPORTS" QUE HE BORRADO PARA ACORTAR EL CÓDIGO  public class main extends JFrame {  /**  *   */ private static final long serialVersionUID = 1L; private JPanel contentPane; private JTextField textField; private JPasswordField passwordField; JButton botonCrearUsuario; String nombreUsuario; String contrasena;   //FRAME PRINCIPAL public static void main(String[] args) {     EventQueue.invokeLater(new Runnable() {         public void run() {             try {                 main frame = new main();                 frame.setVisible(true);             } catch (Exception e) {                 e.printStackTrace();             }          }     });  //CREAR TABLAS EN BASE DATOS             try {              Connection miConexion = DriverManager.getConnection("JDBC:sqlite:biblioteca.db");                            Statement miState = miConexion.createStatement();                            String sentenciaSQL = "CREATE TABLE usuarios(usuario VARCHAR UNIQUE, password VARCHAR)";                             miState.execute(sentenciaSQL);          } catch (SQLException e) {           }     }   // FRAME public main() {     setResizable(false);     setTitle("iLibrary");     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     setBounds(100, 100, 450, 379);     contentPane = new JPanel();     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));     setContentPane(contentPane);     contentPane.setLayout(null);      // BOTONES QUE HE BORRADO PARA ACORTAR EL CÓDIGO      botonCrearUsuario = new JButton("Crear usuario");     botonCrearUsuario.addActionListener(new ActionListener() {         public void actionPerformed(ActionEvent arg0) {              cerrarFrame();           }     });     botonCrearUsuario.setFont(new Font("Tahoma", Font.PLAIN, 14));     botonCrearUsuario.setBounds(96, 243, 258, 23);     contentPane.add(botonCrearUsuario);     setLocationRelativeTo(null);   }  public void cerrarFrame() {     frameNuevoUsuario nuevousuario = new frameNuevoUsuario();     nuevousuario.setVisible(true);      main esteFrame = new main();     esteFrame.dispose();          } 

}

Botón Submit no funciona en modal con form dinamico

Tengo un modal que levanta un formulario dentro de una pagina ASP y el problema es que el botón submit no realiza ninguna acción y solo cierra el modal.

Este es el ASP que levanta el modal.

Fecha de Carga Fecha Cronograma Fecha TMI “) else response.write(“”) end if %> “) else response.write(“”) end if %> Grabar”) else response.write(“Grabar”) end if %>

Si utilizo la pagina ASP directamente (y no contenida en el modal) funciona correctamente pero no lo hace cuando la uso dentro del modal.

Gracias

¿porqué vue-signature-pad funciona no funciona del todo en un modal, vuejs?

Actualmente estoy utilizando la siguiente librería: https://www.npmjs.com/package/vue-signature-pad el cual tiene el siguiente ejemplo: https://codesandbox.io/s/n5qjp3oqv4

Lo estoy aplicando tal y como el ejemplo, pero tengo en un modal, de la siguiente forma:

<v-dialog v-model="canvasVehiculo" fullscreen hide-overlay transition="dialog-bottom-transition">          <v-card>          <v-toolbar dark color="primary">          <v-btn icon dark @click="canvasVehiculo = false">           <v-icon>close</v-icon>          </v-btn>          <v-toolbar-title>Seleccionar partes del vehiculo:</v-toolbar-title>             <v-spacer></v-spacer>             <v-toolbar-items>             <v-btn dark flat @click="undo">Deshacer</v-btn>           </v-toolbar-items>         </v-toolbar>         <v-list three-line subheader>         <v-subheader></v-subheader>                     <VueSignaturePad          id="signature"          width="100%"          height="450px"          ref="signaturePad"         />    </v-list>  </v-card> 

<script> import VueSignature from 'vue-signature-pad'; //Unicamente lo importo </script> <style scoped> #signature {   border: double 3px transparent;   border-radius: 5px;   background-image: url('imagen.png');   background-size: 900px 456px;    background-position: center;   background-origin: border-box;   background-clip: content-box, border-box; } </style> 

El detalle es que si lo utilizo fuera del modal si me funciona correctamente, pero en el modal para hacer que funcione, debo modificar el tamaño de la pantalla, ejemplo utilizando ‘Toggle device toolbar’ es decir ver la forma responsiva.

introducir la descripción de la imagen aquí

De otra forma no funciona, que podrá ser, de antemano muchas gracias.

Função javascript dentro de innerHTML não funciona

Bom dia.

Minha função Ajax devolve uma string e imprime-a via innerHTML dentro de uma div. Essa string é esta:

<div>     <p>Login bem sucedido.</p>     <p>Redirecionamento em ação.</p> </div> <script> location.reload(); </script> 

Já fiz isso em outros projetos, mas a função não realiza reload da página. Tentei também um um alert, mas não funcionou de jeito nenhum.

O que estou fazendo de errado?

Mask-Money não funciona em input array

tenho um formulário com campos em array

<tr>     <td><input id="item" name="item[]" type="text" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->item }}"></td>     <td><input id="descricao" name="descricao[]" type="text" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->descricao }}"></td>     <td><input id="quantidade" name="quantidade[]" type="number" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->quantidade }}"></td>     <td><input id="valor_unitario" name="valor_unitario[]" type="text" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->valor_unitario }}"></td>     <td><input id="desconto" name="desconto[]" type="text" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->desconto }}"></td>     <td><input id="total" name="total[]" type="text" class="form-control form-control-sm" aria-required="true" aria-invalid="false" value="{{ $  servico->quantidade * $  servico->valor_unitario - $  servico->desconto }}" readonly></td>     <td><a onclick="RemoveTableRowOrcamento(this)" id="delete" class="delete"><i class="fa fa-trash"></i></a></td> </tr> 

e esse script

$  (function() {     $  ("#valor_unitario").maskMoney();     $  ("#desconto").maskMoney(); }); 

porém só funciona a mask nos dois primeiros input.. valor_unitario e desconto, depois não funciona mas nos próximos do array.