Sabtu, 11 Juli 2015

"Kertas Tipis Seperti Perangko" yang Mematikan

Jenis narkoba Asam Lisergat Dietilamida (LSD) sangat mematikan umumnya diproduksi berbentuk kertas tipis seperti perangko dan penggunaannya diletakan di lidah atau diatas langit- langit mulut. Asam Lisergat Dietilamida (LSD) umumnya diproduksi berbentuk kertas tipis seperti perangko. Namun, jangan tertipu penampilannya. Sekalipun hanya berbentuk kertas tipis, senyawa ini mampu membunuh penggunanya. Kepala Badan Narkotika Nasional (BNN) Provinsi NTB, Kombes Pol Drs. Mufti Djusnir, MSi, Apt., mengungkapkan LSD, walaupun dikonsumsi dalam dosis sangat kecil yakni 20 mikrogram bisa langsung bekerja aktif di dalam tubuh setelah 30 menit dikonsumsi. "Senyawa ini dapat terus menerus bekerja selama 8-12 jam atau bahkan lebih. Karena alasan itulah, maka sediaan LSD dibuat di dalam kertas tipis perangko yang diletakkan di bawah lidah," kata Mufti kepada Antara, Sabtu, (24/1). Mufti mengatakan, saat seseorang mengonsumsi LSD, maka pada saat itulah curah jantungnya dapat meningkat. Normalnya, curah jantung orang dewasa sehat ialah empat sampai enam liter per menit. Sementara pada pengguna LSD, curah jantung akan lebih dari itu. "Berawal dari peningkatan curah jantung, lalu tekanan darah meningkat, yang ditandai rasa tidak dapat tidur meningkat, tremor hingga keram jantung," kata Mufti yang juga Ketua Badan Advokasi Mediasi dan Perlindungan Anggota, Ikatan Apoteker Indonesia (IAI) itu. Kemudian, lanjut dia, LSD yang dikonsumsi dalam jumlah tertentu dapat menimbulkan serangan hipotermia (tubuh mengalami penurunan suhu hingga 32 derajat Celcius), sehingga berisiko menyebabkan kematian. Di samping itu, efek lain LSD bagi pengguna ialah menimbulkan distorsi waktu, gangguan penglihatan sehingga pandangan menjadi kabur. Mufti mengatakan, pada awalnya, LSD memang diperuntukkan untuk pasien gangguan jiwa. Namun, United Nation Office on Drug Crime (UNODC) sejak tahun 1967, telah menetapkan senyawa ini sebagai golongan narkotika yang dilarang digunakan untuk tujuan pengobatan. Di Indonesia, penggunaan senyawa ini telah dilarang sesuai Undang-Undang RI No 35 tahun 2009, tentang Narkotika Golongan I, sehingga tidak diproduksi lagi untuk pasien sakit jiwa. "Oleh karena itu, peredaran maupun produksinya saat ini adalah ilegal," kata dia. Ia menambahkan, sebagai salah satu upaya menanggulangi penyalahgunaan LSD dan obat-obatan lainnya, IAI melalui program Sadar Obat, mengajak dan mengedukasi masyarakat tentang cara menggunakan obat secara benar, sehingga berkhasiat untuk pengobatan dan menghindari efek samping yang sekecil mungkin. "...serta memberikan informasi lainnya seperti terkait penyalahgunaan obat, narkotika, psikotropika dan zat adiktif lainnya,

Kamis, 12 Maret 2015

TRIK INTERNET GRATIS TELKOMSEL 10,11,12 mei 2013 TERBARU



Di bulan mei ini admin mau posting trik internet gratis, kali ini admin akan bagi-bagi tips n trik internet gratis khusus untuk pengguna Telkomsel
OK, langsung saja saya kasih tips n triknya :

Trik Internet Gratis Telkomsel Via Operamini Handler
download

Trik Internet Gratis Telkomsel Via Browser HP Handler
download

Trik Internet Gratis Telkomsel Via UCWEB Handler
download

Trik Internet Gratis Telkomsel Via Ebuddy Handler
download


Semoga berhasil ya...

Selasa, 28 Oktober 2014

hack billing explorer ( free download )

Satu lagi software hacker yang tentunya memudahkan kegiatan hacking.Freeware ini katanya mampu mereset timer yang ada pada billing server terutama billing explorer.So nantinya kita bisa seenaknya main dan saat mau pulang tinggal di reset deh jam pemakaiannya sehingga kita bisa lebih hemat kan???

Dan ini juga menjadi koleksi saya dalam teknik teknik hack / hacking billing warnet.Apabila teman teman punya teknik baru bisa di bagi dengan saya!!!

akan tetapi freeware hacker ini yang kata pemiliknya dapat mereset billing explorer ini belum pernah saya coba karena warnet yang biasa saya pakek tidak menggunakan billing explorer.

Setidaknya beginilah perkataan pemilik software ini:

"Caranya sangat mudah, buka program, lalu secara otomatis, akan tercatat ip komputer yang anda gunakan, jika tidak, maka tinggal disesuaikan dengan menekan tombol Recheck IP Address. Jika berhasil terkoneksi, maka kita dapat mereset hitungan billing tersebut. Enjoy it"

ini screen shotnya:



kalau teman teman mau silakan di download

Merusak website Part I

Heeemmmmm.... beneran tuh judulnya????,,,,Terserah mau percaya atau enggak tapi sebentar lagi kamu bakalan bisa merusak tampilan suatau website ataupun blog.Lumayan buat jahilin temen atau orang OOn He he he he...

Mau tau gimana caranya


Pertama Download kode perusak websitenya Download!!
Aetelah itu buka website yang ingin kamu rusak.
dan pastekan kode yang kamu dapt tadi di Alamat web target dan tekan enter

lalu bilang bim salabim!!!!

udah kamu otak atik deh tuh web sepuasnya
Delete atau ketik nama kamu di sana
apa aja deh

kupu kupu


hacker instan


Hacking instan

Ini adalah pengenalan singkat untuk seni pemrograman, dengan contoh-contoh yang ditulis dalam bahasa pemrograman Python. (Jika Anda sudah tahu bagaimana program, tetapi ingin intro singkat untuk Python, Anda mungkin ingin memeriksa artikel saya Python Instant.) Artikel ini telah diterjemahkan ke Italia, Polandia, Jepang, Serbia, Brasil Portugis, Belanda, Ceko, dan Belarusia.

Halaman ini bukan tentang membobol sistem komputer orang lain dll aku tidak ke hal semacam itu, jadi tolong jangan email saya tentang hal itu.

Catatan: Untuk mendapatkan contoh bekerja dengan benar, menulis program dalam sebuah file teks dan kemudian jalankan bahwa dengan penafsir; jangan mencoba untuk menjalankan mereka secara langsung dalam interpreter interaktif - tidak semua dari mereka akan bekerja. (Tolong jangan tanya saya pada rincian tentang ini. Periksa dokumentasi atau kirim email ke help@python.org).
Lingkungan

Untuk program dengan Python, Anda harus memiliki seorang juru diinstal. Itu ada untuk kebanyakan platform (termasuk Macintosh, Unix dan Windows). Informasi lebih lanjut tentang hal ini dapat ditemukan di situs web Python. Anda juga harus memiliki editor teks (seperti emacs, notepad atau yang serupa).
Apa itu Pemrograman?

Pemrograman komputer berarti memberikan satu set instruksi memberitahu apa yang harus dilakukan. Sebuah program komputer dalam banyak hal menyerupai resep, seperti yang kita gunakan untuk memasak. Misalnya [1]:

Fiesta SPAM Salad

bahan:

bumbu:
1/4 cangkir air jeruk nipis
1/4 cangkir rendah sodium kecap
Air 1/4 cangkir
Minyak sayur 1 sendok makan
3/4 sendok teh jinten
1/2 sendok teh oregano
1/4 sendok teh saus cabai
2 siung bawang putih, cincang

salad:
1 (12 ons) dapat SPAM Kurang Sodium makan siang daging,
     potong
1 bawang, iris
1 paprika, potong strip
selada
12 tomat ceri, dibelah dua

instruksi:

Dalam jar dengan ketat tutup, menggabungkan semua bahan rendaman;
kocok dengan baik. Tempatkan strip SPAM dalam kantong plastik. Tuang bumbu
lebih dari SPAM. Seal tas; mengasinkan 30 menit dalam lemari es.
Hapus SPAM dari tas; memesan 2 sendok makan bumbu. panas
milik bumbu dalam wajan besar. Tambahkan SPAM, bawang, dan
paprika hijau. Masak 3 sampai 4 menit atau sampai SPAM dipanaskan.
Jalur 4 individu salad piring dengan selada. Sendok salad panas
campuran lebih dari selada. Hiasi dengan bagian tomat. Untuk 4 porsi.

Tentu saja, tidak ada komputer akan memahami hal ini ... Dan kebanyakan komputer tidak akan mampu untuk membuat salad bahkan jika mereka tidak memahami resep. Jadi apa yang harus kita lakukan untuk membuat lebih ini komputer-ramah? Yah - pada dasarnya dua hal. Kita harus (1) berbicara dengan cara yang komputer dapat memahami, dan (2) berbicara tentang hal-hal yang ia bisa melakukan sesuatu dengan.

Poin pertama berarti bahwa kita harus menggunakan bahasa - bahasa pemrograman yang kita memiliki program penerjemah untuk, dan titik kedua berarti bahwa kita tidak bisa mengharapkan komputer untuk membuat salad - tapi kita dapat berharap untuk menambahkan nomor, menulis hal-hal ke layar dll
Hello ...

Ada tradisi di tutorial pemrograman untuk selalu mulai dengan sebuah program yang mencetak "Hello, world!" Ke layar. Dalam Python, ini cukup sederhana:

mencetak "Hello, world!"

Hal ini pada dasarnya seperti resep di atas (meskipun jauh lebih pendek!). Ini memberitahu komputer apa yang harus dilakukan: "Halo, dunia" Untuk mencetak. Sepotong kue. Bagaimana jika kita ingin untuk melakukan lebih banyak barang?

mencetak "Hello, world!"
mencetak "Selamat tinggal, dunia!"

Tidak jauh lebih sulit, bukan? Dan tidak benar-benar sangat menarik ... Kami ingin bisa melakukan sesuatu dengan bahan-bahan, seperti di salad spam. Nah - apa bahan yang kita miliki? Untuk satu hal, kita memiliki string teks, seperti "Hello, world!", Tapi kami juga memiliki angka. Katakanlah kita ingin komputer untuk menghitung luas persegi panjang bagi kita. Kemudian kita bisa memberikan resep kecil berikut:

# Luas Persegi Panjang

# Bahan:

width = 20
height = 30

# Instruksi:

luas = lebar * tinggi
area pencetakan

Anda mungkin dapat melihat kesamaan (meskipun sedikit) dengan resep spam yang salad. Tapi bagaimana cara kerjanya? Pertama-tama, baris yang dimulai dengan # disebut komentar dan benar-benar diabaikan oleh komputer. Namun, memasukkan penjelasan kecil seperti ini dapat menjadi penting dalam membuat program Anda lebih mudah dibaca bagi manusia.

Sekarang, garis yang terlihat seperti foo = bar disebut tugas. Dalam kasus width = 20 kita memberitahu komputer yang luasnya harus 20 dari titik ini. Apa artinya bahwa "lebarnya adalah 20"? Ini berarti bahwa variabel dengan nama "width" dibuat (atau jika sudah ada, itu kembali) dan diberi nilai 20. Jadi, ketika kita menggunakan variabel kemudian, komputer tahu nilainya. Dengan demikian,

lebar * tinggi

pada dasarnya sama dengan

20 * 30

yang dihitung menjadi 600, yang kemudian ditugaskan ke variabel dengan nama "daerah". Pernyataan terakhir dari program ini mencetak nilai dari variabel "daerah", jadi apa yang Anda lihat ketika Anda menjalankan program ini hanya

600

Catatan: Dalam beberapa bahasa, Anda harus memberitahu komputer yang variabel yang Anda butuhkan pada awal program (seperti bahan-bahan salad) - Python cukup pintar untuk mencari tahu ini saat berjalan bersama.
Umpan

OK. Sekarang Anda dapat melakukan sederhana, dan bahkan perhitungan cukup maju. Misalnya, Anda mungkin ingin membuat sebuah program untuk menghitung luas lingkaran bukannya persegi panjang:

radius = 30

cetak radius * radius * 3.14

Namun, hal ini tidak secara signifikan lebih menarik daripada program persegi panjang. Pada paling tidak menurut saya. Hal ini agak tidak fleksibel. Bagaimana jika lingkaran kami melihat memiliki radius 31? Bagaimana komputer tahu? Ini sedikit seperti bagian dari resep salad yang mengatakan: ". Masak 3 sampai 4 menit atau sampai SPAM dipanaskan" Untuk mengetahui ketika dimasak, kita harus memeriksa. Kami membutuhkan umpan balik, atau masukan. Bagaimana komputer tahu jari-jari lingkaran kami? Ini juga membutuhkan masukan ... Apa yang bisa kita lakukan adalah untuk menceritakannya untuk memeriksa jari-jari:

radius = input ("Apa jari-jari?")

cetak radius * radius * 3.14

Sekarang hal semakin manis ... masukan adalah sesuatu yang disebut fungsi. (Anda akan belajar untuk membuat sendiri dalam beberapa saat. Masukan adalah fungsi yang dibangun ke dalam bahasa Python.) Cukup menulis

masukan

tidak akan berbuat banyak ... Anda harus meletakkan sepasang parantheses pada akhir itu. Jadi input () akan bekerja - itu hanya akan menunggu pengguna untuk memasukkan jari-jari. Versi di atas adalah mungkin sedikit lebih user-friendly, meskipun, karena ia akan mencetak pertanyaan pertama. Ketika kita menempatkan sesuatu seperti pertanyaan-string "Apa jari-jari?" Antara kurung fungsi panggilan itu disebut melewati parameter ke fungsi. Hal (atau hal-hal) dalam kurung adalah (atau) parameter (s). Dalam hal ini kami melewati pertanyaan sebagai parameter sehingga masukan tahu apa yang harus mencetak sebelum mendapatkan jawaban dari pengguna.

Tapi bagaimana jawabannya sampai ke variabel radius? Fungsi input, saat dipanggil, mengembalikan nilai (seperti banyak fungsi lainnya). Anda tidak harus menggunakan nilai ini, tetapi dalam kasus kami, kami ingin. Jadi, dua pernyataan berikut memiliki arti yang berbeda:

foo = input

bar = input ()

foo sekarang berisi fungsi input itu sendiri (sehingga benar-benar dapat digunakan seperti foo ("Berapa usia Anda?"), ini disebut fungsi panggilan dinamis) sementara bar berisi apa pun yang diketik oleh pengguna.
arus

Sekarang kita dapat menulis program yang melakukan tindakan sederhana (aritmatika dan pencetakan) dan yang dapat menerima input dari user. Hal ini berguna, tapi kita masih terbatas pada yang disebut eksekusi berurutan dari perintah, yaitu - mereka harus dieksekusi dalam urutan yang tetap. Sebagian besar resep spam yang salad berurutan atau linear seperti itu. Tapi bagaimana jika kita ingin memberitahu komputer bagaimana untuk memeriksa spam dimasak? Jika dipanaskan, maka harus dihapus dari oven - jika tidak, itu harus dimasak selama satu menit atau lebih. Bagaimana kita menyatakan bahwa?

Apa yang ingin kita lakukan, adalah untuk mengontrol aliran program. Hal ini dapat pergi dalam dua arah - baik mengambil spam, atau meninggalkannya di oven. Kita bisa memilih, dan kondisi ini apakah atau tidak dipanaskan dengan benar. Ini disebut eksekusi kondisional. Kita bisa melakukannya seperti ini:

Suhu = input ("Apa suhu spam?")

jika suhu> 50:
     mencetak "Salad yang dimasak dengan benar."
lain:
     mencetak "Masak salad lagi."

Makna ini harus jelas: Jika suhu lebih tinggi dari 50 (centigrades), kemudian mencetak pesan yang mengatakan pengguna bahwa itu dimasak dengan benar, jika tidak, memberitahu pengguna untuk memasak salad lagi.

Catatan: lekukan ini penting dalam Python. Blok di eksekusi kondisional (dan loop dan fungsi definisi - lihat di bawah) harus menjorok (dan menjorok dengan jumlah yang sama spasi, sebuah jumlah tab sebagai 8 ruang) sehingga penafsir dapat mengatakan di mana mereka mulai dan akhir. Hal ini juga membuat program lebih mudah dibaca bagi manusia.

Mari kita kembali ke perhitungan daerah kami. Dapatkah Anda melihat apa program ini tidak?

# Program perhitungan Lokasi

mencetak "Selamat datang di program perhitungan Lokasi"
mencetak "---------------------------------------"
mencetak

# Mencetak menu:
mencetak "Silakan pilih bentuk:"
print "1 Rectangle"
mencetak "2 Circle"

# Dapatkan pilihan pengguna:
Bentuk = input (">")

# Hitung daerah:
jika bentuk == 1:
     height = input ("Masukkan ketinggian:")
     width = input ("Masukkan lebar:")
     daerah = tinggi * lebar
     print "Wilayah ini", daerah
lain:
     radius = input ("Masukkan jari-jari:")
     luas = 3.14 * (radius ** 2)
     print "Wilayah ini", daerah

Hal baru dalam contoh ini:

     cetak bekas semua oleh iself mencetak baris kosong
     == Cek apakah dua hal yang sama, sebagai lawan =, yang memberikan nilai di sisi kanan ke variabel di sebelah kiri. Ini merupakan perbedaan penting!
     ** Adalah operator listrik Python - sehingga jari-jari kuadrat adalah radius ** 2 tertulis.
     print dapat mencetak lebih dari satu hal. Hanya pisahkan dengan koma. (Mereka akan dipisahkan oleh spasi tunggal dalam output.)

Program ini cukup sederhana: Ini meminta nomor, yang mengatakan itu apakah pengguna ingin menghitung luas persegi panjang atau lingkaran. Kemudian, ia menggunakan sebuah-pernyataan if (eksekusi kondisional) untuk memutuskan mana blok itu harus digunakan untuk perhitungan daerah. Kedua blok pada dasarnya sama dengan yang digunakan pada contoh daerah sebelumnya. Perhatikan bagaimana komentar membuat kode lebih mudah dibaca. Telah dikatakan bahwa perintah pertama dari pemrograman adalah: "! Janganlah engkau komentar" Pokoknya - itu kebiasaan yang bagus untuk mendapatkan.
latihan 1

Memperluas program di atas untuk menyertakan perhitungan area pada kotak, di mana pengguna hanya harus memasukkan panjang satu sisi. Ada satu hal yang perlu Anda ketahui untuk melakukan hal ini: Jika Anda memiliki lebih dari dua pilihan, Anda dapat menulis sesuatu seperti:

jika foo == 1:
     # Lakukan sesuatu ...
Elif foo == 2:
     # Lakukan sesuatu yang lain ...
Elif foo == 3:
     # Lakukan sesuatu yang sama sekali berbeda ...
lain:
     # Jika semuanya gagal ...

Berikut Elif adalah kode misterius yang berarti "else if" :). jadi; jika foo adalah salah satu, kemudian melakukan sesuatu; sebaliknya, jika foo adalah dua, kemudian melakukan sesuatu yang lain, dll Anda mungkin ingin menambahkan pilihan lain untuk program juga - seperti segitiga atau poligon sewenang-wenang. Terserah Anda.
loops

Eksekusi sekuensial dan conditional hanya dua dari tiga blok bangunan dasar pemrograman. Yang ketiga adalah loop. Pada bagian sebelumnya saya mengusulkan solusi untuk memeriksa apakah spam dipanaskan, tapi itu cukup jelas tidak memadai. Bagaimana jika spam tidak selesai waktu berikutnya kami memeriksa baik? Bagaimana kita bisa tahu berapa kali kita perlu memeriksa itu? Yang benar adalah, kita tidak bisa. Dan kita seharusnya tidak perlu. Kita harus dapat meminta komputer untuk tetap memeriksa sampai hal itu dilakukan. Bagaimana kita melakukannya? Anda dapat menebaknya - kami menggunakan loop, atau eksekusi diulang.

Python memiliki dua jenis lingkaran: sementara-loop dan untuk-loop. Untuk-loop mungkin yang paling sederhana. Misalnya:

untuk makanan di "spam", "telur", "Tomat":
     print "Aku cinta", makanan

Artinya: Untuk setiap elemen dalam daftar "spam", "telur", "tomat", cetak yang Anda menyukainya. Blok dalam loop dijalankan sekali untuk setiap elemen, dan setiap kali, elemen saat ditugaskan untuk makanan variabel (dalam hal ini). Contoh lain:

untuk nomor dalam kisaran (1.100):
     mencetak "Hello, world!"
     print "Hanya", 100 - angka, "lebih untuk pergi ..."

print "Halo, dunia"
mencetak "Itu adalah yang terakhir ... Phew!"

Kisaran mengembalikan fungsi daftar nomor dalam kisaran tertentu (termasuk yang pertama, termasuk yang terakhir ... Dalam hal ini, [1..99]). Jadi, untuk parafrase ini:

     Isi loop dijalankan untuk setiap nomor dalam kisaran angka dari (dan termasuk) 1 sampai dengan (dan termasuk) 100. (Apa badan loop dan pernyataan berikut benar-benar melakukan yang tersisa sebagai latihan.)

Tapi ini tidak benar-benar membantu kami dengan masalah kami memasak. Jika kita ingin memeriksa spam seratus kali, maka akan cukup solusi yang bagus; tapi kita tidak tahu apakah itu sudah cukup - atau jika itu terlalu banyak. Kami hanya ingin tetap memeriksa sementara itu tidak cukup panas (atau, sampai cukup panas - soal point-of-view). Jadi, kita gunakan saat:

# Program Spam-​​memasak

# Ambil fungsi * tidur *
dari waktu impor tidur

mencetak "Silakan mulai memasak spam. (Aku akan kembali dalam waktu 3 menit.)"

# Tunggu 3 menit (yaitu, 3 * 60 detik) ...
tidur (180)

print "Aku baaack :)"

# Bagaimana panas cukup panas?
hot_enough = 50

Suhu = input ("Bagaimana panas spam?")
sedangkan suhu <hot_enough:
     print "Tidak cukup panas ... Masak sedikit lebih ..."
     tidur (30)
     Suhu = input ("OK. Bagaimana panas sekarang?")

print "Ini cukup panas - Anda selesai!"

Hal baru dalam contoh ini ...

     Beberapa fungsi yang berguna disimpan dalam modul dan dapat diimpor. Dalam hal ini kita mengimpor fungsi tidur (yang tidur untuk sejumlah tertentu dari detik) dari waktu modul yang datang dengan Python. (Hal ini dimungkinkan untuk membuat modul Anda sendiri juga ...)

latihan 2

Menulis sebuah program yang terus membaca dalam jumlah dari pengguna dan menambahkan mereka bersama-sama sampai jumlahnya mencapai 100. Menulis program lain yang membaca 100 nomor dari pengguna dan mencetak jumlahnya.
Program Bigger - Abstraksi

Jika Anda ingin gambaran dari isi buku, Anda tidak membajak melalui semua halaman - Anda melihat pada daftar isi, kan? Ini hanya berisi topik utama buku ini. Sekarang - bayangkan menulis sebuah buku masak. Banyak resep, seperti "Creamy Spam dan Macaroni" dan "Spam Swiss Pie" mungkin berisi hal-hal serupa, seperti spam, dalam hal ini - namun Anda tidak akan ingin mengulang bagaimana membuat spam dalam setiap resep. (OK ... Jadi Anda tidak benar-benar membuat spam ... Tapi beruang dengan saya untuk kepentingan contoh :)). Anda akan menaruh resep untuk spam dalam bab tersendiri, dan hanya merujuk ke dalam resep lainnya. Jadi - alih-alih menulis seluruh resep setiap kali, Anda hanya harus menggunakan nama bab. Dalam pemrograman komputer ini disebut abstraksi.

Apakah kita mengalami sesuatu seperti yang sudah ini? Yup. Alih-alih memberitahu komputer bagaimana untuk mendapatkan jawaban dari pengguna (OK - sehingga kita bisa benar-benar melakukan hal ini ... Tapi kita tidak bisa benar-benar membuat spam yang baik, jadi ada ... :)) kita hanya digunakan masukan - fungsi. Kami benar-benar dapat membuat fungsi kita sendiri, untuk menggunakan untuk jenis abstraksi.

Katakanlah kita ingin mencari bilangan bulat terbesar yang kurang dari angka positif yang diberikan. Misalnya, diberi nomor 2.7, ini akan menjadi 2. Hal ini sering disebut "lantai" dari angka yang diberikan. (Ini bisa benar-benar dilakukan dengan built-in Python fungsi int, tapi sekali lagi, beruang dengan saya ...) Bagaimana kita melakukan ini? Sebuah solusi sederhana akan mencoba segala kemungkinan dari nol:

jumlah = input ("Berapa nomor itu?")

lantai = 0
sementara lantai <= nomor:
     lantai = lantai + 1
lantai = lantai-1

print "Lantai", nomor, "adalah", lantai

Perhatikan bahwa loop berakhir ketika lantai tidak lagi kurang dari (atau sama dengan) nomor; kita menambahkan satu terlalu banyak untuk itu. Oleh karena itu kita harus mengurangi satu setelah itu. Bagaimana jika kita ingin menggunakan "lantai" ini -thing dalam ekspresi matematika yang rumit? Kami harus menulis seluruh loop untuk setiap nomor yang diperlukan "lantai" -ing. Tidak sangat bagus ... Anda mungkin menduga apa yang akan kita lakukan sebagai gantinya: Taruh semua dalam fungsi, yang disebut "lantai" kita sendiri:

Lantai def (nomor):
     Hasil = 0
     sedangkan hasil <= nomor:
         Hasil = Hasil + 1
     Hasil =-hasil 1
     hasil pengembalian

Hal baru dalam contoh ini ...

     Fungsi didefinisikan dengan def kata kunci, diikuti dengan nama mereka dan parameter yang diharapkan dalam tanda kurung.
     Jika fungsi ini adalah untuk mengembalikan nilai, hal ini dilakukan dengan kembalinya kata kunci (yang juga secara otomatis berakhir fungsi.

Sekarang kita telah menetapkan itu, kita dapat menggunakannya seperti ini:

x = 2,7
y = lantai (2,7)

Setelah ini, y harus memiliki nilai 2. Hal ini juga memungkinkan untuk membuat fungsi dengan lebih dari satu parameter:

def sum (x, y):
     kembali x + y

latihan 3

Menulis fungsi yang mengimplementasikan metode Euclid untuk menemukan faktor umum dari dua angka. Cara kerjanya seperti ini:

     Anda memiliki dua nomor, a dan b, di mana lebih besar dari b
     Anda mengulangi berikut sampai b menjadi nol:
     a diubah menjadi nilai b
     b diubah ke sisanya ketika (sebelum perubahan) dibagi dengan b (sebelum perubahan)
     Anda kemudian mengembalikan nilai terakhir dari

petunjuk:

     Gunakan a dan b sebagai parameter ke fungsi
     Hanya mengasumsikan bahwa lebih besar dari b
     Sisa ketika x dibagi dengan z dihitung dengan ekspresi x% z
     Dua variabel dapat ditugaskan untuk secara bersamaan seperti ini: x, y = y, y + 1. Di sini x diberi nilai y (yaitu, nilai y sebelumnya tugas) dan y bertambah satu

Lebih Tentang Fungsi

Bagaimana latihan pergi? Apakah sulit? Masih agak bingung tentang fungsi? Jangan khawatir - saya tidak meninggalkan topik belum cukup.

Jenis abstraksi kami telah menggunakan ketika membangun fungsi ini sering disebut abstraksi prosedural, dan banyak bahasa menggunakan prosedur kata bersama dengan fungsi kata. Sebenarnya, dua konsep yang berbeda, tetapi keduanya disebut fungsi dalam Python (karena mereka didefinisikan dan digunakan dengan cara yang sama, lebih atau kurang.)

Apa perbedaan (dalam bahasa lain) antara fungsi dan prosedur? Yah - seperti yang Anda lihat di bagian sebelumnya, fungsi dapat mengembalikan nilai. Perbedaannya terletak pada bahwa prosedur tidak mengembalikan nilai seperti itu. Dalam banyak hal, cara ini membagi fungsi menjadi dua jenis - mereka yang melakukan dan mereka yang tidak mengembalikan nilai - bisa sangat berguna.

Sebuah fungsi yang tidak mengembalikan nilai ("prosedur") digunakan sebagai "sub-program yang" atau subroutine. Kami memanggil fungsi, dan program akan melakukan beberapa hal, seperti membuat whipped cream atau apa pun. Kita dapat menggunakan fungsi ini di banyak tempat tanpa menulis ulang kode. (Ini disebut penggunaan kembali kode - lebih pada nanti.)

Kegunaan fungsi tersebut (atau prosedur) terletak pada efek samping - perubahan lingkungannya (dengan mencampur Suger dan krim dan mencambuk itu, misalnya ...) Mari kita lihat sebuah contoh:

def hello (yang):
     mencetak "Halo,", yang

halo ("dunia")
# Mencetak out "Halo, dunia"

Mencetak barang dianggap sebagai efek samping, dan karena itu semua fungsi ini tidak, itu cukup khas untuk disebut prosedur. Tapi ... Itu tidak benar-benar mengubah lingkungannya bukan? Bagaimana bisa melakukan itu? Mari kita coba:

# The * salah * cara melakukannya
usia = 0

def setAge (a):
     usia = a

setAge (100)
usia cetak
# Cetakan "0"

Apa yang salah di sini? Masalahnya adalah bahwa fungsi setAge menciptakan itu variabel lokal sendiri, juga bernama usia yang hanya terlihat dalam setAge. Bagaimana kita bisa menghindari itu? Kita dapat menggunakan sesuatu yang disebut variabel global.

Catatan: Variabel global tidak banyak digunakan di Python. Mereka mudah menyebabkan struktur yang buruk, atau apa yang disebut kode spageti. Saya menggunakannya di sini untuk mengarah ke teknik yang lebih kompleks - silakan menghindari mereka jika Anda bisa.

Dengan mengatakan penafsir bahwa suatu variabel global (dilakukan dengan pernyataan seperti usia global) kita secara efektif kirim ke menggunakan variabel di luar fungsi bukannya menciptakan satu lokal baru. (Jadi, itu adalah dunia yang bertentangan dengan lokal.) Program ini kemudian dapat ditulis ulang seperti ini:

# The benar, tetapi tidak begitu baik cara melakukannya
usia = 0

def setAge (a):
     era global
     usia = a

setAge (100)
usia cetak
# Cetakan "100"

Ketika Anda belajar tentang obyek (di bawah), Anda akan melihat bahwa cara yang lebih tepat untuk melakukan hal ini akan menggunakan objek dengan properti usia dan metode setAge. Pada bagian struktur data, Anda juga akan melihat beberapa contoh yang lebih baik dari fungsi yang mengubah lingkungan mereka.

Nah - apa tentang fungsi nyata, maka? Apa fungsi, benar-benar? Fungsi matematika seperti semacam "mesin" yang mendapat beberapa masukan dan menghitung hasilnya. Ini akan mengembalikan hasil yang sama setiap kali, ketika disajikan dengan input yang sama. Misalnya:

def persegi (x):
     kembali x * x

Ini adalah sama dengan fungsi f matematika (x) = x2. Ini berperilaku seperti fungsi bagus, dalam hal ini hanya bergantung pada input, dan tidak mengubah lingkungannya dengan cara apapun.

Jadi - saya telah diuraikan dua cara pembuatan fungsi: Salah satu jenis lebih seperti prosedur, dan tidak kembali hasilnya; yang lain adalah lebih seperti fungsi matematika dan tidak melakukan apa-apa tapi kembali hasil (hampir). Tentu saja, adalah mungkin untuk melakukan sesuatu di antara dua ekstrem, meskipun ketika fungsi mengubah banyak hal, itu harus jelas bahwa hal itu. Anda bisa sinyal ini melalui namanya, misalnya dengan hanya menggunakan kata benda untuk "murni" fungsi seperti persegi dan penting bagi fungsi prosedur seperti seperti setAge.
Lebih Bahan - struktur data

Yah - Anda tahu sudah banyak: Cara mendapatkan masukan dan memberikan output, bagaimana struktur algoritma yang rumit (program) dan melakukan aritmatika; namun yang terbaik masih akan datang.

Bahan apa yang telah kita gunakan dalam program kita sampai sekarang? Angka dan string. Benar? Agak membosankan ... ada mari kita memperkenalkan beberapa bahan lain untuk membuat hal-hal sedikit lebih menarik.

Struktur data adalah bahan yang struktur data. (Kejutan, kejutan ...) Sebuah nomor tunggal tidak benar-benar memiliki banyak struktur, apakah itu? Tapi katakanlah kita ingin lebih nomor disatukan untuk bahan tunggal - yang akan memiliki beberapa struktur. Sebagai contoh, kita mungkin ingin daftar nomor. Itu mudah:

[3,6,78,93]

Saya sebutkan daftar pada bagian loop, tetapi tidak benar-benar mengatakan banyak tentang mereka. Nah - ini adalah bagaimana Anda membuat mereka. Hanya daftar unsur-unsur, dipisahkan dengan koma dan diapit kurung.

Mari kita melompat ke contoh yang menghitung bilangan prima (bilangan dibagi hanya oleh diri sendiri atau 1):

# Hitung semua bilangan prima di bawah 1000
# (Bukan cara terbaik untuk melakukannya, tapi ...)

Hasil = [1]
kandidat = range (3,1000)
dasar = 2
produk = dasar

sementara kandidat:
     sementara produk <1000:
         jika produk dalam kandidat:
             candidates.remove (produk)
         produk = produk + dasar
     result.append (dasar)
     dasar = calon [0]
     produk = dasar
     del calon [0]

result.append (dasar)
hasil cetak

Hal baru dalam contoh ini ...

     Kisaran fungsi built-in benar-benar mengembalikan daftar yang dapat digunakan seperti semua daftar lainnya. (Ini termasuk indeks pertama, tetapi bukan yang terakhir.)
     Sebuah daftar dapat digunakan sebagai variabel logika. Jika tidak kosong, maka itu benar - jika kosong, maka itu adalah palsu. Jadi, sementara calon berarti "sementara daftar nama calon tidak kosong" atau hanya "sementara masih ada calon".
     Anda dapat menulis jika someElement di someList untuk memeriksa apakah suatu unsur adalah dalam daftar.
     Anda dapat menulis someList.remove (someElement) untuk menghapus someElement dari someList.
     Anda dapat menambahkan sebuah element ke daftar dengan menggunakan someList.append (sesuatu). Sebenarnya, Anda dapat menggunakan + juga (seperti dalam someList = someList + [sesuatu]) tapi itu tidak efisien.
     Anda bisa mendapatkan pada elemen dari daftar dengan memberikan posisinya sebagai nomor (di mana elemen pertama, anehnya, adalah elemen 0) dalam tanda kurung setelah nama daftar. Jadi someList [3] adalah elemen keempat dari daftar someList. (Lebih lanjut tentang ini di bawah ini.)
     Anda dapat menghapus variabel dengan menggunakan kata kunci del. Hal ini juga dapat digunakan (seperti di sini) untuk menghapus elemen dari daftar. Jadi del someList [0] menghapus elemen pertama dari someList. Jika daftar itu [1,2,3] sebelum penghapusan, itu akan menjadi [2,3] sesudahnya.

Sebelum pergi ke menjelaskan misteri elemen daftar pengindeksan, saya akan memberikan penjelasan singkat tentang contoh.

Ini adalah versi dari algoritma kuno yang disebut "The Saringan Erastothenes" (atau sesuatu yang dekat dengan itu). Ini mempertimbangkan satu set (atau dalam hal ini, daftar) nomor kandidat, dan kemudian secara sistematis menghapus nomor yang dikenal tidak menjadi bilangan prima. Bagaimana kita tahu? Karena mereka adalah produk dari dua angka lainnya.

Kita mulai dengan daftar calon yang berisi nomor [2..999] - kita tahu bahwa 1 adalah prima (sebenarnya, hal itu mungkin atau mungkin tidak, tergantung pada siapa Anda bertanya), dan kami ingin semua bilangan prima di bawah 1000. (Sebenarnya , daftar calon adalah [3..999], tapi 2 juga kandidat, karena base pertama kami). Kami juga memiliki daftar yang disebut hasil yang setiap saat berisi hasil diperbarui sejauh ini. Untuk mulai dengan, daftar ini hanya memiliki satu nomor 1. Kami juga memiliki variabel yang disebut basis. Untuk setiap iterasi ("bulat") dari algoritma, kita menghapus semua nomor yang beberapa multible nomor dasar ini (yang selalu terkecil dari kandidat). Setelah setiap iterasi, kita tahu bahwa jumlah terkecil kiri adalah perdana (karena semua nomor yang produk yang lebih kecil akan dihapus - mendapatkannya?). Oleh karena itu, kita tambahkan ke hasil, mengatur basis baru ke nomor ini, dan menghapusnya dari daftar kandidat (jadi kita tidak akan memproses lagi.) Saat daftar calon kosong, daftar hasil akan berisi semua bilangan prima . Pintar, ya?

Hal yang perlu dipikirkan: Apa yang khusus dengan iterasi pertama? Berikut dasar adalah 2, namun itu juga akan dihapus dalam "pemisahan"? Mengapa? Mengapa tidak yang terjadi pada basis lain? Bisakah kita pastikan bahwa produk selalu dalam daftar calon ketika kita ingin menghapusnya? Mengapa?

Sekarang - apa selanjutnya? Ah, ya ... Indexing. Dan mengiris. Ini adalah cara untuk mendapatkan unsur-unsur individual dari daftar Python. Anda telah melihat pengindeksan biasa dalam tindakan. Hal ini cukup sederhana. Sebenarnya, saya telah mengatakan kepada Anda semua yang perlu Anda ketahui tentang hal itu, kecuali untuk satu hal: indeks negatif dihitung dari akhir daftar. Jadi, someList [-1] adalah elemen terakhir dari someList, someList [-2] adalah elemen sebelum itu, dan sebagainya.

Mengiris, bagaimanapun, harus baru bagi Anda. Hal ini mirip dengan pengindeksan, kecuali dengan mengiris Anda dapat menargetkan irisan seluruh daftar, dan bukan hanya satu elemen. Bagaimana itu dilakukan? Seperti ini:

makanan = ["spam", "spam", "telur", "sosis", "spam"]

cetak food [2: 4]
# Cetakan "['telur', 'sosis']"

Lebih Abstraksi - Objek dan Pemrograman Berorientasi Objek

Sekarang ada buzz-kata jika pernah ada satu: ". Pemrograman berorientasi objek"

Sebagai judul bagian menunjukkan, pemrograman berorientasi objek adalah cara lain abstrak rincian jauhnya. Prosedur abstrak laporan sederhana menjadi operasi yang lebih kompleks dengan memberi mereka nama. Dalam OOP, kita tidak hanya memperlakukan operasi cara ini, tapi benda-benda. (Sekarang, yang harus menjadi kejutan besar, ya?) Sebagai contoh, jika kita membuat spam memasak-program, alih-alih menulis banyak prosedur yang berurusan dengan suhu, waktu, bahan dll, kami bisa bersabar bersama-sama ke spam-​​objek. Atau, mungkin kita bisa memiliki oven-objek dan jam-objek terlalu ... Sekarang, hal-hal seperti suhu hanya akan atribut spam-​​objek, sementara waktu bisa dibaca dari jam-objek. Dan untuk membuat program kami melakukan sesuatu, kita bisa mengajarkan objek kita beberapa metode; misalnya, oven mungkin tahu bagaimana memasak spam dll

Jadi - bagaimana kita melakukan ini dengan Python? Yah kita tidak bisa hanya membuat obyek langsung. Alih-alih hanya membuat oven, kita membuat resep yang menjelaskan bagaimana oven adalah. Resep ini kemudian menggambarkan kelas objek yang kita sebut oven. Kelas oven sangat sederhana mungkin:

kelas Oven:
     def insertSpam (self, spam):
         self.spam = spam yang

     def getSpam (self):
         kembali self.spam

Sekarang, apakah ini terlihat aneh, atau apa?

Hal baru dalam contoh ini ...

     Kelas objek didefinisikan dengan kata kunci class.
     Nama kelas biasanya mulai dengan huruf kapital, sedangkan fungsi dan variabel (serta metode dan atribut) mulai dengan huruf kecil.
     Metode (yaitu fungsi atau operasi yang objek tahu bagaimana melakukan) didefinisikan dengan cara biasa, tapi di dalam blok kelas.
     Semua metode objek harus memiliki parameter pertama disebut self (atau yang serupa ...) Alasannya akan (mudah-mudahan) menjadi jelas dalam sekejap.
     Atribut dan metode dari sebuah objek diakses seperti ini: mySpam.temperature = 2, atau dilbert.be_nice ().

Saya akan menebak bahwa beberapa hal yang masih agak tidak jelas tentang contoh. Misalnya, apa hal diri ini? Dan, sekarang kita memiliki resep objek (yaitu kelas), bagaimana kita benar-benar membuat sebuah objek?

Mari kita mengatasi titik terakhir pertama. Sebuah objek dibuat dengan memanggil classname seolah-olah itu adalah fungsi:

myOven = Oven ()

myOven sekarang berisi objek Oven, biasanya disebut instance dari Oven kelas. Mari kita asumsikan bahwa kita telah membuat Spam kelas juga; maka kita bisa melakukan sesuatu seperti:

mySpam = Spam ()
myOven.insertSpam (mySpam)

myOven.spam sekarang akan berisi mySpam. Bagaimana bisa? Karena, ketika kita sebut salah satu metode dari objek, parameter pertama, biasanya disebut mandiri, selalu mengandung obyek itu sendiri. (Pintar, ya?) Jadi, garis self.spam = spam yang menetapkan spam atribut dari objek Oven saat ini dengan nilai spam parameter. Perhatikan bahwa ini adalah dua hal yang berbeda, meskipun keduanya disebut spam dalam contoh ini.
Jawaban Latihan 3

Berikut ini adalah versi sangat ringkas dari algoritma:

def Euclid (a, b):
     sementara b

a, b = b, a% b
     mengembalikan

Referensi

[1] Resep untuk Salad Fiesta Spam diambil dari Hormel Foods Digital Buku Resep

Creative Commons License
Instant Hacking oleh Magnus Lie Hetland dilisensikan Creative Commons Attribution 3.0 Unported License.
Permissions luar lingkup lisensi ini mungkin tersedia di http: //hetland.or