<![CDATA[Latest posts for the topic "mong dk giúp đỡ về việc học python"]]> /hvaonline/posts/list/21.html JForum - http://www.jforum.net mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222433 /hvaonline/posts/list/36205.html#222433 GMT mong dk giúp đỡ về việc học python http://www.python.org/. Còn tài liệu thì có "Python Tut" đã được nhóm Vithon biên dịch một phần tại http://www.vithon.org/tutorial/2.5/tut.html. Tài liệu nguyên gốc có tại python.org. Khi cài đặt Python 2.7 sẽ có trình IDLE cho phép bạn code và thông dịch, nói chung bước đầu thế cũng là tạm ổn để học. Ngoài ra còn có WingIDE 101, là phiên bản IDE miến phí khá tốt, tớ chưa dùng cái này mà vẫn đang dùng IDLE. Còn link download Wing IDE 101 thì có thể search trên google ra ngay. Python hiện tại có thể làm các chương trinh bình thường, rất nhiều chương trình trên linux được viết bằng Python hoặc 1 phần bằng Python mà điển hình nhất theo tớ biết là chương trình chỉnh sửa ảnh Gimp, các chương trình trên windows viết bằng Python hình như hơi ít hoặc là do tớ không biết. Python có thể viết được ứng dụng di động, cái này là thằng bạn có điện thoại Nokia nó chỉ cho xem là có Python và cho phép lập trình trực tiếp trên di động. Tớ chưa thử nên không lạm bàn nhiều. Python có thể viết được ứng dụng Web. Tuy nhiên do tài liệu về mảng này cũng khá ít và 100% tiếng Anh nên sẽ phải vật vã rất là nhiều. Tớ là một điển hình. Ngoài ra thì cũng đừng có quan tâm đến Python 3.x vội tốt nhất cứ luyện 2.x cho tốt đi đã Bổ sung là một cuốn sách khá hay mà tớ đang dùng học Python là How to Think Like a Computer Scientist: Learning with Python 2nd Edition by Jeffrey Elkner et al. Đây là sách dạng miễn phí có thể xem tại http://www.openbookproject.net/books/ =========================================================================== Nhân thể anh em nào có tài liệu chi tiết và đúng đắn nhất về cách cấu hình mod_wsgi và apache để chạy python cho em xin được không. Tài liệu từ anh google hầm bà lằng mỗi nơi một kiểu làm em thử muốn hụt hơi. ]]> /hvaonline/posts/list/36205.html#222449 /hvaonline/posts/list/36205.html#222449 GMT mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222472 /hvaonline/posts/list/36205.html#222472 GMT mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222482 /hvaonline/posts/list/36205.html#222482 GMT mong dk giúp đỡ về việc học python

gamma95 wrote:
Muốn học python thì dễ thôi, nhưng muốn quên python thì rất khó =] 
Ha ha, câu này hay hơn nếu bạn gamma95 làm rõ tại sao lại khó quên (trên quan điểm cá nhân của bạn).]]>
/hvaonline/posts/list/36205.html#222487 /hvaonline/posts/list/36205.html#222487 GMT
mong dk giúp đỡ về việc học python Code:
f = open ('ketqua.txt', 'w')
print  f
f.write ('Hello World\n')
f.close()
Rất sạch sẽ và khó quên đúng không nào :))]]>
/hvaonline/posts/list/36205.html#222494 /hvaonline/posts/list/36205.html#222494 GMT
mong dk giúp đỡ về việc học python f = open ('ketqua.txt', 'w') print f f.write ('Hello World\n') f.close()  @oak: bạn mở file để ghi nên ko hiểu có dòng print f để làm gì ??? ;-) ]]> /hvaonline/posts/list/36205.html#222497 /hvaonline/posts/list/36205.html#222497 GMT mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222499 /hvaonline/posts/list/36205.html#222499 GMT mong dk giúp đỡ về việc học python

oak wrote:
Chính là để kiểm tra file có mở thành công hay không đó anh.  
Kiểm tra file mở thành công không mà làm kiểu đó thì "tèo" rồi.]]>
/hvaonline/posts/list/36205.html#222505 /hvaonline/posts/list/36205.html#222505 GMT
mong dk giúp đỡ về việc học python

zerozeroone wrote:
Kiểm tra file mở thành công không mà làm kiểu đó thì "tèo" rồi. 
Ồ, vậy bạn có thể chỉ mình cách để kiểm tra file mở thành công hay không mà không bị "tèo" được không. À dĩ nhiên là trên Python. ============================================================================== Do bạn zerozeroone mãi không trả lời nên tớ quyết định trình bày rõ lý do tại sao lại dùng print f cho việc kiểm tra mở file trong Python. Và âu cũng là để chờ đợi câu trả lời xác đáng cho việc tại sao dùng cách trên "tèo" và cách nào để hết bị "tèo". Trong Python giống với nhiều ngôn ngữ bậc cao và "siêu cao"(do trong một số tài liệu về Python có vài tác giả gọi đây là super high-level language) là biến không cần phải khai báo khi dùng. Hay nói đúng hơn là biến được khai báo cùng lúc với việc gán giá trị. Do vậy nếu print f khơi khơi không qua gán bạn sẽ nhận được thông báo Code:
Traceback (most recent call last):
  File "C:/Users/ADMIN/Desktop/demo.py", line 1, in <module>
    print f
NameError: name 'f' is not defined
Khi gán: Code:
f = open('ketqua.txt', 'w')
Lúc này f sẽ được gán bằng một chuỗi ký tự, là câu lệnh được gửi tới trình thông dịch để mở file và chế độ mở file đó tương ứng với lênh open() khi lệnh này được thực hiện thành công. Do vậy, lệnh print f sẽ in cái chuỗi này ra và ta có kết quả khi lệnh open() thực thi bình thường: Code:
<open file 'ketqua.txt', mode 'w' at 0x012D9A88>
Nếu lệnh open() không thể thực hiện thì khi thực hiện print f sẽ có thông báo tình trạng, ví dụ như thế này: Code:
Traceback (most recent call last):
  File "C:/Users/ADMIN/Desktop/demo.py", line 1, in <module>
    f = open('ketqua.txt', 'w')
IOError: [Errno 13] Permission denied: 'ketqua.txt'
Đây là do file đã tồn tại nhưng tớ để chế độ Read Only nên trình thông dịch không thể thao tác với file và báo kết quả. Vì vậy theo tớ đây là cách kiểm tra file đã mở thành công hay không đơn giản và ngắn gọn nhất trong Python cho các bài học thao tác với file của ngôn ngữ này. Tuy nhiên zerozeroone lại nói cách này là "tèo", tức là tớ hiểu là cách này có thể gây hại hoặc tạo ra một số trường hợp không dự đoán được trước. Nên tớ phải giải thích rõ lý do tại sao dùng và chờ cách làm không "tèo" của zerozeroone.]]>
/hvaonline/posts/list/36205.html#222508 /hvaonline/posts/list/36205.html#222508 GMT
mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222548 /hvaonline/posts/list/36205.html#222548 GMT mong dk giúp đỡ về việc học python bảo mật, thì dù cho print f có thành công hay không nó cũng "để lộ" ra 1 số thông tin, chẳng hạn như tên file/đường dẫn tới file. Trong 1 số trường hợp, cái này là không chấp nhận được. 2. print nếu fail xong rồi thì câu lệnh f.write nó có chạy không? Tôi nghĩ rằng câu lệnh f.write cũng sẽ chạy --> do vậy tác dụng "kiểm tra" của print f ở đây là gì khi f.write cũng có tác dụng tương tự? 3. Về mặt lập trình, đó không phải là 1 phép "kiểm tra". Kiểm tra thì nó phải tương tự như thế này chứ: Code:
f = open ('ketqua.txt', 'w')
if ( defined f ) then
  f.write ('Hello World\n')
  f.close()
endif
(tôi nói tương tự là vì syntax đây không phải là python mà chỉ là mã giả!)]]>
/hvaonline/posts/list/36205.html#222550 /hvaonline/posts/list/36205.html#222550 GMT
mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222554 /hvaonline/posts/list/36205.html#222554 GMT mong dk giúp đỡ về việc học python

oak wrote:

zerozeroone wrote:
Kiểm tra file mở thành công không mà làm kiểu đó thì "tèo" rồi. 
Ồ, vậy bạn có thể chỉ mình cách để kiểm tra file mở thành công hay không mà không bị "tèo" được không. À dĩ nhiên là trên Python. ============================================================================== Do bạn zerozeroone mãi không trả lời nên tớ quyết định trình bày rõ lý do tại sao lại dùng print f cho việc kiểm tra mở file trong Python. Và âu cũng là để chờ đợi câu trả lời xác đáng cho việc tại sao dùng cách trên "tèo" và cách nào để hết bị "tèo". Trong Python giống với nhiều ngôn ngữ bậc cao và "siêu cao"(do trong một số tài liệu về Python có vài tác giả gọi đây là super high-level language) là biến không cần phải khai báo khi dùng. Hay nói đúng hơn là biến được khai báo cùng lúc với việc gán giá trị. Do vậy nếu print f khơi khơi không qua gán bạn sẽ nhận được thông báo Code:
Traceback (most recent call last):
  File "C:/Users/ADMIN/Desktop/demo.py", line 1, in <module>
    print f
NameError: name 'f' is not defined
 
Trong python, biến thật ra chỉ là cái tên được gắn vào (bind) một cái đối tượng nào đó được tạo ra. ví dụ: Code:
a = 3
a = 'python'
Xét dòng đầu tiên: một đối tượng kiểu int sẽ được tạo ra với giá trị là 3 và biến (cái tên) a sẽ được gắn vào đó. Sang đến dòng thứ hai thì một đối tượng string sẽ được tạo ra với giá trị là chuỗi 'python' và biến (cái tên) a sẽ được gắn vào. Lúc này a đã được gắn vào đối tượng string mà không còn "dính líu" gì với đối tượng int phía trên.

oak wrote:
Khi gán: Code:
f = open('ketqua.txt', 'w')
Lúc này f sẽ được gán bằng một chuỗi ký tự, là câu lệnh được gửi tới trình thông dịch để mở file và chế độ mở file đó tương ứng với lênh open() khi lệnh này được thực hiện thành công. 
Cái khúc này là sai hoàn toàn nha, làm gì có vụ f sẽ được gán bằng một chuỗi kí tự hay câu lệnh gì đó. f lúc này là một đối tượng tập tin (file object) nếu câu lệnh trên thành công.

oak wrote:
Do vậy, lệnh print f sẽ in cái chuỗi này ra và ta có kết quả khi lệnh open() thực thi bình thường: Code:
<open file 'ketqua.txt', mode 'w' at 0x012D9A88>
 
Cái này là nó in ra cái thể hiện dạng chuỗi của một đối tượng, bạn cứ hiểu nôm na là một đối tượng sẽ được định nghĩa 1 cái hàm để thể hiện dạng chuỗi cho cái đối tượng để khi bạn print cái đối tượng thì nó sẽ in ra được cho bạn thấy cái dạng "đọc được" của đối tượng đó, chứ bản chất cái f của bạn không phải là chuỗi đâu. Bạn tham khảo thêm 2 cái keyword này trong python: __str__ và __repr__

oak wrote:
Nếu lệnh open() không thể thực hiện thì khi thực hiện print f sẽ có thông báo tình trạng, ví dụ như thế này: Code:
Traceback (most recent call last):
  File "C:/Users/ADMIN/Desktop/demo.py", line 1, in <module>
    f = open('ketqua.txt', 'w')
IOError: [Errno 13] Permission denied: 'ketqua.txt'
Đây là do file đã tồn tại nhưng tớ để chế độ Read Only nên trình thông dịch không thể thao tác với file và báo kết quả. Vì vậy theo tớ đây là cách kiểm tra file đã mở thành công hay không đơn giản và ngắn gọn nhất trong Python cho các bài học thao tác với file của ngôn ngữ này. Tuy nhiên zerozeroone lại nói cách này là "tèo", tức là tớ hiểu là cách này có thể gây hại hoặc tạo ra một số trường hợp không dự đoán được trước. Nên tớ phải giải thích rõ lý do tại sao dùng và chờ cách làm không "tèo" của zerozeroone. 
Cái này cũng sai nốt, cái này không phải là do cái print f của bạn nó in ra mà là do khi nó chạy tới cái f = open('ketqua.txt', 'w') thì nó bị exception nên nó out ra như thế, nó chưa có chạy được tới cái lệnh print f đâu. Thêm 1 vấn đề muốn nói ở đây là khi dùng lệnh open() thì vấn đề có thành công hay không còn phụ thuộc vào cái "mode" mà bạn dùng, trong trường hợp cái ví dụ của bạn là "w" tức là mở lên để ghi, với mode "w" này thì nếu file đó chưa tồn tại mà thư mục hiện tại có quyền ghi thì nó sẽ tạo file mới chứ không có lỗi hay exception gì hết, còn nếu cái file có rồi mà có luôn quyền ghi thì nó sẽ xoá trắng cái file đó và ghi vô từ đầu (chú ý là xoá trắng nội dung file đó chứ không phải là xoá cái file rồi tạo file mới), còn do bạn set readonly cho file mà lại mở lên với mode "w" nên sẽ bị như trên. Cuối cùng là bạn nên tìm hiểu về tryexcept (exception) trong python để 'kiểm tra', ví dụ như trong trường hợp này, chứ không phải dùng lệnh print để mà kiểm tra, như đã nói ở trên, nếu có vấn đề gì đó khi open() thì nó đã "tèo" từ ngay bước đó rồi còn gì, cái lệnh print phía sau chỉ vô dụng mà thôi. Ví dụ đơn giản nhất như sau: Code:
try:
    f = open('ketqua.txt', 'w')
    f.write('Cai gi do')
    f.close()
except:
    print 'Khong xong roi'
PS: chủ topic cũng như các bạn khác nếu muốn tìm hiểu về python ở thì có tham khảo 1 website cũng như diễn đàn về python của người Việt tại đây: http://www.vithon.org Thân.]]>
/hvaonline/posts/list/36205.html#222561 /hvaonline/posts/list/36205.html#222561 GMT
mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222563 /hvaonline/posts/list/36205.html#222563 GMT mong dk giúp đỡ về việc học python /hvaonline/posts/list/36205.html#222577 /hvaonline/posts/list/36205.html#222577 GMT mong dk giúp đỡ về việc học python

zerozeroone wrote:

oak wrote:
Khi gán: Code:
f = open('ketqua.txt', 'w')
Lúc này f sẽ được gán bằng một chuỗi ký tự, là câu lệnh được gửi tới trình thông dịch để mở file và chế độ mở file đó tương ứng với lênh open() khi lệnh này được thực hiện thành công. 
Cái khúc này là sai hoàn toàn nha, làm gì có vụ f sẽ được gán bằng một chuỗi kí tự hay câu lệnh gì đó. f lúc này là một đối tượng tập tin (file object) nếu câu lệnh trên thành công.  
In Python, everything is an object: http://www.diveintopython.net/getting_to_know_python/everything_is_an_object.html Có thể kiểm chứng bằng cách call một method mà không có parentheses: Code:
>>> f = open('ketqua.txt', 'w')
>>> f.tell
<built-in method tell of file object at 0x928e180>
]]>
/hvaonline/posts/list/36205.html#260961 /hvaonline/posts/list/36205.html#260961 GMT