Python - necesito ayuda con este peque progroma, en python

 
Vista:
Imágen de perfil de Sandro

necesito ayuda con este peque progroma, en python

Publicado por Sandro (5 intervenciones) el 08/03/2023 19:18:16
hola compañeros:

como te encuentras el dia de hoy?

tengo conocimiento en varios lenguajes de programacion de 3ra generacion, y 4.

Entre ellos cobol, rpg, assembler, php, pascal, java, javascript, html, perl.

Todos esos lenguajes tienen la limitante del tamaño por mas grandes que sea, en los campos numericos, existe en java algo que se llama BigInteger o BigDecimal, pero con esto las operaciones tardan mas como decimal normal en un factorial tarda 14seg, en BigInteger con un factorial de 1000 tarda 1.42 min. Ademas no puedo hacer todas las operaciones conocidas + - * /, raiz cuadrada, cubica, 4, 5, etc, residuo, etc.

Estoy haciendo un preograma con una operacion con n digitos, en java , y descubri que python el menos con digitos multiplicables en algunos casos me los da completos, pero en otros me escribe 6.43255453e245, trato de averiguar el porque?

Necesito asesoria con este programa, aclarar la duda.

Hice un pequeño programa en python, pero me arroja este error, que he buscado inutilmente, y cambiado las instrucciones de linea, y orden y me arroja lo mismo, quien me pueda hechar un lente, lo agradeceria.

1
2
3
4
5
Syntax error in /home/Python/pi.py
  File "/home/Python/pi.py", line 34
     if  restoTope   ==  0:
                           ^
 IndentationError: unindent does not match any outer indentation level

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import  math
import  mysql.connector
 
print("Pi: ")
d=1
i=1
nombre=1
pi=0
tope=sys.argv[2]
db = MySQLdb.connect(
    host="localhost",
    user="python",
    passwd="a-python-a",
    db="maestra")
cursor              =   db.cursor()
 
cursor.execute("SELECT  *   FROM    `Tope Pi`  ORDER BY    `Name`          ")
records             =   cursor.fetchall()
for row in records:
        nombre      =   row[0]
        i           =   row[1]
        pi          =   row[2]
 
mycursor            =   mydb.cursor()
 
while   i           <=  int(tope):
	resto           =   i   %   2
	restoTope       =   i   %   2000
	if  not resto   ==  0:
	    pi          =   pi  +   (   4   /   d   )
	else:
	    pi          =   pi  -   (   4   /   d   )
	    continue
    if  restoTope   ==  0:
        sql         =   "   INSERT INTO `Tope Pi`   "
                    +   "   (Name, Tope, Value)     "
                    +   "   VALUES (%s, %s, %s)     "
                    +   "   ON DUPLICATE KEY UPDATE "
                    +   "   `Tope`  =   %s   ,  "
                    +   "   `Value` =   %s      "
        val         =   (   nombre, i,  pi, i   )
        mycursor.execute(   sql,    val         )
        mydb.commit     (                       )
	d               +=  2
	i               +=  1
    nombre          +=  1
print(pi)
print(tope)


le puse el continue para ver si asi funcionaba pero no.


gracias que tengas buen dia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

necesito ayuda con este peque progroma, en python

Publicado por Costero (92 intervenciones) el 08/03/2023 21:56:49
En lenguajes como Java, Javascript, etc puedes indentar como quieras pero en Python si identas incorrectamente el programa no funciona correctamente, que es lo que parece con tu codigo. No puedo correr to codigo por que depende de database pero lo formatie como pude.

Mira a ver si funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import math
import mysql.connector
 
print("Pi: ")
d = 1
i = 1
nombre = 1
pi = 0
tope = sys.argv[2]
db = MySQLdb.connect(
    host = "localhost",
    user = "python",
    passwd = "a-python-a",
    db = "maestra")
cursor = db.cursor()
 
cursor.execute("SELECT  *   FROM    `Tope Pi`  ORDER BY    `Name`          ")
records = cursor.fetchall()
for row in records:
    nombre = row[0]
i = row[1]
pi = row[2]
 
mycursor = mydb.cursor()
 
while i <= int(tope):
    resto = i % 2
    restoTope = i % 2000
    if not resto == 0:
        pi = pi + (4 / d)
    else :
        pi = pi - (4 / d)
 
    if restoTope == 0:
        sql = "   INSERT INTO `Tope Pi`   " + "   (Name, Tope, Value)     " + "   VALUES (%s, %s, %s)     " + "   ON DUPLICATE KEY UPDATE " + "   `Tope`  =   %s   ,  " + "   `Value` =   %s      "
        val = (nombre, i, pi, i)
        mycursor.execute(sql, val)
        mydb.commit()
        d += 2
        i += 1
        nombre += 1
        print(pi)
        print(tope)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

necesito ayuda con este programa, en python

Publicado por Sandro (5 intervenciones) el 15/03/2023 19:02:56
esta lineas estan fuera del if restoTope
1
2
3
d += 2
 i += 1
 nombre += 1
y estas lineas estan despues del while
1
2
print(pi)
print(tope)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

necesito ayuda con este programa, en python

Publicado por Sandro (5 intervenciones) el 15/03/2023 19:53:45
el problema era en la variable
1
2
3
4
5
6
sql         =   "   INSERT INTO `Tope Pi`   "
                    +   "   (Name, Tope, Value)     "
                    +   "   VALUES (%s, %s, %s)     "
                    +   "   ON DUPLICATE KEY UPDATE "
                    +   "   `Tope`  =   %s   ,  "
                    +   "   `Value` =   %s      "

se corrigio asi:
1
aql         =   "   INSERT INTO `Tope Pi` (Name, Tope, Value) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `Tope`  =   %s   , Value` =   %s      "

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar