Εκτύπωση πολλαπλών επιχειρημάτων στην Python

Αυτό είναι απλώς ένα απόσπασμα του κώδικά μου:

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

Αλλά θέλω να εκτυπωθεί:

"Η συνολική βαθμολογία για το (όνομα) είναι (βαθμολογία)&quot,

όπου name είναι μια μεταβλητή σε μια λίστα και score είναι ένας ακέραιος αριθμός. Πρόκειται για την Python 3.3, αν αυτό βοηθάει καθόλου.

Υπάρχουν πολλοί τρόποι για να το κάνετε αυτό. Για να διορθώσετε τον τρέχοντα κώδικά σας χρησιμοποιώντας τη μορφοποίηση %, πρέπει να περάσετε μια πλειάδα:

  1. Να το περάσετε ως πλειάδα:

     %s" % (name, score)).

Μια πλειάδα με ένα μόνο στοιχείο μοιάζει με ('this',).

Εδώ είναι μερικοί άλλοι συνηθισμένοι τρόποι για να το κάνετε:

  1. Να το περάσετε ως λεξικό:

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

Υπάρχει επίσης μορφοποίηση συμβολοσειρών νέου τύπου, η οποία μπορεί να είναι λίγο πιο ευανάγνωστη:

  1. Χρησιμοποιήστε μορφοποίηση συμβολοσειρών νέου τύπου:

     "Συνολική βαθμολογία για {} είναι {}".format(name, score))
  2. Χρησιμοποιήστε μορφοποίηση συμβολοσειράς νέου τύπου με αριθμούς (χρήσιμο για την αναδιάταξη ή την εκτύπωση του ίδιου αριθμού πολλές φορές):

     print("Total score for {0} is {1}".format(name, score))
  3. Χρησιμοποιήστε μορφοποίηση συμβολοσειρών νέου τύπου με ρητά ονόματα:

     print("Total score for {n} is {s}".format(n=name, s=score))
  4. Συνδέστε συμβολοσειρές:

     + str(name) + " είναι " + str(score))

Οι δύο πιο σαφείς, κατά τη γνώμη μου:

  1. Απλά περάστε τις τιμές ως παραμέτρους:

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

    Αν δεν θέλετε να εισάγονται αυτόματα κενά από την print στο παραπάνω παράδειγμα, αλλάξτε την παράμετρο sep:

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

    Αν χρησιμοποιείτε Python 2, δεν θα μπορείτε να χρησιμοποιήσετε τα δύο τελευταία γιατί η print δεν είναι συνάρτηση στην Python 2. Μπορείτε, ωστόσο, να εισαγάγετε αυτή τη συμπεριφορά από την __future__:

     από __future__ import print_function
  2. Χρησιμοποιήστε τη νέα μορφοποίηση της συμβολοσειράς f στην Python 3.6:

     print(f'Η συνολική βαθμολογία για το {όνομα} είναι {score}')
Σχόλια (4)

Κρατώντας το απλό, προσωπικά μου αρέσει η συνένωση συμβολοσειρών:

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

Λειτουργεί τόσο με την Python 2.7 όσο και με την Python 3.X.

ΣΗΜΕΙΩΣΗ: Αν το σκορ είναι int, τότε θα πρέπει να το μετατρέψετε σε str:

print("Total score for " + name + " is " + str(score))
Σχόλια (0)

Απλά δοκιμάστε:

print("Total score for", name, "is", score)
Σχόλια (0)