Imprimir variables en Python 3.4

Entonces, la syntax parece haber cambiado de lo que aprendí en Python 2 … aquí está lo que tengo hasta ahora

for key in word: i = 1 if i < 6: print ( "%s. %s appears %s times.") % (str(i), key, str(wordBank[key])) 

El primer valor es un int, el segundo una cadena y el último un int.

¿Cómo puedo alterar mi statement de impresión para que imprima las variables correctamente?

La syntax ha cambiado en que la print ahora es una función . Esto significa que el formato % debe hacerse dentro del paréntesis: 1

 print("%d. %s appears %d times." % (i, key, wordBank[key])) 

Sin embargo, ya que estás usando Python 3.x., deberías estar usando el nuevo método str.format :

 print("{}. {} appears {} times.".format(i, key, wordBank[key])) 

Aunque el formato % no está oficialmente en desuso (todavía), se desaconseja a favor de str.format y lo más probable es que se elimine del idioma en una versión próxima (¿Python 4 quizás?).


1 Solo una pequeña nota: %d es el especificador de formato para enteros, no %s .

Versión 3.6 o superior: use un literal de cadena formateada , f-string para abreviar

 print(f"{i}. {key} appears {wordBank[key]} times.") 

Prueba la syntax del formato:

 print ("{0}. {1} appears {2} times.".format(1, 'b', 3.1415)) 

Salidas:

 1. b appears 3.1415 times. 

La función de impresión se llama como cualquier otra función, con paréntesis alrededor de todos sus argumentos.

También puedes formatear la cadena así:

 >>> print ("{index}. {word} appears {count} times".format(index=1, word='Hello', count=42)) 

Que salidas

 1. Hello appears 42 times. 

Debido a que los valores son nombrados, su orden no importa. Al hacer que el siguiente ejemplo de salida sea el mismo que el ejemplo anterior.

 >>> print ("{index}. {word} appears {count} times".format(count=42, index=1, word='Hello')) 

Formato de cadena de esta manera le permite hacer esto.

 >>> data = {'count':42, 'index':1, 'word':'Hello'} >>> print ("{index}. {word} appears {count} times.".format(**data)) 1. Hello appears 42 times. 

El problema parece estar mal colocado ) . En tu muestra tienes el % fuera de la print() , debes moverlo dentro:

Utilizar esta:

 print("%s. %s appears %s times." % (str(i), key, str(wordBank[key])))