Il metodo print, se non specifichi la codifica, stampa in formato ACII
Quindi 49 al posto di 1 perché 49 è il codice ASCII del carattere "1".
Invece write stampa il valore binario e dipende da cosa gli hai dato in pasto:
Quindi se converti in stringa poi stampi una stringa, quindi "1" resta "1"