Every line of 'nested for loop in python' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your Python code is secure.
365 def FOR(self, node): 366 """ 367 Process bindings for loop variables. 368 """ 369 vars = [] 370 def collectLoopVars(n): 371 if hasattr(n, 'name'): 372 vars.append(n.name) 373 else: 374 for c in n.getChildNodes(): 375 collectLoopVars(c) 376 377 collectLoopVars(node.assign) 378 for varn in vars: 379 if (isinstance(self.scope.get(varn), Importation) 380 # unused ones will get an unused import warning 381 and self.scope[varn].used): 382 self.report(messages.ImportShadowedByLoopVar, 383 node.lineno, varn, self.scope[varn].source.lineno) 384 385 self.handleChildren(node)
383 def test_nested_for() -> None: 384 src = """ 385 for i in range(10): 386 for i in range(5): 387 print(i) 388 else: 389 print(i - 1) 390 else: 391 print(i + 1) 392 """ 393 cfg = build_cfg(src) 394 395 expected_blocks = [ 396 ["range(10)"], 397 ["i"], 398 ["range(5)"], 399 ["i"], 400 ["print(i)"], 401 ["print(i - 1)"], 402 ["print(i + 1)"], 403 [] 404 ] 405 assert expected_blocks == _extract_blocks(cfg) 406 407 expected_edges = [ 408 [["range(10)"], ["i"]], 409 [["i"], ["range(5)"]], 410 [["range(5)"], ["i"]], 411 [["i"], ["print(i)"]], 412 [["print(i)"], ["i"]], 413 [["i"], ["print(i - 1)"]], 414 [["print(i - 1)"], ["i"]], 415 [["i"], ["print(i + 1)"]], 416 [["print(i + 1)"], []] 417 ] 418 assert expected_edges == _extract_edges(cfg)
258 def emit_sequential_loop(self, codegen_state, iname, iname_dtype, 259 lbound, ubound, inner): 260 ecm = codegen_state.expression_to_code_mapper 261 262 from pymbolic.mapper.stringifier import PREC_NONE, PREC_SUM 263 from genpy import For 264 265 return For( 266 (iname,), 267 "range(%s, %s + 1)" 268 % ( 269 ecm(lbound, PREC_NONE, "i"), 270 ecm(ubound, PREC_SUM, "i"), 271 ), 272 inner)
60 def nested_forloop_after(x): 61 for x in _getiter_([1, 2, 3]): 62 for y in _getiter_("abc"): 63 pass
285 def _For(self, t): 286 self.fill("for ") 287 self.dispatch(t.target) 288 self.write(" in ") 289 self.dispatch(t.iter) 290 self.body(t.body) 291 if t.orelse: 292 self.fill("else") 293 self.body(t.orelse)
88 def visit_For(self, node): 89 self.make_tab() 90 self.write('for ') 91 self.visit(node.target) 92 self.write(' in ') 93 self._in_args = True 94 self.visit(node.iter) 95 self._in_args = False 96 self.write(':\n') 97 self._indent += 1 98 for n in node.body: 99 self.visit(n) 100 self._indent -= 1
45 def create_comprehension(for_node: ast.For) -> ast.comprehension: 46 return ast.comprehension(target=for_node.target, iter=for_node.iter, ifs=[])
69 def test_for(): 70 src = dedent("""\ 71 for a in [1,2]: 72 a 73 74 for a1 in 1,"": 75 a1 76 """) 77 check_p(src, 1)
677 def visitGenExprFor(self, node): 678 start = self.newBlock() 679 anchor = self.newBlock() 680 end = self.newBlock() 681 self.setups.push((LOOP, start)) 682 self.emit('SETUP_LOOP', end) 683 if node.is_outmost: 684 self.loadName('.0') 685 else: 686 self.visit(node.iter) 687 self.emit('GET_ITER') 688 self.nextBlock(start) 689 self.set_lineno(node, force=True) 690 self.emit('FOR_ITER', anchor) 691 self.nextBlock() 692 self.visit(node.assign) 693 return (start, anchor, end)
39 def for_loop(self, typename, iname, ibegin, iend): 40 return "for (%s %s = %s; %s < %s; ++%s)" % (typename, iname, ibegin, iname, iend, iname)