Forse non è un gioco tanto bello? Ma poi cambiamo, dai solo per oggi...
Come già detto c'è tutto a questo URL.
Vediamo qualche esempio.
#!/usr/bin/python
# -*- coding: utf-8 -*-
bl = "Luigi"
da = "d'Artagnan"
ju = "Nino"
lt = "Ennio"
st = "I tre moschettieri sono {0}, {1}, {2} e {3},\n{3} è sempre di mezzo!"
stfor = st.format(bl, lt, ju, da)
print stfor
In questo caso abbiamo indicato la posizione delle variabili tra parentesi graffe. Il fatto che fossero stringhe l'ha dedotto l'interprete, proprio come in questo caso (luce.py):#!/usr/bin/python
# -*- coding: utf-8 -*-
C = 300000
l = "luce"
c = "costante"
units = "km/s"
st = "la velocità della {0} è {1} e vale {2} circa {3}.".format(
l, c, C, units)
print st
Notare come si possono spezzare le righe troppo lunghe (in questo caso per i parametri della funzione format(). OK, ma un fisico avrebbe da ridire: intanto usare le unità di MKS e poi i numeri grossi... (tralasciando la grossolana approssimazione)! Ecco allora lucef.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
C = 3e8
l = "luce"
c = "costante"
units = "m/s"
st = "la velocità della {0} è {1} e vale {2} circa {3}.".format(
l, c, C, units)
print st
Mmmh... illeggibile, dai si può fare di meglio! (lucef2.py):#!/usr/bin/python
# -*- coding: utf-8 -*-
C = 3e8
l = "luce"
c = "costante"
units = "m/s"
st = "la velocità della {0} è {1} e vale {2:5.2E} circa {3}.".format(
l, c, C, units)
print st
Meglio, vero? Se poi uno fa un salto su Wikipedia aggiusta le cose per bene, compito a casa: modificare lo script con C = 299'792'458 m/s.Tutti sanno che La Risposta è 42, vero. E nelle usuali basi diventa (42.py):
#!/usr/bin/python
# -*- coding: utf-8 -*-
risposta = 42
tmpl = 'La Risposta è {0:b}, {0:o}, {0:d}, {0:x}'
print tmpl.format(risposta)
E che dire di questo (pi.py):#!/usr/bin/python
# -*- coding: utf-8 -*-
from math import pi
pi2 = 22.0 / 7
pi3 = 355.0 / 113
nl = '\n'
print pi, nl, pi2, nl, pi3
Vediamo l'approssimazione (pi-app.py):#!/usr/bin/python
# -*- coding: utf-8 -*-
from math import pi
pi2 = 22.0 / 7
pi3 = 355.0 / 113
nl = '\n'
a1 = 100
a2 = 100 * (1 - (pi2 - pi) / pi)
a3 = 100 * (1 - (pi3 - pi) / pi)
tmpl = ' {:8.6f} {:>10.6f}%'
print tmpl.format(pi, a1)
print tmpl.format(pi2, a2)
print tmpl.format(pi3, a3)
Numeri grossi, scritti come si deve, tolti sempre i fisici che non vogliono (bigint.py):#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
n = 20
bigint = math.factorial(n)
print " {:d}! = {:20,d}".format(n, bigint)
print "o meglio"
print " {:d}! = {:20,d}".format(n, bigint).replace(',', '.')
In questo caso conviene andare a vedere quiOK, ci sarebbero ancora tanti casi ma, diciamocelo, format() ci ha stufati: basta!
Juhan
E se volete dare un'occhiata alle puntate precedenti (che ormai sono veramente tante), basta andare qui.
Si sente terribilmente la mancanza di Lightuono!!! Perciò faccio un piccolo appello in dialetto calabrese (Calabria nord-ovest): Ehi, ti vo ricogli..Ca ccha ti stamu aspittannu!!! WE WE WE!!! (WE ad libitum).
Alla prossima
Lightuono sì i stuma a spìtè, nèh!
RispondiEliminaAnche perché è passato lo screenshot con errore (Rsisposta).