Mostrando entradas con la etiqueta py. Mostrar todas las entradas
Mostrando entradas con la etiqueta py. Mostrar todas las entradas

miércoles, 5 de agosto de 2020

Generar numeros impares entre 100 y 120 con Flask

Vamos a usar Flask, el framework web de Python, para crear una página web que imprima una lista de los números impares del 100 al 120.

Usamos Flask en nuestro archivo app.py para pasar la lista que genera nuestro algoritmo de números impares a nuestro html. 
app.py
from flask import Flask,render_template  
app=Flask(__name__)  
lista=[]  
for i in range(101,120,2):  
  lista.append(i)   
@app.route("/")  
def index():  
  titulo="Numeros impares"  
  return render_template("index.html",titulo=titulo,lista=lista)   
if __name__=="__main__":  
  app.run(debug=True)  
En el archivo index.html usamos un for de Falsk para poner cada valor que nos vaya dando el app.py en un <p> diferente. 
index.html
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
   <meta charset="UTF-8">  
   <meta name="viewport" content="width=device-width, initial-scale=1.0">  
   <title>{{titulo}}</title>
 </head>  
 <body>  
   <h1>Impares entre 100 y 120</h1>  
   {%for value in lista%}  
   <p>{{value}}</p>  
   {%endfor%}  
 </body>  
 </html>  

domingo, 8 de octubre de 2017

Buscar una palabra en un libro con Python

Esta entrada forma parte de un grupo de artículos donde trabajamos con caracteres y palabras usando como libro de ejemplo El Quijote.



Puede descargar el archivo: palabra_quijote.py
Puede descargar el archivo: quijote.txt

Puede ver el código funcionando en:

Deseamos buscar palabras o frases dentro de El Quijote primera parte. El usuario nos dice la palabra que quiere buscar y el programa en Python realiza la búsqueda. Es sensible a mayúsculas y minúsculas.

#el usuario dice una palabra y contamos cuantas veces aparece en el Quijote
palabra=input("Diga qué palabra quiere buscar: ")
f=open("quijote.txt")
libro=f.read()
n=libro.count(palabra)
f.close()
print("En la 1ª parte del Quijote la palabra ",palabra," aparece ",n," veces.")

Raspberry Pi 2 trabajando en modo 'línea de comandos' ejecutando Python 3.6 a gran velocidad en relación a su limitada potencia de cálculo.

  • Existe una página que recoge los nombres propios y otros términos que comienzan por mayúscula:
  • En otra página podemos ver la frecuencia con la que aparecen todas las palabras del Quijote:
  • Para hacer esto se debe tokenizar el texto. La tokenización de un texto consiste en el análisis y descomposición de texto en partes más pequeñas. Los párrafos se dividen en frases, las frases se dividen en palabras, la palabras en letras. Se deben eliminar los signos de puntuación y en muchos casos las letras .mayúsculas.
  • Un n-grama es un conjunto de letras que puede interesarnos buscar en un texto para hacer predicciones que nos permitan completar una palabra incompleta. Si n=3 tenemos trigramas que son muy típicos para hacer estos estudios. Por ejemplo, podemos buscar todas las palabras que tengan la tres letras coc como por ejemplo en cocodrilo. Haciendo un estudio estadístico por la frecuencia de aparición podemos hacer predicciones sobre qué palabra puede encajar si solo disponemos de los tres primeros caracteres. La predicción contendrá un importante error que los predictores actuales mejoran usando machine learning.

sábado, 7 de octubre de 2017

Leer el Quijote en Python

Esta entrada forma parte de un grupo de artículos donde trabajamos con caracteres y palabras usando como libro de ejemplo El Quijote.

Puede descargar el archivo: caracteres_quijote.py
Puede descargar el archivo: quijote.txt

Podemos ver el código en el siguiente enlace de repl.it:

Vamos a trabajar sobre un gran archivo de texto puro, con extensión txt. Se trata de la primera parte del Quijote. Hemos creado un código en Python que recorrerá todo el texto letra a letra buscando todos los caracteres y mostrándonos los caracteres no repetidos. Finalmente ordenaremos alfabéticamente esta lista de caracteres únicos.

Captura de pantalla realizada con Scrot en una Raspberry Pi 2 corriendo Raspbian.


#abrimos quijote.txt y buscamos todos los caracteres que contiene
f=open("quijote.txt")
libro=f.read()
texto=""
for letra in libro:
 if not(letra in texto):
  texto+=letra
texto="".join(sorted(texto))
print(texto)
f.close()

Vemos que en el libro de Cervantes no aparece la letra W, ni los dígitos numéricos. La letra ñ se encuentra en minúsculas pero no en mayúsculas. En el orden alfabético aparece junto a los signos de puntuación y letras acentuadas.


Escribir en un archivo con Python

Puede descargar el archivo: escribe.py

Veamos el tratamiento de archivos en Python. Lo primero será abrir el archivo, luego podemos leerlos, escribir en él, y finalmente no nos olvidemos de cerrarlo. Seguidamente se muestran algunas de las instrucciones que permiten trabajar con archivos.

Abrir el archivo

  • Para abrir un archivo:  f = open("fichero.txt")
  • Para abrir un archivo escribiendo desde cero: f = open ("fichero.txt", "w"). En este caso el archivo se reescribirá si ya existe o se creará si no existe.
  • Para añadir al final del archivo (append): f = open ("fichero.txt", "a")

Leer el archivo

  • Para leer el archivo: f.read()
  • Para leer únicamente los 4 primeros caracteres: f.read(4)
  • Para leer la primera línea: f.readline()

Escribir en el archivo

  • Para escribir en el archivo: f.write("Primera línea\nSegunda línea")

Cerrar el archivo

  • Para cerrar el archivo: f.close()


Ejemplo


 #crea un fichero txt con una frase  
 frase="Primera línea\nSegunda línea"  
 f=open("miarchivo.txt","w")  
 f.write(frase)  
 f.close()  


miércoles, 27 de septiembre de 2017

Generación de números primos en Python

Puede descargar el archivo: primos.py

Veamos diferentes métodos para calcular números primos en Python.


Método 1

Creamos dos funciones, la primera detecta si un número es primo o no, y la segunda crea un listado de números primos hasta 100.

#Función que detecta si un número es primo
import math
def esPrimo(num):
 for i in range(3,int(math.sqrt(num))+1,2):
  if num%i==0:
   return False
 return True
def listaPrimos(limite):
 print(2)
 for j in range(3,limite+1,2):
  if esPrimo(j):
   print(j)
listaPrimos(100)

La expresión if num%i==0 también se puede sustituir por la expresión if num/i%1==0 que hace el mismo trabajo.

Para optimizar el algoritmo los bucles únicamente trabajan con los impares, ya que salvo el 2, todos los demás primos son impares.
Otra forma de optimizar el algoritmo consiste en hacer que el bucle interior que detecta si un número es primo calcule el resto de dividir ese número entre todos los anteriores pares únicamente hasta la raíz cuadrada de ese mismo número. Esto es así ya que si llegamos dividiendo hasta la raíz cuadrada de ese número y no hemos encontrado ninguna división exacta, superada la raíz cuadrada ya es imposible que encontremos esa división exacta.

Método 2

Crear una lista de números primos y añadir el siguiente con append.

import math
lista=[2,]
for i in range(3,100, 2):
 soy=True #inicialmente suponemos que el número es primo
 for j in range(3,int(math.sqrt(i))+1,2):
  if i%j==0:
   soy=False
 if soy:lista.append(i)
print(lista)

Método 3

Este método es muy similar al anterior pero más corto ya que nos ahorramos crear la variable booleana soy, y trabajar al final con ella en un if. Lo que hacemos en este caso es usar solo el primer if con un break y luego un else con una indentación sorprendente.

lista=[2,]
for i in range(3,100,2):
 for j in range(3,int(i**.5)+1,2):
  if i%j==0:
   break
 else:         # else del for
  lista.append(i)
print(list(lista))

Método 4

Este método es similar al anterior pero no usa una lista, simplemente imprime los resultados separados por coma.

print(2, end = ',')
for i in range(3,150,2):
 for j in range(3,int(i**.5)+1,2):
  if i%j==0: break
 else: print(i, end = ',')

Método 5

Usando un generador con yield.

#Método 4
from math import sqrt
def esPrimo(n):
 for i in range(3,int(sqrt(n))+1,2):
  if n%i==0:
   return False
 return True
def generaPrimos(n):
 for i in filter(esPrimo, range(3,n+1,2)):
  yield i
print(2)
for i in generaPrimos(100):
 print(i)

Podemos sustituir la expresión if n%i==0: por esta otra if not(n%i):. El motivo de que podamos hacer esta sustitución y todo continúe funcionando bien es que si una expresión es cero se interpreta como False y si es uno (u otro número) se interpreta como True.
Se utiliza la expresión filter.

Método 6

Con dos funciones, la primera detecta si un número es primo o no, la segunda va preguntando por los primos en un cierto rango y si resultan ser primos los anota en una lista. Finalmente se imprime la lista.

def isPrime(n):
 for x in range(2, int(n**0.5)+1):
  if n % x == 0:
   return False
 return True

def primeList(n):
 primes = [2,]
 for i in range(3,n,2):
  if isPrime(i):
   primes.append(i)
 return primes
print(primeList(100))

martes, 26 de septiembre de 2017

Palíndromos en una frase

Puede descargar el archivo: palindromos.py

Un palíndromo es una palabra capicúa, esto es, que se lee igual de izquierda a derecha que de derecha a izquierda. Por ejemplo, radar.

Vamos a crear un código en Python que detecta palíndromos en una frase y que luego los imprime en pantalla.

 #Detectar palindromos en una frase e imprimirlos  
 frase="El señor Uruburu contruyó un radar. Ana, que tiene buen ojo, le dijo que ni con todo el oro del mundo le haría funcionar porque no tenía rotor. Uruburu tardó en reconocer su error."   
 #Primero quitamos todos los puntos y comas. Dejamos solo letrs y espacios.  
 def limpia(texto):  
  limpio=''  
  for i in frase:  
   if i!="." and i!=",":  
    limpio+=i  
  return limpio  
 limpiado=limpia(frase)     
 #Creamos una lista con todas las palabras.  
 lista=limpiado.split()  
 #Función que detecta si una palabra es o no un palíndromo  
 def soyPalindromo(palabra):  
  palabra=palabra.lower()  
  soy=True #inicialmente suponemos que si es un palíndromo  
  n=len(palabra)  
  if n%2==0: #número par de letras en la palabra  
   for i in range(int(n/2)):  
    if palabra[i]!=palabra[n-i-1]:  
     soy=False  
  else: #número impar de letras  
   for i in range(int((n-1)/2)):  
    if palabra[i]!=palabra[n-i-1]:  
     soy=False  
  return soy  
 #Pasamos todas las palabras de la lista por la función que detecta si son palíndromos  
 #Si se trata de un palindromo lo imprime en pantalla  
 for palabrita in lista:  
  if soyPalindromo(palabrita):  
   print(palabrita)  


Invertir el orden de una cadena alfanumérica en Python

Puede descargar el archivo: cadena_inversa.py

Dada una cadena alfanumérica devuelve su inversa. Lo que hace es cambiar de orden los caracteres del string.

Método 1

Esta es, posiblemente, la forma más rápida de invertir una cadena.

#Método 1  
miCadena="La contraseña es abracadabra"  
def invierte1(cadena):  
 return cadena[::-1]  
print(invierte1(miCadena))  


Método 2

Creamos un bucle for y recorremos todos los elementos de la cadena de principio a fin, poniendo cada elemento al final.

#Método 2  
miCadena="Radar o no radar"  
def invierte2(cadena):  
 inversa=""  
 for i in cadena:  
  inversa=i+inversa  
 return inversa  
print(invierte2(miCadena))  

Método 3

Creamos un for que va hacia atrás recorriendo todos los elementos del string.

#Método 3  
miCadena="Esto es Troya"  
def invierte3(cadena):  
 inversa=""  
 for i in range(len(cadena),0,-1):  
  #print(i) imprimiría del 5 al 1, por eso luego restamos 1  
  inversa+=cadena[i-1]  
 return inversa  
print(invierte3(miCadena))  

Método 4

Usando un for recorremos todos los elementos de la cadena.

#Método 4  
miCadena="El maestro Uruburu"  
def invierte4(cadena):  
 invertida=''  
 for i in cadena:  
  invertida=i+invertida  
 return invertida  
print(invierte4(miCadena))  


Una variante: Invertir las letras de cada palabra de una frase sin cambiar de orden las palabras

Si queremos invertir el orden de las letras de cada palabra dentro de una frase pero sin cambiar de orden las palabras utilizando el siguiente código conseguiríamos este cambio en la frase:

amigos esto es magia  🡢  sogima otse se aigam

mi_frase="amigos esto es magia"  
frase=mi_frase.split()  
def invierte(cadena):   
 return cadena[::-1]  
frase_inversa=[]  
for palabra in frase:  
 frase_inversa.append(invierte(palabra))  
print(' '.join(frase_inversa))  

Sumar los elementos de una lista en Python

Puede descargar el archivo: suma_lista.py

Vamos a crear una función que sume los elementos de una lista, y también aprovecharemos para hacer el producto de sus elementos, y así multiplicar en la misma función.

#Crear una función suma que sume los elementos de una lista.  
#Crear también una función que multiplique  
miLista=[1,2,3,4]  
def sumaProducto(lista):  
 s,p=0,1 #inicializamos el valor de la suma y el producto  
 for i in lista:  
  s+=i  
  p*=i  
 print("La suma es %i y el producto es %i"%(s,p))  
print(miLista)  
sumaProducto(miLista)  


domingo, 24 de septiembre de 2017

Generador de números aleatorios

Puede descargar el archivo: generador_aleatorio.py

Veamos un ejemplo de un generador de números. Creamos una función que no usa return. Lo que hace un generador es usar yield. Esto permite generar los valores de uno en uno, a medida que se van pidiendo.

Ejemplo 1


#Ejemplo de un Generador en Python  
#Primero, veamos un caso que genera del 0 al max que digamos  
def contador(max):  
 n=0  
 while n<=max:  
  yield n  
  n+=1  
mycont=contador(5) #mycont es un objeto iterable    
for i in mycont: #recorremos el objeto iterable  
 print(i)  
#print(mycont)  

Ejemplo 2


#Segundo, generamos n números aleatorios entre 0 y 100, ambos incluidos  
import random  
def generaRandom(n):  
 for i in range(n+1):  
  yield random.randint(1000,2001)  
alea=generaRandom(10)  
for j in range(1,10+1):  
 print(j,":",end='')  
 print(next(alea))  


Generador de pares

Puede descargar el archivo: generadorPares.py

Veamos la diferencia que existe entre una función normal de Python y un generador. Vamos a verlo con un ejemplo donde pretendemos generar números pares. Primero usaremos una función normal que tiene su return. Luego usaremos un generador que no usa return sino que usa yield.

Función


#Función: imprimir los pares hasta un cierto valor  
def generaPares(limite):  
 n=1 #contador  
 lista=[]  
 while n<=limite:  
  lista.append(n*2)  
  n+=1  
 return lista  
pares=generaPares(10) #pares es un iterador, en este caso es una lista  
#un iterador es un objeto iterable, esto es que podemos recorrer  
print(pares)  
for i in pares: #recorremos el objeto iterable  
 print(i)  


Generador

El generador no usa return, en su lugar usa yield.

 #Generador de pares  
 def generaPares2(limite):  
  n=1  
  while n<=limite:  
   yield n*2  
   n+=1  
 pares=generaPares2(10)  
 for i in pares:  
  print(i)  


Generador con next

Con next vamos pidiendo nuevos elementos del objeto iterable y el generador los va 'fabricando'. De esta forma se ahorran recursos de memoria y de tiempo de cálculo ya que los elementos se generan uno a uno a medida que next los va pidiendo. Por el contrario si usáramos una función normal, ésta ha de generar todos los elementos del la lista, lo cual supone mayor gasto de recursos. La función ha de generar todos los elementos de la lista ya que una vez finalizada la función no se pude volver a ella, salvo que se invoque nuevamente. La función una vez que finaliza pierde el contenido de todas las variables locales que usa internamente.

 #Generador con next  
 def generaPares3(limite):  
  n=1  
  while n<=limite:  
   yield n*2  
   n+=1  
 pares=generaPares3(10)  
 print(next(pares))  
 print("otro, por favor.")  
 print(next(pares))  
 print("otro, por favor.")  
 print(next(pares))  
 print("otro, por favor.")  
 print(next(pares))  
 print("otro, por favor.")  
 print(next(pares))  


sábado, 23 de septiembre de 2017

Vocal o consonante en Python

Puede descargar el archivo: vocal.py

Crear una lista con todas las letras, tomar una y decir si es vocal o consonante.

Método 1

Trabajamos con listas. Creamos de forma manual una lista con todas las letras minúsculas, otra para las mayúsculas y otra para las vocales. Luego unimos, o fusionamos las listas de las letras minúsculas y mayúsculas.

 #Método 1  
 import random  
 minusculas=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']  
 mayusculas=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']  
 todas=minusculas+mayusculas  
 vocales=['a','e','i','o','u']  
 toditas=''.join(todas) #convertimos la lista en un string  
 print(toditas)  
 toditas=toditas.lower()  
 vocalitas=''.join(vocales) #convierte la lista en un string  
 letra=random.choice(todas) #eleginos aleatoriamente una letra de la lista todas  
 #letra=random.randrange(len(todas)) #esto no daría la letra sino el orden  
 print(letra)  
 letra=letra.lower()  
 def vocalConsonante(letrita):  
  if letrita in vocalitas:  
   print(letrita," es vocal.")  
  else:  
   print(letrita," es consonante")  
 vocalConsonante(letra)  

Método 2

Generamos un string con todas las letras y otro con las vocales. Para generar un string con todas las letras minúsculas y mayúsculas en Python 3.6 usamos string.ascii_letters.

 #Método 2  
 import string  
 print(string.ascii_letters) #crea un string con todas las letras  
 import random  
 letra=random.choice(string.ascii_letters) #elige una letra del string  
 print(letra)  
 letra=letra.lower() #La convierte en minúscula  
 vocales="aeiou"  
 def vocalConsonante(letrita):  
  if letrita in vocales:  
   print(letrita," es vocal.")  
  else:  
   print(letrita," es consonante.")  
 vocalConsonante(letra)  

Convertimos a minúscula la letra elegida aleatoriamente usando para ello la función lower(). También existe la función upper() que convierte una cadena a mayúsculas.


Factorial de un número en Python

Puede descargar el archivo: factorial.py

Comenzamos pidiendo al usuario que introduzca un número. Si no se introduce nada se calculará el factorial de 5. Observe el operador lógico or.
Introducimos un control de excepciones por si se produce un error. Observe que antes del input hemos añadido int para asegurarnos que entran números enteros. Si se añade un texto o un número decimal se produciría un error. El tratamiento de las excepciones o errores se consigue con try y con except.

#Calcula el factorial de un número entero mayor o igual a cero, hasta 120  
#Si no se introduce ningún número se calcula el factorial de 5  
while True:  
 try:  
  n=int(int(input("Introduzca un número entero, no negativo: ") or 5))  
  break  
 except ValueError:  
  print("No es un número válido, pruebe de nuevo.")  
factor=1 #por definición el factorial de cero es 1  
if n>0:  
 for i in range(1,n+1):  
  factor *=i  
 print("El factorial de ",n," es = ",factor)  
elif n<0:  
 print("El número no puede ser negativo.")  
else:  
 print("El factorial de cero, por definición, es 1")  

Para el cálculo del factorial observe la expresión factor*=i, que permite ir multiplicando los valores sucesivos.
Hemos añadido un if ya que por definición el factorial de cero es uno.

Múltiplos en Python

Puede descargar el archivo: multiplos23.py

Vamos a calcular los múltiplos de 2 y de 3 que hay entre 1 y el número que el usuario introduzca por teclado. Finalmente contaremos cuantos hay.

#Imprimir los múltiplos de 2 y de 3 que hay entre 1 y  
#el número que se introduzca por teclado  
#Y contar cuantos hay  
c=0 #inicializamos el contador  
n=int(input("Introduzca el extremos superior: "))  
print("Múltiplos de 2 y de 3 entre 1 y %i:"%n)  
for i in range(1,n+1):  
 if i%2==0 and i%3==0:  
  c+=1  
  print(i)  
print("Existen %i múltiplos de 2 y 3 en ese rango, incluidos los extremos"%c)  


Máximo y mínimo de una lista en Python

Puede descargar el archivo: max_lista.py

Creamos una lista de 10 números aleatorios enteros entre 1 y 100. Deseamos conocer el máximo y el mínimo.

Método 1

Usando las funciones max y min.

 #Método 1  
 import random  
 lista=random.sample(range(1,101),10)  
 print(lista)  
 print("Máximo= ",max(lista))  
 print("Mínimo= ",min(lista))  

Método 2

Sin usar las funciones max y min.

 #Método 2  
 import random  
 lista=random.sample(range(1,101),10)  
 print(lista)  
 maxi=1;mini=100 #inicializamos los valores  
 for i in range(len(lista)):  
  if lista[i]>maxi: maxi=lista[i]  
  if lista[i]<mini:mini=lista[i]  
 print("Máximo= ",maxi)  
 print("Mínimo= ",mini)  


Longitud de una cadena en Python

Puede descargar el archivo: largo_cadena.py

Deseamos conocer el largo de un string. Dada una cadena alfanumérica podemos averiguar cuantos caracteres tiene usando len, que es la forma abreviada de la palabra inglesa lengh que significa longitud.

Método 1

#Método 1 para una cadena, con len  
cadena="Hola"  
print(len(cadena))  

Método 2


El método 1 es el más efectivo, pero ahora se trata de intentar calcular la longitud de la cadena sin usar len.

#Método 2 para una cadena  
cadena="Hola"  
cont=0 #inicializamos el contador  
for i in cadena:  
 cont+=1  
print(cont)  

Método 3


Supongamos que ahora no tenemos un string sino una lista de la que necesitamos conocer su tamaño, esto es cuantos elementos tiene.

 #Método 3 para una lista, con len  
 lista=[1,2,3,4,5,6,7]  
 def largoLista1(entrada):  
  print(len(entrada))  

Método 4


Necesito calcular cuantos elementos contiene la lista sin usar len.

 #Método 4 para una lista  
 lista=[1,2,3,4,5,6,7]  
 def largoLista2(miLista):  
  c=0 #contador  
  for i in miLista:  
   c+=1  
  return c  
 print(largoLista2(lista))  


Sumar pares e impares en Python

Puede descargar el archivo: suma_pares_impares.py

#Sumar los pares por un lado y los impares por otro entre los números 1 a 100
s_par=0;s_impar=0  
for i in range(1,101):  
 if i%2==0:  
  s_par+=i  
 else:  
  s_impar+=i  
print("La suma de los pares entre 1 y 100 es= ",s_par)  
print("La suma de los impares entre 1 y 100 es= ",s_impar)  


Contar pares e impares en Python

Puede descargar el archivo: contar_pares.py


#Introducir dos números por teclado, contar cuantos hay entre ellos  
#contar cuantos son pares y la suma de los pares  
n=int(input("Indique el número menor: "))  
m=int(input("Indique el número mayor: "))  
total=0;pares=0;suma_pares=0  
for i in range(n,m+1): #en la suma se incluyen ambos extremos  
 total+=1  
 if i%2==0:  
  pares+=1  
  suma_pares+=i  
print("Entre %i y %i hay %i números, y de ellos %i son pares." % (n,m,total,pares))
print("La suma de los pares es= ",suma_pares)  



Condicional if en Python

Puede descargar el archivo: par_o_impar.py

Veamos un ejemplo del uso del condicional if en Python.
Introducir un número por teclado y decir si es par o impar.

#Introducir un número por teclado y decir si es par o impar  
n=int(input("Introduzca un número: "))  
if n%2==0:  
 print(str(n)," es un número par.")  
else:  
 print(str(n)," es un número impar.")  


Suma los valores de una serie de números

Puede descargar el archivo: suma_serie.py

Vamos a sumar los valores comprendidos entre uno inicial y otro final, ambos incluidos. El usuario introduce por teclado dichos valores.

#suma los números que indique el usuario entre un número inicial y uno final  
while True:  
 inicial=int(input("Indique el número inicial: ") or 1)  
 final=int(input("Indique el número final: ") or 100)  
 if inicial<final:  
  break  
suma=0  
for i in range(inicial,final+1):  
 suma+=i  
print("Suma de los números comprendidos entre ",inicial," y ",final,"= ",suma)  


viernes, 22 de septiembre de 2017

Suma descendente en Python

Puede descargar el archivo: suma_descendente.py

Calcular la suma de los números entre 20 y 10 e imprimirlos.

Método 1

Con for y step -1 para ir hacia atrás.

s=0 #suma  
for i in range(20,9,-1):  
 print(i)  
 s+=i  
print("suma=",s)  

Método 2

Con while donde la variable i se reduce de uno en uno: i-=1.

i=20;suma=0  
while i>=10:  
 print(i)  
 suma+=i  
 i-=1  
print("suma=",suma)