Autor |
Mensaje |
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Número O Letra
Hola!.
Hay funciones de comprobación de tipo de datos que parece que ya no existen en gambas.
A pesar de eso, siguen apareciendo en la wiki. Como es:
Imaginar este código. Quiero saber si es una letra o es un número.
El resultado seria:
Citar:
Es un número
Es una letra
Otra posibilidad de comprobar si solo es un número o una letra, podría ser:
Con una misma instrucción tenemos las dos posibilidades. O es cierto o es falso ( Siempre que estemos seguro que el parámetro es una cadena, claro)
Se me ha ocurrido que es posible hacer lo mismo de esta forma:
Salida:
Citar:
Es una letra
Es un número
Quizás es un poco drastico usar ERROR. Si no uso esa forma, número almacenaría 0.
Cabe la posibilidad que el parámetro de la cadena fuera un cero.
En Python, con el tipo cadenas existen dos métodos para averiguar si es un número o es una letra.
cadena[indice].isalpha() # Comprueba si es una letra
cadena[indice].isnumeric() # Comprueba si es un número
Supongo que esos métodos que no existen debieron ser eliminados de la wiki.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 10 Octobre 2015, 12:03; editado 1 vez
|
#1 Sabado, 10 Octobre 2015, 12:01 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número O Letra
Com has escrito, a mi parece que el tu planteamiento con-funde el tipo de caracter con el tipo de dato.
Esto es una cadena, pero no es una letra del alfabeto, sino es un número.....un número de tipo String:
Para saber si una expresión es una letra (...si tiene solo letras del alfabeto...ingles):
Esto... podria ser - o de todos modos referirse a - una letra... pero no es una cadena:
|
#2 Sabado, 10 Octobre 2015, 15:01 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número O Letra
Com has escrito, a mi parece que el tu planteamiento con-funde el tipo de caracter con el tipo de dato.
Esto es una cadena, pero no es una letra del alfabeto, sino es un número.....un número de tipo String:
Correcto. Sabemos que es una cadena, pero como tal es un número dentro de una cadena.
Quizás yo quería saber que número se encuentra dentro de una cadena.
vuott escribió:
Para saber si una expresión es una letra (...si tiene solo letras del alfabeto...ingles):
Las funciones con caracteres en gambas no las conocía. Ni llegue a verlas cuando estuve viendo el índice.
Otro despiste mas.
vuott escribió:
Esto... podria ser - o de todos modos referirse a - una letra... pero no es una cadena:
b no almacena una "letra", b solo es el nombre de un identificador, el nombre de una variable.
Distinto es:
"ar4io"
Y querer ver dentro de esa cadena, si existe un "número".
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#3 Domingo, 11 Octobre 2015, 00:04 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número O Letra
b no almacena una "letra"
......estás tan seguro ?
En Python, .......averiguar si es un número o es una letra.
.........isalpha() # Comprueba si es una letra
Curiosidad:
gambas ofrece pero la posibilidad de usar el recurso parecido al metodo .isalpha() de Python, utilizando la función externa isalpha() de... C
última edición por vuott el Domingo, 11 Octobre 2015, 01:30; editado 5 veces
|
#4 Domingo, 11 Octobre 2015, 00:53 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número O Letra
b no almacena una "letra"
......estás tan seguro ?
Sabía que ibas a usar un ejemplo para el código del carácter ascii.
El código es distinto...eeee..no lo líes.
Recuerda que la idea de la pregunta es encontrar un número dentro de una cadena.
Además b sigue almacenando un número, solo que tu has usado una función para
mostrar y convertir ese número a una cadena. ( si lo hubiera )...es lo contrario a lo que yo quiero.
Citar:
Curiosidad:
gambas ofrece pero la posibilidad de usar el recurso parecido al metodo .isalpha() de Python, utilizando la función externa isalpha() de... C
La segunda asignación no parece correcta. Debería ser un valor booleano lo que almacena i. La has definido del tipo entero.
Bueno, es que si buscas:
Python.Wikipedia
Y ves donde dice "Influido por..". Hay diferentes lenguajes y entre ellos esta "C" y otros más.
Ya ves...Python tiene influencias de "C". Ahí está el problema!. La mala hierba!.
Puede que tenga influencias, pero el código no resulta tan complejo.
Es un código mas fácil de comprender, tanto como el programador quiera, claro.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Domingo, 11 Octobre 2015, 11:59; editado 1 vez
|
#5 Domingo, 11 Octobre 2015, 09:06 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número O Letra
La segunda asignación no parece correcta. Debería ser un valor booleano lo que almacena i. La has definido del tipo entero.
En el standard C no existe el valor Booleano. Además la función isalpha() quiere un Entero y devuelve un Entero:
|
#6 Domingo, 11 Octobre 2015, 14:27 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número O Letra
Citar:
En el standard C no existe el valor Booleano. Además la función isalpha() quiere un Entero y devuelve un Entero:
En Python el valor que devuelve es Boolean. Vaya, en "C" no tenéis el tipo booleano.
Entonces no sabéis cuando es verdadero o falso. ¿ Cómo hacéis para hacer eso con las condicionales ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#7 Domingo, 11 Octobre 2015, 19:35 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número O Letra
Vaya, en "C" no tenéis el tipo booleano.
Entonces no sabéis cuando es verdadero o falso. ¿ Cómo hacéis para hacer eso con las condicionales ?.
En C nosotros vivimos en un beato estado de absoluta y eterna Verdad.
|
#8 Lunes, 12 Octobre 2015, 00:38 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Número O Letra
Citar:
En C nosotros vivimos en un beato estado de absoluta y eterna Verdad
Ya me había dado cuenta. Que inocentes..
¿ Y eso no lo hace más complicado en ciertas ocasiones ?. A ver que dice el manual de C que tengo por aquí..
Así que ceros y unos. Entones expresiones como:
¿ No existen ?.
¿ Necesitáis decir ?.
Naturalmente el "Then" no existe tampoco en "C". En Python tampoco existe.
Lo que lleva a decir que en Basic se usan instrucciones que pueden ser redundantes, pero te obliga a usarlas.
Asi que...
Demasiados paréntesis y llaves. Debe ser que el inventó el "C" era cerrajero.
Vaya lenguaje mas "sexua"...paréntesis y llaves..guarros!.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Lunes, 12 Octobre 2015, 09:56; editado 1 vez
|
#9 Lunes, 12 Octobre 2015, 09:50 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Número O Letra
¿ No existen ?.
Se hace referencia a 0 y 1.
Vaya lenguaje mas "sexua"...paréntesis y llaves..guarros!
El C es un himno a la vida.
|
#10 Lunes, 12 Octobre 2015, 10:16 |
|
|
|