Selasa, 05 Januari 2016

User Input

Pertanyaan sekarang adalah bagaimana caranya biar program selalu meminta input ke user?

Jawaban di stackoverflow ini cukup memuaskan setelah saya coba.
import sys
for line in sys.stdin:
   do something
tidak perlu meminta input( ) lagi. Program otomatis akan meminta input secara kontinue ke user. 

Python Characters Encoding

Nah kembali ke real task. Gimana caranya print character encoding ke dalam file di python?

Awalnya saya coba untuk print karakter encoding secara langsung di terminal. Saya coba
>>> print(u"\u0007")
Dan keluar bunyi "ding". Berhasil!

Cara lainnya dijelaskan di web dokumentasi resmi python. Untuk python3 sedikit berbeda dengan python2 sintaksnya. Disini dicontohkan cara konversi integer ke karakter Unicode dengan menggunakan fungsi chr( ), dan untuk mengkonversinya kembali menggunakan fungsi ord( ). Berbeda dengan fungsi print yang saya contohkan sebelumnya, fungsi chr ini tidak mengeluarkan output "ding" tapi '\0x7'. Sepertinya fungsi ini menghasilkan nilai dari Unicodenya saja.

Nah sekarang gimana caranya biar yang keluar random?
  1. Kalo berdasarkan pertanyaan di sini, cara untuk print random ASCII characters adalah dengan 
    import random
    print (chr (random.randint(0,255)))
  2. Cara lainnya adalah dengan  generate random unicode
    os.urandom(n)
    Kalo menurut website python sih fungsi ini
    Return a string of n random bytes suitable for cryptographic use.
  3. akhirnya pusing. segini dulu nanti diupdate

Senin, 04 Januari 2016

Encoding

Pertanyaannya adalah apa hubungan binary, hexadecimal dan ASCII?

Untuk lebih paham cara berpikirnya, bisa coba instal hex editor HxD. Ini sangat membantu buat saya.

Salah satu artikel bagus yang saya baca adalah ini dan ini dan ini.

Setiap keluaran yang dihasilkan oleh sebuah program pada dasarnya akan dibaca oleh mesin dalam bentuk binary atau 0 dan 1. Angka 0 dan 1 inilah yang membuat kata-kata dan tulisan kita bisa dibaca oleh mesin. Tapi untuk itu harus ada standarnya. Karakter yang kita tuliskan akan di-encode menjadi binary berdasarkan suatu set character yang sudah disepakati oleh para ahli-ahli komputer terdahulu. Dulu komputer hanya menggunakan 8-bit bytes; dan saat itu sudah ada yang namanya ASCII (American Standard Code for Information Interchange) yang menyimpan sebuah karakter dalam 7 bit binary.

Misalnya huruf "A" kodenya adalah 65 dimana binary nya adalah 100 0001. Sebagai perbandingan "1" nilainya adalah 31 dan "a" adalah 97. Sedangkan 1 dalam ASCII akan mengeluarkan karakter lain yang dalam hal ini termasuk dalam kategori unprintable characters.

Namun semakin lama baru disadari kalau jumlah karakter itu banyak, maka dibuatlah 8-bit encodings yang merupakan versi extended dari ASCII yang menambahkan satu bit untuk karakter-karakter lain. Tapi makin lama para ahli ini sadar bahasa di dunia gak cuma bahasa inggris saja, jadi dibikin lagi standar baru yaitu Unicode yang menampung banyak bahasa di dunia. So kurang lebih begitu.
 


Popular Posts