script salto print por parametros linea imprimir end ejecutar con comandos python printing python-3.x arguments

salto - Imprimir mĂșltiples argumentos en Python



parametros por linea de comandos python (11)

Esto es sólo un fragmento de mi código:

print("Total score for %s is %s ", name, score)

Pero quiero que se imprima:

"La puntuación total para (nombre) es (puntuación)"

donde name es una variable en una lista y score es un número entero. Esto es Python 3.3 si eso ayuda en absoluto.


En Python 3.6, f-string es mucho más limpio.

En la versión anterior:

print("Total score for %s is %s. " % (name, score))

En Python 3.6:

print(f''Total score for {name} is {score}.'')

haré

Es más eficiente y elegante.


Esto es lo que hago:

print("Total score for " + name + " is " + score)

Recuerda poner un espacio después for antes y después y después.


Hay muchas maneras de hacer esto. Para corregir su código actual usando % -formatatting, necesita pasar una tupla:

  1. Pásalo como una tupla:

    print("Total score for %s is %s" % (name, score))

Una tupla con un solo elemento se parece a (''this'',) .

Aquí hay algunas otras formas comunes de hacerlo:

  1. Pásalo como un diccionario:

    print("Total score for %(n)s is %(s)s" % {''n'': name, ''s'': score})

También hay un formato de cadena de estilo nuevo, que podría ser un poco más fácil de leer:

  1. Utilice el formato de cadena de nuevo estilo:

    print("Total score for {} is {}".format(name, score))

  2. Use el formato de cadena de estilo nuevo con números (útil para reordenar o imprimir el mismo varias veces):

    print("Total score for {0} is {1}".format(name, score))

  3. Utilice el formato de cadena de estilo nuevo con nombres explícitos:

    print("Total score for {n} is {s}".format(n=name, s=score))

  4. Cuerdas de concatenación:

    print("Total score for " + str(name) + " is " + str(score))

Los dos más claros, en mi opinión:

  1. Solo pasa los valores como parámetros:

    print("Total score for", name, "is", score)

    Si no desea que los espacios se inserten automáticamente por print en el ejemplo anterior, cambie el parámetro sep :

    print("Total score for ", name, " is ", score, sep='''')

    Si está usando Python 2, no podrá usar los dos últimos porque la print no es una función en Python 2. Sin embargo, puede importar este comportamiento desde __future__ :

    from __future__ import print_function

  2. Use el nuevo formato de cadena de caracteres en Python 3.6:

    print(f''Total score for {name} is {score}'')


Hay muchas maneras de imprimir eso.

Echemos un vistazo con otro ejemplo.

a = 10 b = 20 c = a + b #Normal string concatenation print("sum of", a , "and" , b , "is" , c) #convert variable into str print("sum of " + str(a) + " and " + str(b) + " is " + str(c)) # if you want to print in tuple way print("Sum of %s and %s is %s: " %(a,b,c)) #New style string formatting print("sum of {} and {} is {}".format(a,b,c)) #in case you want to use repr() print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c)) EDIT : #New f-string formatting from Python 3.6: print(f''Sum of {a} and {b} is {c}'')


Manteniéndolo simple, personalmente me gusta la concatenación de cuerdas:

print("Total score for " + name + " is " + score)

Funciona tanto con Python 2.7 como con 3.X.

NOTA: Si la puntuación es un int , entonces, debe convertirlo a str :

print("Total score for " + name + " is " + str(score))


Sólo inténtalo:

print("Total score for", name, "is", score)


Si la score es un número, entonces

print("Total score for %s is %d" % (name, score))

Si la puntuación es una cadena, entonces

print("Total score for %s is %s" % (name, score))

Si la puntuación es un número, entonces es %d , si es una cadena, entonces es %s , si la puntuación es una flotación, entonces es %f


Solo sigue esto

idiot_type = "the biggest idiot" year = 22 print("I have been {} for {} years ".format(idiot_type, years))

O

idiot_type = "the biggest idiot" year = 22 print("I have been %s for %s years."% (idiot_type, year))

Y olvídate de todos los demás, de lo contrario el cerebro no podrá mapear todos los formatos.


Utilice .format :

print("Total score for {0} is {1}".format(name, score))

O:

print("Total score for {n} is {s}".format(n=name, s=score))

O:

print("Total score for" + name + " is " + score)


Utilice f-string :

print(f''Total score for {name} is {score}'')

O

Utilice .format :

print("Total score for {} is {}".format(name, score))


print("Total score for %s is %s " % (name, score))

%s puede ser reemplazado por %d o %f