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

  • akalyne

    akalyne

    13 Mayıs 2009
  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • ShoSho

    ShoSho

    20 Ocak 2010