Foros Python

Versión completa: Consulta: .format()
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, tengo el siguiente inconveniente con .format, el código es el siguiente:

Dato: Uso Sublime Text 3.2.2 y Python3.8 en Ubuntu Mate 18.04

Código:
alumnos = 2500

cadena = "Instituto Capacitar"


cadena = "Los " + str(alumnos) + " alumnos de " + academia + " son muy aplicados"

print(cadena)


# .format
cadena = "Los {} alumnos de {} son muy aplicados".format(alumnos, academia)
print(cadena)

cadena = "Los {a} alumnos de Instituto Capacitar son muy aplicados".format(a = alumnos)
print(cadena)

cadena = f"Los {alumnos} alumnos de {academia} son muy aplicados"
print(cadena)
Las líneas anteriores se ejecutaron sin problema alguno, el problema viene cuando:

cadena = f"Los {alumnos} alumnos de {academia} son muy aplicados"
print(cadena)

Me da el siguiente mensaje de error:
File "/home/raiden/ProgPy/var_string.py", line 15
    cadena = f"Los {alumnos} alumnos de {academia} son muy aplicados"
                                                                    ^
SyntaxError: invalid syntax


No se a qué se debe ya que si a esa línea le quito la f la salida es la siguiente:
Los {alumnos} alumnos de {academia} son muy aplicados

Acabo de probar en la consola y funciona:

>>> f"Hello, {name}. You are {age}."
'Hello, Eric. You are 74.'

Buscando, encontré que tengo que colocar # encoding: utf-8, pero no pasa nada, de todos modos sigo teniendo errores. O será tal vez la configuración de Sublime?

Desde ya muchas gracias
Hola, ¿cómo estás?

Seguramente tu problema es el siguiente: Sublime está ejecutando tu código con una versión de Python anterior a la 3.7, donde se introdujo la sintaxis de la "f" y los corchetes. Por eso en la consola interactiva funciona correctamente, donde estás corriendo Python 3.8.

Podés comprobar esto agregando a tu archivo de Sublime

Código:
import platform; print(platform.python_version())

y ver qué versión está usando.

La recomiendación de usar "# encoding: utf-8" no tiene utilidad alguna, ya que UTF8 es la codificación por defecto a partir de Python 3.0.

Saludos!
Hola, tal como vos dijiste y lo leí, está usando la versión 2.7 de Python pero no se por qué, si ayer cuando lo configuré le puse 3.8.
Estuve buscando para cambiar la configuración y no estoy pudiendo.
Muchas gracias
Hola, acá un artículo que explica cómo hacerlo: https://medium.com/@hariyanto.tan95/set-...45b742c720.

Saludos
(02-04-2020, 09:01 PM)Francisco escribió: [ -> ]Hola, acá un artículo que explica cómo hacerlo: https://medium.com/@hariyanto.tan95/set-...45b742c720.

Saludos
Hola, seguí los pasos del link que me pasaste pero ahora me tira otro error:

Imagen de sublime3

Estoy viendo que puede ser, pero no logro solucionarlo.

Creo que ya se cuál es el tema, ahora tengo que ver como solucionarlo. Pero no es nada con el ide o python, es del sistema en sí.

Gracias
Es un problema de permisos evidentemente. Asegurate de ejecutar Sublime como administrador!
(03-04-2020, 09:51 AM)Francisco escribió: [ -> ]Es un problema de permisos evidentemente. Asegurate de ejecutar Sublime como administrador!
Hola, es que ese es precisamente el problema, no puedo loguearme ni como root:

sudo root

sudo: /usr/bin/sudo debe ser propiedad del uid 0 y tener el bit setuid establecido

Hasta que no solucione esto, imposible avanzar con lo que sea.
Gracias
Lo solucioné bajando Ubuntu 20.04 Gnome (porque me olvidé de buscar el Mate). Hice esto porque anteriormente probé un montón de veces varios tutos y ninguno me solucionó el problema.
Gracias Francisco