Monday, 12 July 2010

Python - Bài 1: Làm quen với Python (Print,For)

Bài viết này là bản rút gọn từ bài viết trong Full Circle Magazine số 27.
NOTE:
Nội dung đoạn mã (code) sẽ bắt đầu sau [code] kết thúc trước [/code]
nội dung đoạn lệnh trong terminal bắt đầu sau [cmd] kết thúc trước [/cmd]

1. Làm quen với Python. Lệnh Print

Ví dụ:
Mở gedit ra (Accessories > Gedit)

Gõ vào đoạn code sau:
[code]
#!/usr/bin/env python
print 'Xin chao thanh vien cua FAMILUG'
name=raw_input("Ban ten la gi? ")
print "Chao, " +name+ " hoc dot!"
[/code]

sau đó save vào Famihug(hoặc tên User khác)/Pythoneg/
với tên hello.py

Sau đó mở Terminal (bấm Ctrl Alt T)

[cmd]
cd Pythoneg

chmod +x hello.py ## đoạn này mình config cho file hello.py có thể chạy được
./hello.py
[/cmd]
Sẽ thấy trong terminal hiện ra:
[cmd]
hvn@hvn-desktop:~/Pythoneg$ chmod +x hello.py
hvn@hvn-desktop:~/Pythoneg$ ./hello.py
Xin chao thanh vien cua FAMILUG
Ban ten la gi? FamiHug
Chao, FamiHug hoc dot!
hvn@hvn-desktop:~/Pythoneg$
[/cmd]

Giải thích đoạn code:
#!/usr/bin/env python
thông báo với hệ thống rằng đây là 1 chương trình python, sử dụng trình biên dịch mặc định để chạy chương trình.
print 'Xin chao thanh vien cua FAMILUG'
làm hiện ra màn string "Xin chao thanh vien cua FAMILUG", chú ý ở đây sử dụng dấu nháy đơn.
name=raw_input("Ban ten la gi? ")
raw_input(....) làm hiện lên trên terminal "Ban ten la gi?" và sau đó đợi user gõ vào một đoạn ký tự kết thúc bằng phím Enter.
name là biến chứa đoạn ký tự mà bạn vừa nhập.
print "Chao, " +name+ " hoc dot!"
hiện lên terminal "Chao, - nội dung biến name - hoc dot!"

còn gì thắc mắc không???

NOTE: Lệnh Print mặc định sau khi in xong sẽ xuống dòng.
Để không xuống dòng ta thêm dấu phẩy sau lệnh Print

VD:
print "Yoyo",
print "Love"

được kết quả
Yoyo Love

2. Vòng lặp For đơn giản.

Mở gedit. Gõ đoạn code
[code]
#!/usr/bin/env python
for hehe in range(5,10):
print hehe
[/code]
Cấu trúc lệnh:
[code]
for TÊNBIẾN in range(int1,int2):
lệnh.....
[/code]
NOTE: sau range() phải có dấu ":"
nội dung trong vòng lặp không đặt trong dấu () hay {} như các ngôn ngữ khác mà được phân biệt bằng cách dùng dấu tab đẩy dòng lệnh vào trong hoặc sử dụng 4 dấu "space".
range(int1,int2) - bắt đầu đếm từ giá trị 0 , sau mỗi vòng lặp, cộng thêm 1 vào, đến khi gặp gía trị int1 thì gán int1 cho biến, kết thúc khi lặp đủ int2 lần. (theo tớ hiểu là như thế)
Như trong ví dụ sẽ có kết quả là
[cmd]
hvn@hvn-desktop:~/Pythoneg$ ./loop.py
5
6
7
8
9
[/cmd]


Ở đây đếm từ 0 đến khi đạt gía trị bằng 5 [đã đếm 6 lần: 0,1,2,3,4,5] thì gán 5 cho biến hehe, sau đó print ra giá trị của hehe (tức là 5). Rồi lặp, cộng 1 vào gía trị hehe -> 6, lại print ra. Cứ tiếp tục như thế khi đếm đủ 10 lần (0,1,2,3,4,5,6,7,8,9) thì dừng lại.


Nếu có gì thắc mắc thì Comment nhé.
Mỗi người hãy gửi lên 1 bài tập nâng cao 1 chút cho phần này.


Sau đây là 1 bài tập nhỏ:
Bài tóan tính tổng 2 số tự nhiên
[code]
#!/usr/bin/env python
print 'Chuong trinh tinh tong 2 so tu nhien'
print 'Written by FAMIHUG'
m1 = raw_input("Nhap so thu nhat :")
print "So thu nhat la: " +m1+"."

m2 = raw_input("Nhap so thu hai :")
print "So thu hai la: "+m2+"."

print "Tong hai so la:"
print int(m1)+int(m2)
[/code]

câu hỏi: làm thée nào để tổng của hai số không bị xuống dòng? so với đoạn chữ "Tong hai so la: "


Tham khảo thêm trong Full circle magazine số 27.
Goodluck! học nhanh còn sang bài 2.


Updated!
06-08-2010: Print in the same line: print ra cùng dòng