[pyar] Soy novato y tengo dudas con los bucles en python.

claudio canepa ccanepacc en gmail.com
Dom Nov 20 03:02:33 ART 2011


2011/11/20 Javier Marín <nano.world.contact en gmail.com>

> Bueno chicos, apenas comienzo con esto y ando dandome tumbos con el
> lenguaje, aunque me gusta. Ya tengo azules a los muchachos de un foro y
> tampoco es idea hacerles Spam, ni tampoco a ustedes, así que me limito con
> mis preguntas.
>
> No conozco bien los bucles en python y ando practicando, tengo dos
> problemas propuestos:
>
> El primero es hacer una multiplicación con sumas sucesivas, osea 2*3 =
> 2+2+2.
>
> Hice el código más o menos así:
>
> #-*- coding: utf-8 -*-
> a = int(raw_input('Ingrese un número: '))
> b = int(raw_input('Ingrese otro número: '))
> s = 0
> while s <= a:
> s = s+b
> print s
>
>
> Muy sencillito, pero solo me recorre dos veces el bucle o 3, pero nunca me
> da el resultado. Había visto un poco la estructura de control For in pero
> según entiendo es para recorrer listas tuplas o diccionarios.
>
>
Tu programa hace una cosa diferente que 'sumar b (a veces)'
Reemplaza s por 'subtotal' y te va a resultar claro que la expresion del
while no tiene sentido.



> El segundo problema es también un poco fastidioso para mi siendo novato,
> es leer un número y decir si es primo o no imprimiendo por pantalla. Un
> numero primo es aquel numero natural únicamente divisible entre 1 y el
> mismo. De este aún no he hecho mucho porque no tengo mucha idea de como
> hacerlo, lo hice en C pero no es lo mismo.
>
> Alguna sugerencia o explicación? Gracias por adelantado a todos.
>
>
Lo primero es tener en claro que se quiere escribir.
Una descripcion simple para el caso de los primos seria:

n es primo si y solo si ningun entero k con 1<k<n divide con resto cero a n

Y como lo paso a python ?

recorrer los k con 1 <k < n lo hago con for y xrange:

for k in xrange(2, n):

'k divide a n' en python seria n%k==0 , que se lee como ' el resto de
dividir n por k es igual a cero'

y si algun k divide a n , entonces n no es primo
si ningun k divide a n , n es primo

Entonces, como escribirias una funcion es_primo(n) ?

El caso n=1 es especial, hay que agregar un if para manejarlo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111120/ba7ea271/attachment.html>


More information about the pyar mailing list