elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Obtener valor numerico y posicion en una cadena de caracteres - python
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener valor numerico y posicion en una cadena de caracteres - python  (Leído 7,855 veces)
juanfelr

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Obtener valor numerico y posicion en una cadena de caracteres - python
« en: 27 Abril 2022, 03:56 am »

Saludos a todos los miembros del foro.

Procuraré explicar el código que tengo en mente de la manera mas clara posible con las siguientes instrucciones quedebe cumplir:

1. Debe solicitar al usuario ingresar texto que puede ser alfanumérico.
2. Para el texto ingresado por el usuario debe detectar la posición del primer número e indicar de que numero se trata.

Por ejemplo, si el usuario ingresa el código ABC123, la posición es 3 (teniendo en cuenta que comienza en 0) y el número es 1.

hasta el momento tengo el siguiente código y creo que estoy cerca, pero más abajo inidco el problema con la lógica.

plate=input("Plate: ")

for char in plate:
    i=0
    for i in range(10):
        if char.find(f"{i}")!=-1:
                                 
            print(i)
            break

El problema es que cuando termina el ciclo interno no se detiene y continúa con el siguiente caracter de la palabra ingresada, es decir, si ingreso AB45 me da como resultado:

4
5

en lugar de solo:
4

si adiciono un break por fuera del for interior, simplemente no muestra nada, y si adiciono print(i) por fuera de los ciclos me muestra solo el numero 9 (como si el ciclo hubiese continuado hasta el último valor de i)

Alguien sabe si voy por buen camino o hay otra forma más sencilla de resolver este requisito?

Mil gracias por su atención y feliz día.


« Última modificación: 27 Abril 2022, 04:06 am por juanfelr » En línea

juanfelr

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Obtener valor numerico y posicion en una cadena de caracteres - python
« Respuesta #1 en: 27 Abril 2022, 04:27 am »

Señores lo logré,

después de una semana pensando, y apenas unos minutos de haber publicado el post, se me ocurrió otra forma.

lo comparto para quienes puedan tener la misma situación:

plate=input("Plate: ")
n=len(plate)
for i in range(n):
    if plate.isnumeric()==True:
        break
num=plate
print(num)

para mi sigue el trabajo porque esto es solo una parte de la tarea, seguiré pensando.

Espero que esta solución sea de ayuda a muchas personas.

Feliz día.


En línea

Xyzed


Desconectado Desconectado

Mensajes: 306



Ver Perfil
Re: Obtener valor numerico y posicion en una cadena de caracteres - python
« Respuesta #2 en: 27 Abril 2022, 05:26 am »

Señores lo logré,

después de una semana pensando, y apenas unos minutos de haber publicado el post, se me ocurrió otra forma.

lo comparto para quienes puedan tener la misma situación:

plate=input("Plate: ")
n=len(plate)
for i in range(n):
    if plate.isnumeric()==True:
        break
num=plate
print(num)

para mi sigue el trabajo porque esto es solo una parte de la tarea, seguiré pensando.

Espero que esta solución sea de ayuda a muchas personas.

Feliz día.
Hola.

Tu código no cumple con lo que redactas, te explico porque:

Código
  1. #Si buscas obtener el numero de orden del primero numero de una cadena, con tu código no estás haciendo eso.
  2.  
  3. plate=input("Plate: ")
  4. n=len(plate)
  5. for i in range(n):
  6.    if plate.isnumeric()==True:
  7.        break
  8. num=plate
  9. print(num)
  10.  
  11. #Linea 5: ¿Para que recorrer un rango?, mejor recorrer la cadena.
  12. #Linea 6: No hace falta la igualdad y el "True", "if plate.isnumeric()" te devolvera un booleano. Al indicar "if plata.isnumeric()", estás esperando un True automaticamente.
  13. #Linea 8: Estás definiendo a la variable "num" el valor de la cadena, no el numero de orden del caracter numerico.
  14.  
  15.  

A continuación, te aporto la solución comentada.

Código
  1. plate = input("Plate: ")
  2. es_numero = 0
  3. for x in plate:
  4.    if x.isnumeric():
  5.        es_numero = x
  6.        break
  7. print(plate.find(es_numero))
  8. #Explicaciones a partir de "es_numero".
  9. #Linea 3: recorremos el string "plate". "x" tomará el valor de c/u de los valores de"plate" previo al break.
  10. #Linea 4: Validamos si el carácter actual es numérico (que es lo que intentabas).
  11. #Linea 5/6: En caso de ser numerico, la variable declarada en "es_numero" tomará el valor de x (es decir, el caracter actual numerico) y se terminará el recorrido de la cadena.
  12. #Finalmente con la función "find", buscamos el numero de orden en la cadena del valor seteado en "es_numero".
  13.  

Espero que te sirva. Te recomiendo leer más documentación, eso te facilitará el aprendizaje y harás código mucho más legible.

Saludos.
En línea

...
juanfelr

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Obtener valor numerico y posicion en una cadena de caracteres - python
« Respuesta #3 en: 28 Abril 2022, 03:49 am »

Saludos XyZed.

De hecho me estaba funcionando parcialmente, solo que al publicar  me omitió el símbolo "[ ]" y su contenido, pero tienes toda la razón, no estaba cumpliendo con el requisito.

Código:
plate=input("Plate: ")
n=len(plate)
for i in range(n):
    if plate[i].isnumeric()==True:
        break
num=plate[i]
print(num)

Muchas gracias por tu aporte, lo voy a ensayar para lograr el objetivo.

Aún estoy comenzando y como dices tengo mucho por leer al respecto.

Gracias por tu paciencia y feliz noche.
« Última modificación: 28 Abril 2022, 03:51 am por juanfelr » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener caracteres de una Cadena VB.NET
.NET (C#, VB.NET, ASP)
NetStorm 7 17,576 Último mensaje 29 Diciembre 2009, 02:06 am
por NetStorm
encontrar posicion de valor en una cadena en batch
Scripting
dj kuzmar 1 3,156 Último mensaje 3 Febrero 2010, 01:49 am
por leogtz
[Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Scripting
S3kh 7 10,859 Último mensaje 4 Septiembre 2011, 03:57 am
por S3kh
[Python] Buscar y obtener el valor de una celda concreta de excel
Scripting
hsk75rv 0 5,192 Último mensaje 26 Diciembre 2016, 18:39 pm
por hsk75rv
Ayuda en ejercicio de cadena de caracteres en python
Ejercicios
Dr420 4 4,015 Último mensaje 3 Junio 2020, 19:16 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines