Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

570
Views
En python, ¿por qué 0xbin() devuelve Falso?

Ingresar el comando 0xbin() devuelve Falso:

 >>> 0xbin() False

¿Por qué sucede eso? Esta sintaxis no debería tener significado alguno. Las funciones no pueden comenzar con 0, no hay "i" ni "n" en hexadecimal, y la función bin debe tener algunos argumentos.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Python parece interpretar 0xbin() como 0xb in () , lo que significa que es once en una tupla vacía. La respuesta es no, por lo tanto False .

over 4 years ago · Santiago Trujillo Report

0

Si desensambla el código, verá que la respuesta de Yself , que menciona que 0xbin() se interpreta como 0xb in () , se confirma:

 >>> import dis >>> dis.dis('0xbin()') 1 0 LOAD_CONST 0 (11) 2 BUILD_TUPLE 0 4 COMPARE_OP 6 (in) 6 RETURN_VALUE
over 4 years ago · Santiago Trujillo Report

0

¡Puedes usar el propio tokenizador de Python para verificar!

 import tokenize import io line = b'0xbin()' print(' '.join(token.string for token in tokenize.tokenize(io.BytesIO(line).readline) if token.type!=59))

Esto imprime los tokens en su cadena, separados por espacios. En este caso, el resultado será:

 0xb in ( )

En otras palabras, devuelve False porque el número 11 ( 0xb ) no está en la tupla vacía ( () ).

(¡Gracias a Roman Odaisky por sugerir el uso de tokenize en los comentarios!)

EDITAR: para explicar el código un poco más a fondo: la función tokenize espera una entrada en un formato un poco extraño, por lo que io.BytesIO(line).readline es una función que convierte una secuencia de bytes en algo que tokenize puede leer. tokenize luego lo tokeniza y devuelve una serie de namedtuple s; tomamos la cadena que representa a cada uno y los unimos con espacios. La parte type != 59 se usa para ignorar el especificador de codificación que, de lo contrario, aparecería al principio.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!