Python - creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

 
Vista:
sin imagen de perfil
Val: 54
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

Publicado por Ezequiel (19 intervenciones) el 22/11/2020 19:52:55
Hola estoy intentando tener dos variables distintas que obtengan datos a través de pyperclip.paste. Una con valor cadena y la otra con valor entero. A la de valor cadena quiero que me compare si comienza con "ab"
o "abc" y a las de Valor entero si es un numero del 1 al 28. Pero al parecer el programa no hace diferencia entre el pyperclip.paste de la Variable cadena y el de la variable numero. Gracias por cualquier tipo de ayuda. Saludos.

Error:
Traceback (most recent call last):
File "C:/Python38/condicionales.py", line 3, in <module>
numero =int(pyperclip.paste ())
ValueError: invalid literal for int() with base 10: 'numero =int(pyperclip.paste ())'



Codigo:

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import pyperclip
 
 
cadena = pyperclip.paste ()
numero =int(pyperclip.paste ())
if  cadena[0:2] == "ab":
    print ('la cadena comienza con ab')
elif cadena[0:3] == "abc":
      print ('la cadena comienza con abc')
elif numero == 1:
    print ('El número ingresado es 1.\n')
elif numero == 2:
    print ('El número ingresado es 2.\n')
elif numero == 3:
    print ('El número ingresado es 3.\n')
elif numero == 4:
    print ('El número ingresado es 4.\n')
elif numero == 5:
    print ('El número ingresado es 5.\n')
elif numero == 6:
    print ('El número ingresado es 6.\n')
elif numero == 7:
    print ('El número ingresado es 7.\n')
elif numero == 8:
    print ('El número ingresado es 8.\n')
elif numero == 9:
    print ('El número ingresado es 9.\n')
elif numero == 10:
    print ('El número ingresado es 10.\n')
elif numero == 11:
    print ('El número ingresado es 11.\n')
elif numero == 12:
    print ('El número ingresado es 12.\n')
elif numero == 13:
    print ('El número ingresado es 13.\n')
elif numero == 14:
    print ('El número ingresado es 14.\n')
elif numero == 15:
    print ('El número ingresado es 15.\n')
elif numero == 16:
    print ('El número ingresado es 16.\n')
elif numero == 17:
    print ('El número ingresado es 17.\n')
elif numero == 18:
    print ('El número ingresado es 18.\n')
elif numero == 19:
    print ('El número ingresado es 19.\n')
elif numero == 20:
    print ('El número ingresado es 20.\n')
elif numero == 21:
    print ('El número ingresado es 21.\n')
elif numero == 22:
    print ('El número ingresado es 22.\n')
elif numero == 23:
    print ('El número ingresado es 23.\n')
elif numero == 24:
    print ('El número ingresado es 24.\n')
elif numero == 25:
    print ('El número ingresado es 25.\n')
elif numero == 26:
    print ('El número ingresado es 26.\n')
elif numero == 27:
    print ('El número ingresado es 27.\n')
elif numero == 28:
    print ('El número ingresado es 28.\n')
else:
    print ('El número ingresado es mayor que uno.\n')
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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

Publicado por joel (901 intervenciones) el 22/11/2020 22:19:15
Hola Ezequiel, si el valor que tienes copiado en el portapapeles es un valor numérico, si podrá convertirlo a entero, pero si el valor del portapapeles es una cadena, o imagen, o cualquier otro elemento, te dará ese error, ya que no lo podrá convertir a entero.

Puedes gestionarlo algo así:
1
2
3
4
try:
    numero =int(pyperclip.paste())
except:
    numero=0

De esta manera, si es una cadena, lo sustituirá por un 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 54
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

Publicado por Ezequiel (19 intervenciones) el 24/11/2020 10:39:59
Gracias Joel
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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

Publicado por tincopasan (1082 intervenciones) el 23/11/2020 00:39:43
no te voy a realizar todo el código, pero tu lógica me parece errada.
el método paste() devolverá una cadena, sea lo que sea que copies, por lo tanto es más simple por ejemplo:

1
2
3
4
5
6
7
#-*- coding: utf - 8 -*-
import pyperclip
numeros = {"1":"uno","2":"dos","3":"tres","4":"cuatro"}
 
pegado = pyperclip.paste()
if pegado in numeros:
    print("El número ingresado es:",numeros.get(pegado))

o sea si creas diccionarios te ahorrás la chorrada de código que estás usando.
falta agregar los números que quieras, aunque sería más simple con una función, pero ese es otro tema.
y hacer lo que quieras con las letras usando basicamente la misma lógica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 54
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

creo que pyperclip no hace diferencia (en mi caso) entre variable string y entera

Publicado por Ezequiel (19 intervenciones) el 24/11/2020 10:39:36
Muchas 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