Ayúdenme con unos ejercicios en python 3

Iniciado por Ajrbar, 26 Abril 2019, 04:34 AM

0 Miembros y 1 Visitante están viendo este tema.

Ajrbar

Escriba un algoritmo con el ciclo while que calcule e imprima la suma de los n primeros números enteros positivos. El valor de n debe leerse del teclado y ser ingresado por el usuario.

WHK

Hola, :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import re

try:
    while(True):

        number1 = input('Escriba el primer número: ')
        if(not re.search(r'^\-{,1}[0-9]+$', number1)):
            print('El valor ingresado no es un número.')
            continue

        number2 = input('Escriba el segundo número: ')
        if(not re.search(r'^\-{,1}[0-9]+$', number2)):
            print('El valor ingresado no es un número.')
            continue

        try:
            print('El resultado es: ' + str(int(number1) + int(number2)))

        except ValueError as e:
            print('Imposible sumar, verifique los valores o cambie de CPU.')

        except Exception as e:
            # Error desconocido
            raise e

except KeyboardInterrupt as e:
    # Cancelación del script, el usuario se aburrió de ingresar números.
    print('') # Salto de línea para cancelar el input()


Está demás decir que aprendas sobre el código, no te va a servir de nada copiar y pegar si no vas a entender como funciona, luego te pedirán cosas más complejas y no las podrás hacer.

El uso de UTF-8 en la cabecera del documento es para poder hacer uso de acentos y eñes sin problemas.

Lo que hace principalmente es a través de "input" obtener los dos valores, luego los suma haciendo un cast (forzado de tipo) a integer, pero esto puede producir un error de excepción si le entregas un valor no numérico, por eso antes que nada realiza una validación por expresión regular. Si te fijas, dentro de la expresión omití los puntos pero dejé que pudieses ingresar signos negativos y no donde sea sinó uno solo y al comienzo, ya que dijiste explícitamente "valores enteros" y no decimales. Cuando uno hace un código debe estar muy atento a cada detalle que piden, un pequeño error le puede costar la banca rota a toda una empresa.

whk@machine:~/Escritorio$ python3 untitled.py
Escriba el primer número: 2
Escriba el segundo número: -4
El resultado es: -2
Escriba el primer número: --7
El valor ingresado no es un número.
Escriba el primer número: 4-4
El valor ingresado no es un número.
Escriba el primer número: .0
El valor ingresado no es un número.
Escriba el primer número: 2.2
El valor ingresado no es un número.


Saludos.

Tachikomaia

#2
Yo interpreté que si el usuario escribe 5 tiene que hacer 1+2+3+4+5.

En la respuesta que le has dado, WHK, parece que pides ingresar 2 números.

En fin, no sé de pitones pero en pseudocódigo, como yo lo entendí, sería algo así:
Contador = 0
Suma = 0
Repetir
  Contador++
  Suma = Suma+Contador
mientras Contador < n
La parte de ingresar el número la he salteado. Si hay algún error me gustaría saberlo. Puedes cambiar Contador por Numero_aSumar o algo así si te queda más claro, se entiende que también es un contador. Y sino puedes usar 2 variables pero tendrán el mismo contenido...
Edit: La parte de print también me la he salteado. En ese sentido creo que WHK lo hizo bien.

WHK: Dijo "números enteros positivos". Lo de negativos está de más.