visual studio programar extension configurar code python string visual-studio-code

programar - visual studio python



¿Hay alguna diferencia entre los prefijos de cadena r y r en Python? (2)

En general, Python distingue entre mayúsculas y minúsculas. Sin embargo, según la especificación de sintaxis literal de la cadena , los prefijos de cadena pueden ser mayúsculas y minúsculas (u orden). Así que la diferencia es visual, aunque la tradición es sobre todo usar minúsculas, y las letras mayúsculas pueden ser más difíciles de distinguir.

Visual Studio Code resalta los literales de cadena con los prefijos r y R diferente:

Match = re.search(r"/d{2} /d{4} /d{2}:/d{2}:/d{2})", Output) Match = re.search(R"/d{2} /d(4} /d{2}:/d{2}:/d{2})", Output)

¿Hay alguna diferencia de significado entre estas dos notaciones? ¿Se usan diferentes convenciones para r y R ?


No hay diferencia de significado entre estas notaciones. Reference :

Tanto los literales de cadena como de bytes se pueden prefijar opcionalmente con una letra ''r'' o ''R''; tales cadenas se llaman cadenas sin procesar y tratan las barras invertidas como caracteres literales

Ahora con respecto al comportamiento de VSCode:

  • el primer coloreado (con amarillo {2} ) ocurre cuando el editor asume que estás escribiendo una expresión regular,
  • el segundo (con azul {2} ) sucede cuando el editor cree que estás escribiendo una cadena de formato, algo así como "{0}, {1}!".format("Hello", "world") .

Esto se vuelve más obvio cuando agregamos más sintaxis:

Ahora, parece que VSCode debería tratar R"literal" igual que r"literal" , pero en cambio lo colorea igual que "literal" , que es probablemente un pequeño error que nadie detectó porque todos escriben en minúscula r .