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:
#Si buscas obtener el numero de orden del primero numero de una cadena, con tu código no estás haciendo eso.
plate=input("Plate: ")
n=len(plate)
for i in range(n):
if plate.isnumeric()==True:
break
num=plate
print(num)
#Linea 5: ¿Para que recorrer un rango?, mejor recorrer la cadena.
#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.
#Linea 8: Estás definiendo a la variable "num" el valor de la cadena, no el numero de orden del caracter numerico.
A continuación, te aporto la solución comentada.
plate = input("Plate: ")
es_numero = 0
for x in plate:
if x.isnumeric():
es_numero = x
break
print(plate.find(es_numero))
#Explicaciones a partir de "es_numero".
#Linea 3: recorremos el string "plate". "x" tomará el valor de c/u de los valores de"plate" previo al break.
#Linea 4: Validamos si el carácter actual es numérico (que es lo que intentabas).
#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.
#Finalmente con la función "find", buscamos el numero de orden en la cadena del valor seteado en "es_numero".
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.