SORU
15 Mart 2011, Salı


sprintf Python işlevselliği gibi

Bir dize arabellek işleme biçimi bir sürü oluşturmak için ve sonunda bir metin dosyası C-tarzı sprintf işlevi Python kullanırken tampon yazmak istiyorum. Koşullu ifadeler nedeniyle, doğrudan dosya için onları yazamıyorum.

e.sahte kod g:

sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)

Çıktı dosyasında o/p Bu tür var:

A= foo B= bar
C= ded
etc...

Düzenleme, sorumu açıklığa kavuşturmak için:
buf büyük bir arabellek içerir sprintf kullanarak biçimlendirilmiş olan bu dizeleri. Senin örnek alarak buf yalnızca geçerli değerleri, büyük olanlar değil içerir. e.ilk g buf yazdım A= something ,B= something sonraki C= something eklenen aynı buf ama senin Python cevapları buf içerir sadece son değeri olmayan istiyorum! buf bütün printfler var Henüz başında, gibi C.

İstediğim şeyi açıklığa kavuşturmak edebildim umarım. Kötü İngilizcem için özür dilerim.

CEVAP
15 Mart 2011, Salı


Python için % bir operatör var.

>>> a = 5
>>> b = "hello"
>>> buf = "A = %d\n , B = %s\n" % (a, b)
>>> print buf
A = 5
 , B = hello

>>> c = 10
>>> buf = "C = %d\n" % c
>>> print buf
C = 10

Herkes için reference biçim belirteçleri desteklenen bu bakın.

De format kullanabilirsiniz:

>>> print "This is the {}th tome of {}".format(5, "knowledge")
This is the 5th tome of knowledge

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010