Cómo tomar el número n de un número en Python

Quiero tomar el enésimo dígito de un número de N dígitos en python. Por ejemplo:

number = 9876543210 i = 4 number[i] # should return 6 

¿Cómo puedo hacer algo así en python? ¿Debería cambiarlo primero a cadena y luego cambiarlo a int para el cálculo?

Primero trata el número como una cuerda

 number = 9876543210 number = str(number) 

Luego para obtener el primer dígito:

 number[0] 

El cuarto dígito:

 number[3] 

EDITAR:

Esto devolverá el dígito como un carácter, no como un número. Para convertirlo de nuevo usa:

 int(number[0]) 

Puedes hacerlo con división entera y métodos de rest.

 def get_digit(number, n): return number // 10**n % 10 get_digit(987654321, 0) # 1 get_digit(987654321, 5) # 6 

La // realiza una división de enteros por una potencia de diez para mover el dígito a la posición de las unidades, luego el % obtiene el rest después de la división por 10. Tenga en cuenta que la numeración en este esquema utiliza la indexación de cero y comienza desde el lado derecho de número.

Recomendaría agregar un cheque booleano para la magnitud del número. Estoy convirtiendo un alto valor de milisegundos a datetime. Tengo números del 2 al 200,000,200 por lo que 0 es una salida válida. La función que tiene @Chris Mueller devolverá 0 incluso si el número es menor que 10 ** n.

 def get_digit(number, n): return number // 10**n % 10 get_digit(4231, 5) # 0 

 def get_digit(number, n): if number - 10**n < 0: return False return number // 10**n % 10 get_digit(4321, 5) # False 

Debe tener cuidado al verificar el estado booleano de este valor de retorno. Para permitir que 0 sea un valor de retorno válido, no puede usarlo solo if get_digit: if get_digit is False: utilizar if get_digit is False: para evitar que 0 comporte como un valor falso.

Ok, primero que todo, usa la función str () en python para convertir ‘número’ en una cadena

 number = 9876543210 #declaring and assigning number = str(number) #converting 

Luego obtenga el índice, 0 = 1, 4 = 3 en notación de índice, use int () para convertirlo de nuevo en un número

 print(int(number[3])) #printing the int format of the string "number"'s index of 3 or '6' 

si te gusta en forma corta

 print(int(str(9876543210)[3])) #condensed code lol, also no more variable 'number'