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

  • ★TheCrono Official Channel★

    ★TheCrono

    3 Mayıs 2014
  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • GenTechPC

    GenTechPC

    1 Temmuz 2007