No conozco el Python aunque alguna vez he respondido preguntas que entran en este apartado normalmente porque en el fondo eran de MSDOS más que de Python. Pero lo cierto es que no suele haber mucha gente entre los expertos de la página que conteste a estas preguntas. Por eso me he permitido resolver tu pregunta en "programación BAT" con idea de que puedas entender lo que se hace e intentes trasladarlo a Python:
@echo off
set cad=%~1
set /a pos=0
:bucle
call set car=%%cad:~%pos%,1%%
if "%car%"=="" goto :fin
set /a pos+=1
if "%car%"==" " goto :bucle
if %car% GEQ 0 if %car% LEQ 9 echo se ha encontrado un digito en la posicion %pos% de la cadena&goto :eof
goto :bucle
:Fin
Echo no se ha encontrado ningun digito en la cadena
Si salvas el código anterior como, por ejemplo, BUSCADIG.BAT y lo ejecutas desde una ventana CMD/Símbolo del sistema de esta manera:
BUSCADIG QTGFRWOP1qrST
Te saldrá un mensaje así:
Se ha encontrado un digito en la posicion 9 de la cadena
La programación BAT no es transparente a algunos caracteres (como =, >, <, etc.) pero puedes ver que aquí lo que se hace es ejecutar un bucle en el que se van cargando uno a uno los caracteres de la cadena y comprobando si están comprendidos entre 0 y 9. Si consigues algo así en Python también te funcionará.