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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Subscribe!!

    Subscribe!!

    3 EKİM 2009