Chuyển dữ liệu giữa 2 cửa sổ trong QT Designer Python

Một số bạn chưa biết cách chuyển dữ liệu qua lại giữa 2 cửa sổ trong QT Designer Python, nên Tui có viết bài blog này để các bạn tham khảo. Kịch bản như sau:

Ta có 1 giao diện chính:

Màn hình chính gồm 1 QTableWidget có 2 cột: mã sản phẩm, tên sản phẩm

và một nút “Mở form nhập liệu”. Form nhập liệu có giao diện như sau:

Màn hình chi tiết nhập liệu gồm có 2 ô nhập liệu là QLineEdit và 1 Button lưu

Khi nhấn Lưu thì chuyển đối tượng(dữ liệu) Sản phẩm từ màn hình chi tiết quay trở lại màn hình chính để cập nhật dữ liệu.

Ta tiến hành làm theo các bước sau.

Tạo 1 Project tên gì cũng được, ví dụ Tui đặt là “CallBackData”. Sau đó tạo các lớp, các giao diện có cấu trúc như sau(Tui sẽ hướng dẫn chi tiết từng thành phần):

Giao diện frmMain.ui: lưu vào project trên

Đặt tên control như giao diện trên.

Tiếp theo thiết kế giao diện frmNhapLieu.ui. lưu vào project trên.

Tiếp theo coding cho lớp SanPham:

class SanPham:
  def __init__(self, ma, ten):
    self.ma = ma
    self.ten =ten

Tiếp theo coding cho màn hình chính đó là lớp Main.py.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtWidgets import QDialog, QTableWidgetItem, QApplication, QMainWindow, QTableWidget
from PyQt5 import QtWidgets, QtCore, QtGui

import NhapLieu
#nạp giao diện
Ui_MainWindow, QtBaseClass = uic.loadUiType('frmMain.ui')

class frmMain(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)

        self.btnMoFormNhapLieu.clicked.connect(self.moFormNhapLieu)

    def moFormNhapLieu(self):
        fNhapLieu.setModal(True)
        fNhapLieu.show()
    #đây là hàm call back của main, từ màn hình chi tiết khi bấm lưu sẽ gọi hàm này
    #thông qua alias ref
    #truyền đối tượng sản phẩm từ chi tiết qua đây để xử lý
    def luuDuLieu(self,sp):
        #thêm 1 dòng mới cho QTableWidgetItem:
        self.tblSanPham.insertRow(self.tblSanPham.rowCount())
        row=self.tblSanPham.rowCount()-1
        self.tblSanPham.setItem(row, 0, QTableWidgetItem(sp.ma))
        self.tblSanPham.setItem(row, 1, QTableWidgetItem(sp.ten))

if __name__ == "__main__":
    #tạo các đối tượng cho màn hình chính
    app = QtWidgets.QApplication(sys.argv)
    fMain = frmMain()
    fMain.show()
    #màn hình chi tiết
    fNhapLieu = NhapLieu.frmNhapLieu()
    #truyền tham chiếu màn hình chính qua màn hình chi tiết
    #alias lưu tham chiếu này đặt tên là ref (bạn đặt tên gì tùy)
    fNhapLieu.ref=fMain

    sys.exit(app.exec_())

Code Main.py sẽ hiển thị màn hình chính “frmMain.ui” Cũng như xử lý sự kiện và lắng nghe callback trả đối tượng về từ màn hình chi tiết.

Dưới đây là coding cho màn hình chi tiết NhapLieu.py:

import sys
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QDialog
from PyQt5 import QtWidgets

from SanPham import SanPham


class frmNhapLieu(QDialog):

    def __init__(self):
        super(frmNhapLieu, self).__init__()
        loadUi('frmNhapLieu.ui',self)
        self.btnLuu.clicked.connect(self.xuLyLuu)
        self.ref=None
    def xuLyLuu(self):
        #lấy dữ liệu trên giao diện
        ma= self.txtMa.text()
        ten=self.txtTen.text()
        #khởi tạo thành đối tượng sản phẩm
        sp=SanPham(ma,ten)
        #gửi đối tượng ngược lại cho màn hình chính (gọi là callBack)
        self.ref.luuDuLieu(sp)

Như vậy ta đã xử lý xong phần giao diện cũng như cách thức truyền dữ liệu qua lại giữa 2 cửa sổ (callback)

coding có thể tải ở đây:

https://github.com/thanhtd32/qtdesigner/tree/main/CallBackData

hoặc ở đây:

https://www.mediafire.com/file/5l498quoqzygi9f/CallBackData.rar/file

Tài liệu Python nâng cao – Tập 1

Trong quá trình học tập và nghiên cứu tại Khoa Khoa Học Dữ liệu của KMOU. Tui được tiếp cận với các phương pháp giảng dạy và học tập mới của các Giáo Sư. Tui rất thích cách mà các Giáo Sư giúp người học tư duy giải quyết vấn đề rất hiệu quả trong việc tìm ra các giải pháp để xử lý. Nói túm lại gọi là Tư Duy Lập Trình.

Vì vậy, Tui rất hào hứng và mong muốn được chia sẻ những gì mình đã học và nghiên cứu được tới cộng đồng giáo dục trong và ngoài nước. Do đó Tui đã tự tay làm lại toàn bộ bài tập và trình bày lại theo cách riêng giúp người học rèn luyện tư duy lập trình. Toàn bộ các bài tập này điều có hướng dẫn chi tiết từng bước, rất phù hợp cho Giảng Viên ở các Trường Đại Học, Cao Đẳng lấy làm nguồn tham khảo, cũng như là tài liệu dành cho Sinh viên, học viên muốn tiếp cận theo cách mới nhằm nâng cao hơn nữa Tư Duy giải quyết vấn đề.

Tài liệu này Tui biên soạn bằng Tiếng Anh, với hơn 200 trang (viết theo ngôn ngữ kỹ thuật nên dễ hiểu). Source code được minh họa kỹ lưỡng.

Người học có thể chép từ github về tham khảo(nhưng cố gắng tự coding để nâng cao level).

Các bạn có thể tải tại đây hoàn toàn miễn phí: Tải ở đây

Lưu ý để làm và hiểu được các đáp án của các bài tập trong cuốn này, các bạn tối thiểu phải có kiến thức Python cơ bản. Nếu chưa có kiến thức về Python thì có thể tham gia khóa học bằng Video mà Tui đã biên tập ở đây:

https://unica.vn/?aff=11929 (tìm Trần Duy Thanh rồi chọn khóa Làm chủ Python trong 4 tuần)

Hoặc bấm trực tiếp vào: https://unica.vn/lam-chu-python-trong-4-tuan?aff=11929

Ngoài ra Các bạn có thể đọc thêm cuốn sách “Advanced Deep Learning with TensorFlow 2 and Keras – Second Edition” Xuất bản năm 2020 khoảng hơn 500 trang của Rowel Atienza, ISBN-10: 1838821651, ISBN-13: 9781838821654

Source code các bài tập minh họa của cuốn sách này tải ở đây: Tải ở đây hoặc github của sách ở đây

Thông báo chuẩn bị ra mắt khóa học “Làm chủ Python trong 4 tuần”

💪Hot News! Khóa học 👉👉👉Làm Chủ Python Trong 4 tuần👈👈👈 đã quay xong với 101 bài học đầy đủ và chi tiết tới từng giọt kiến thức, chuẩn bị lên kệ https://youtu.be/3w6NqXJbT1Q . Giá niêm yết trên sàn TMĐT là 599k🏧.

[youtube https://www.youtube.com/watch?v=3w6NqXJbT1Q]

Khóa học sẽ giảm giá cho tất cả các bạn đã mua 2 cuốn giáo trình bản In môn Lập Trình Di Động khi Launching, giá khuyến mãi cho các bạn đã mua sách chỉ còn 199k🐩.

Các bạn lưu ý chương trình Khuyến mãi mua 2 cuốn sách tặng 3 khóa online chỉ còn 6 ngày nữa sẽ kết thúc (25/02/2018), sau ngày này sẽ không được khuyến mãi nữa.

Sách đang được lưu trữ tại thư viện Đại Học Kinh Tế – Luật (ĐHQG TP.HCM). Quý độc giả có thể liên hệ để mua (Cô Huỳnh Thanh Tuyền, email: 📧tuyenht@uel.edu.vn, Phone : 📱0902604248). Link đăng ký đặt mua Sách: 👉👉👉https://goo.gl/UBneJr

Với mỗi hóa đơn mua từ Thư viện(2 cuốn), quý độc giả sẽ được tặng 3 Khóa học bất kỳ trong 8 Khóa học dưới đây:
1) Thành Thạo Excel qua giải đề thi
2) Lập trình C# cơ bản
3) Lập trình C# nâng cao
4) Lập trình Android
5) Lập trình Kotlin
6) Lập trình LINQ
7) Lập trình Java Cơ bản
8) Lập trình Web Api web service

Hóa đơn xác nhận mua từ thư viện gửi về duythanhcse@gmail.com

Xin chân thành cảm ơn mọi người đã ủng hộ!

Bài 09: Cách xuất dữ liệu với hàm print trong Python

Như chúng ta đã biết hàm print dùng để xuất dữ liệu ra màn hình trên các dòng khác nhau, có thể kết hợp với các ký tự đặc biệt, phép nhân xuất lặp chuỗi..:

[code language=”python”]
print("Obama")
print("Xin chào")
print("Putin")
[/code]

Kết quả khi chạy:

Obama
Xin chào
Putin

Tuy nhiên trong quá trình xuất dữ liệu ra màn hình, đôi khi chúng ta muốn các thông tin hiển thị trên cùng 1 dòng dữ liêu. Python có hỗ trợ điều này, bằng cách thêm đối số end vào trong hàm print

[code language=”python”]
print("Obama",end=’ ‘)
print("Xin chào",end=’ ‘)
print("Putin")
[/code]

đối số end=’ ‘ tức là khoảng cách ra 1 khoảng trắng rồi tới chuỗi tiếp theo

Ta có thể áp dụng để xuất thông báo mời người sử dụng nhập liệu từ bàn phím như sau:

[code language=”python”]
print(end=’Mời bạn nhập 1 số:’)
a=input()
print(‘số bạn vừa nhập = ‘,a)

print(‘Mời bạn nhập 1 số’,end=’:’)
b=input()
print(‘số bạn vừa nhập =’,b)
[/code]

Ở trên các bạn thấy Tui để end đằng trước hoặc end đằng sau, bạn dùng cách nào cũng được.

Ngoài ra Python còn hỗ trợ một số ký tự đặc biệt khi xuất dữ liệu ra màn hình, đó là:

\n ->xuống dòng

\t ->đẩy vào 1 tab

\’  hoặc \”->xuất trích dẫn

[code language=”python”]
print("Quanh năm buôn bán ở mom sông")
print("Nuôi đủ năm con với 1 chồng")
print("\tLặn lội thân cò khi quãng vắng")
print("\tEo sèo mặt nước buổi \"đò đông\"")
print("Một duyên hai nợ âu đành phận\nNăm nắng mười mưa há chẳng công")
[/code]

Kết quả:

python9_1

Python còn có một tiện lợi trong hàm print là cho phép chúng xuất lặp một chuỗi nào đó liên tục mà không cần dùng vòng lặp, bằng cách dùng phép nhân *:

[code language=”python”]
print(‘*’*20)
print("Mã\tTên\tPhone")
print("01\tTèo\t0981234567")
print("02\tTý\t0908730947")
print("03\tTèo\t0949840836")
print(‘*’*20)
[/code]

ta có kết quả khi chạy chương trình:

python9_2

Ở trên bạn thấy dòng lệnh print(‘*’*20) tức là ra lệnh cho chương trình xuất ‘*’ 20 lần, bạn quan sát kết quả có 2 dòng xuất toàn dấu * nhé.

Như vậy Tui đã trình bày xong cách sử dụng print để xuất dữ liệu ra màn hình cùng với việc kết hợp các ký tự đặc biệt trong Python. Các bạn nhớ làm và kiểm tra các kết quả nhé, áp dụng vào mục đích cụ thể của mình trong việc xuất dữ liệu.

Các bạn có thể tải Source code tại đây:http://www.mediafire.com/file/xem6qn9e7awwf18/HocPrint.py

Bài sau Tui sẽ tiếp tục trình bày về hàm print với việc định dạng chuỗi khi  xuất ra màn hình.

Chúc các bạn thành công!

Bài 08: Cách nhập liệu từ bàn phím trong Python

Thông báo chuẩn bị xuất bản khóa học mới “Lập Trình Zalo với Android SDK”:https://duythanhcse.wordpress.com/2020/05/09/thong-bao-chuan-bi-xuat-ban-khoa-hoc-moi-lap-trinh-zalo-voi-android-sdk/

Các kiến thức trong Khóa học “Lập Trình Zalo với Android SDK” gồm:

– Tìm hiểu Zalo Android SDK (cách tích hợp, login, Open API, tương tác với Zalo App…)

– Cung cấp những kiến thức cốt lõi cơ bản về 1 ứng dụng tích hợp Zalo Android SDK.

-Cách thức gửi xét duyệt sử dụng các API

– Cách thức đăng nhập, xác thực, đăng xuất Zalo

– Làm việc với Social API (Mời sử dụng ứng dụng, đăng bài viết, gửi tin nhắn bạn bè, lấy danh sách bạn bè, lấy thông tin người dùng)

Trong Python để nhập liệu từ bàn phím ta dùng hàm input(). Giá trị nhập vào của hàm input() thường là kiểu chuỗi, do đó ta cần chuyển kiểu nếu như muốn lưu trữ giá trị nhập vào không phải kiểu chuỗi.

Bây giờ trong PyCharm ta tạo một tập tin tên là: HocNhapLieu.py với các lệnh sau:

[sourcecode language=”python”]
print(“Mời bạn nhập cái gì đó:”)
s=input()
print(“Bạn nhập:”,s)
print(“Kiểu dữ liệu:”,type(s))
[/sourcecode]

Bạn chạy File HocNhapLieu.py, sau đó nhập một vài dữ liệu để kiểm tra:

Trường hợp 1: Bạn nhập giá trị là 113, ta có kết quả:

python8_1

Bạn quan sát ta nhập 113,, nhưng kiểu dữ liệu vẫn là chuỗi str

Trường hợp 2: Bạn nhập giá trị là 9.5, ta có kết quả:

python8_2

Trường hợp 3: Bạn nhập giá trị là Obama, ta có kết quả:

python8_3

Trường hợp 4: Bạn nhập giá trị là True, ta có kết quả:

python8_4

Bạn thấy đó, mọi trường hợp điều là kiểu chuỗi str (cho dù bạn nhập loại dữ liệu nào đi nữa)

Bây giờ chúng ta cần ép kiểu dữ liệu cho đúng, dưới đây là cách ép:

  • Ví dụ: Lấy giá trị nhập vào là kiểu int:

[sourcecode language=”python”]
print(“Mời thím nhập int:”)
x=int(input())
print(“Bạn nhập:”,x)
print(“Kiểu dữ liệu:”,type(x))
[/sourcecode]

Bạn nhập giá trị là 6, Ta có kết quả:

python8_5

Như vậy ta có thể dùng int() để ép kiểu chuỗi về kiểu int.

Tương tự bạn có thể ép về kiểu số thực float:

[sourcecode language=”python”]
print(“Mời thím nhập float:”)
x=float(input())
print(“Bạn nhập:”,x)
print(“Kiểu dữ liệu:”,type(x))
[/sourcecode]

Ta có kết quả:

python8_6

Với kiểu bool nó hơi phức tạp chút, bạn phải tự viết hàm để xử lý (dĩ nhiên có một số hàm đã support nhưng vẫn chưa phù hợp):

[sourcecode language=”python”]
def StrToBool(s):
return s.lower() in (“yes”, “true”, “t”, “1”)

print(“Mời thím nhập bool:”)
x=StrToBool(input())
print(“Bạn nhập:”,x)
print(“Kiểu dữ liệu:”,type(x))
[/sourcecode]

Chạy lên, nhập liệu yes, true, True, TRUE, t,T, 1 ta được:

python8_7

Ở trên bạn thấy Tui định nghĩa một hàm để chuyển chuỗi qua bool.

  • Ngoài ra hàm input() còn có cho phép ta nhập nhãn tiêu đề vào như sau:

[sourcecode language=”python”]
x=input(“Mời bạn nhập giá trị gì đó:”)
print(“Bạn nhập: “,x)
[/sourcecode]

Do đó ta cũng có thể ép kiểu trực tiếp như sau:

[sourcecode language=”python”]
x=float(input(“Mời bạn nhập giá trị float:”))
print(“Bạn nhập: “,x)
[/sourcecode]

Như vậy là tới đây Tui đã hướng dẫn xong cách nhập dữ liệu từ bàn phím cũng như cách chuyển dữ liệu từ chuỗi sang int, float, bool

Việc nhập liệu từ bàn phím cũng rất quan trọng, giúp ta có thể thay đổi giá trị đầu vào để dễ dàng kiểm tra các trường hợp khác nhau trong giải thuật

Các bạn có thể tải source code bài này ở đây: Link tải source code

Các bài sau Tui sẽ trình bày về một số ký tự chuỗi đặc biệt cũng như cách định dạng chuỗi để xuất ra màn hình theo yêu cầu khác nhau.

Chúc các bạn thành công.

Bài 07: Các toán tử thường dùng trong Python

Trong bài này Tui sẽ trình bày các toán tử thường dùng trong Python.

Mỗi một ngôn ngữ lập trình đều có tập các toán tử thường dùng và đa phần chúng khá giống nhau. Những bạn nào đã học C++, java, C# thì qua Python cũng tương tự. Trong Python còn bổ sung thêm nhiều toán tử khá hữu ích khác nữa, dưới này Tui liệt kê 4 loại toán tử cơ bản thường dùng nhất trong Python (các loại khác bạn có thể xem thêm tại: https://docs.python.org/3/library/stdtypes.html):

  1. Toán tử số học cơ bản
  2. Toán tử gán
  3. Toán tử So sánh
  4. Toán tử Logic
  5. Độ ưu tiên toán tử

Bây giờ ta đi chi tiết vào từng loại toán tử:

1. Toán tử số học cơ bản:

Toán tử Mô tả Ví dụ
 +  Cộng  12 + 4.9 => kết quả  16.9
 –  Trừ  3.98 – 4 => kết quả  -0.02
 *  Nhân  2 * 3.4 => kết quả 6.8
 /  Chia  9 / 2 => kết quả 4.5
 // Chia lấy phần nguyên  9 // 2 => kết quả 4
 %  Chia lấy phần dư  9%2 =>kết quả 1
 **  Lũy thừa  3**4=>kết quả 81

2. Toán tử gán:

Toán tử Mô tả Ví dụ Tương đương với
 =  Phép gán giá trị bên phải cho biến bên trái dấu bằng  x=5
 +=  Cộng và gán x=2

x+=5

==>x=7

 x=x+5
 -=  Trừ và gán x=2

x-=5

==>x=-3

 x=x-5
 *=  Nhân và gán x=2

x*=5

==>x=10

 x=x*5
 /=  Chia và gán x=7

x/=5

==>x=1.4

 x=x/5
 //=  Chia và gán (lấy nguyên) x=7

x//=5

==>x=1

 x=x//5
%=  Chia lấy dư  x=7

x%=5

==>x=2

x=x%5
  **= Lấy lũy thừa và gán  x=2x**=3

==>x là 2 mũ 3 =8

  x=x**3

3. Toán tử So sánh:

Toán tử Mô tả Ví dụ
== So sánh bằng 5 == 5 => kết quả True
!= So sánh không bằng 5 != 5  => kết quả False
< So sánh nhỏ hơn 5 < 5  => kết quả False
<= So sánh nhỏ hơn hoặc bằgg 5 <= 5 => kết quả True
> So sánh lớn hơn 5 > 5.5 => kết quả False
>= So sánh lớn hơn hoặc bằng 113>= 5 => kết quả True
is Trả về true nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng(hoặc cùng giá trị), nếu không là false x=5

y=5
print(x is y)
=>kết quả là True
is not Trả về false nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng(hoặc cùng giá trị), nếu không là true x=5

y=5
print(x is not y)
=>kết quả là False

4. Toán tử Logic:

Toán tử Mô tả Ví dụ
 and Toán tử Và: Nếu cả hai điều kiện là True thì kết quả sẽ là True  x=2016

print(x%4==0 and x%100!=0)
=>True
 or Toán tử Hoặc: Chỉ cần một điều kiện True thì nó True, tất cả điều kiện False thì nó False
x=2016
print((x%4==0 and x%100!=0) or x%400==0)
=>True
 not Toán tử Phủ định. Thông thường nó được dùng để đảo ngược trạng thái logic của toán hạng  x=4

if (not x>=5):
    print("Ngắm gà khỏa thân và nải chuối")
else:
    print("Đậu")

5. Độ ưu tiên toán tử:

Python có ràng buộc thứ tự ưu tiên của các toán tử. Tuy nhiên tốt nhất là các bạn hay điều khiển nó bằng cách dùng cặp ngoặc tròn ( ) để nó rõ nghĩa hơn. Bảng dưới đây để tham khảo độ ưu tiên từ cao xuống thấp (tuy nhiên có thể quên nó đi mà hãy dùng ngoặc tròn () để chỉ định rõ).

Thứ tự ưu tiên Toán tử Miêu tả
1 ** Toán tử mũ
2 * / % // Phép nhân, chia, lấy phần dư và phép chia lấy phần nguyên
3 + – Toán tử Cộng, Trừ
4 <= < > >= Các toán tử so sánh
5 <> == != Các toán tử so sánh
6 = %= /= //= -= += *= **= Các toán tử gán
7 is , is not Các toán tử so sánh
8 not, or, and Các toán tử Logic

Như vậy tới đây Tui đã hướng dẫn xong các toán tử thường dùng nhất trong Python, các bạn chú ý học kỹ và hiểu được nó thông qua các ví dụ. Bạn bạn cũng nên tham khảo trực tiếp từ https://docs.python.org/3/library/stdtypes.html để hiểu thêm nhiều kiến thức khác liên quan tới các toán tử trong Python.

Các bạn có thể tải source code bài này ở đây: Link tải source code

Chúc các bạn thành công!

Bài 06: Cách ghi chú lệnh trong Python

Bất kỳ ngôn ngữ lập trình nào cũng hỗ trợ cách ghi chú lệnh bởi vì nó rất quan trọng.

Việc ghi chú lệnh một cách cẩn thận khi lập trình thể hiện tính chuyên nghiệp của Lập trình viên. Không phải nói ngoa nếu như các bạn được phỏng vấn xin việc, nếu Công ty kiểm tra coding từ các Project sample của bạn mà thấy bạn không có ghi chú một cách cẩn thận (cho dù bạn có lập trình giỏi tới mấy) thì khả năng bị loại cực cao, nếu giỏi mà cẩu thả thì càng nguy hiểm, vì độ “sát thương” cho các dự án rất cao.

Tui hay nói đùa thế này “Ngu mà tỏ vẻ nguy hiểm” hay “Nguy hiểm mà tỏ vẻ ngu”. Cả 2 trường hợp này đều nguy hiểm. Trường hợp lập trình viên giỏi mà không ghi chú cẩn thận thì có thể liệt vào “Nguy hiểm mà tỏ vẻ ngu” (vì đa phần trong đầu có thể nghĩ là coding đó đơn giản mà có gì đâu mà phải ghi chú, đọc lại hiểu liền. Nhưng chúng ta chú ý là ta làm việc theo Team, không ghi chú cẩn thận thì các thành viên khác thế nào? giai đoạn làm tài liệu ra sao?)…. Cái này Tui nói đùa thui nhé, không được tự ái. Tự ái là một căn bệnh nguy hiểm, có thể chết trước bệnh Tim.

Khi ghi chú, trình thông dịch sẽ không tính nội dung những dòng ghi chú này là mã lệnh.

Vậy trong Python ghi chú như thế nào?

1.Ghi chú 1 dòng : Dùng từ khóa #

Ví dụ:

python6_1

2. Ghi chú nhiều dòng: Dùng “”” “”” (3 cặp nháy đôi)  hoặc ”’ ”'(3 cập nháy đơn)

  • Ví dụ dùng 3 cặp nháy đôi:

[code language=”python”]
"""
Giải phương trình bậc 1: ax+b=0
Có 3 trường hợp để biện luận
Nếu hệ số a =0 và hệ số b=0 ==>vô số nghiệm
Nếu hệ số a =0 và hệ số b !=0 ==>vô nghiệm
Nếu hệ số a !=0 ==> có nghiệm -b/a
"""
a = 0
b = 113
if a == 0 and b == 0:
print("Vô số nghiệm")
elif a == 0 and b != 0:
print("Vô nghiệm")
else:
print("Có No X=",-b/a)
[/code]

  • Ví dụ dùng 3 cặp nháy đơn:

[code language=”python”]
”’
Đây là lệnh kiểm tra năm nhuần year
Năm nhuần là năm chia hết cho 4 nhưng không chia hết cho 100 hoặc chia hết cho 400
”’
year=2016
if (year % 4==0 and year %100 !=0) or year % 400 ==0:
print(year," Là năm nhuần")
else:
print(year, " KO là năm nhuần")
[/code]

Như vậy Tui đã hướng dẫn xong các cách ghi chú trong Python, các bạn nên áp dụng vào các Project của mình nhé. Nó khá quan trọng, ghi chú chi tiết sẽ giúp các lệnh được rõ nghĩa hơn khi chúng ta kiểm tra lại code, training cho nhân viên mới, chuyển giao coding khi ta chuyển công tác …. Nói chung nó thể hiện tính Chuyên nghiệp của Lập Trình Viên.

Các bạn có thể tải source code ở đây: Link tải source code

Chúc các bạn thành công!

Bài 05: Kiểu dữ liệu cơ bản và khai báo biến trong Python

1. Các kiểu dữ liệu cơ bản trong Python:

  • Kiểu int: Kiểu số nguyên (không có chứa dấu chấm thập phân), có thể lưu các số nguyên âm và dương.
    • Ví dụ: 113, -114
  • Kiểu float: Kiểu số thực (có chứa dấu chấm thập phân),
    • ví dụ: 5.2, -7.3
  • Kiểu complex: Kiểu số phức,
    • ví dụ 1: z = 2+3j thì 2 là phần thực, 3 là phần ảo (j là từ khóa để đánh dấu phần ảo)
    • ví dụ 2: z=complex(2,3) thì 2 là phần thực, 3 là phần ảo
    • khi xuất kết quả ta có thể xuất:
      • print(“Phần thực= “,z.real) ==>Phần thực= 2
      • print(“Phần ảo= “,z.imag) ==> Phần ảo= 3
  • Kiểu str: Kiểu chuỗi, để trong nháy đôi hoặc nháy đơn
    • Ví dụ: “Obama”, ‘Putin’
  • Kiểu bool: Kiểu luận lý, để lưu True hoặc False
    • Ví dụ 1: t1=True
    • Ví dụ 2: t2=False

2. Khai báo biến trong Python

Trong Python một biến không cần khai báo kiểu dữ liệu, khi ta gán giá trị thì tự động Python sẽ nội suy ra kiểu dữ liệu của biến. Như vậy một biến có thể có nhiều kiểu dữ liệu tùy thuộc vào giá trị mà ta gán. Ta có thể dùng hàm type() để kiểm tra kiểu dữ liệu của biến

Ví dụ:

[code language=”python”]
x=5
print(type(x))
x=’teo’
print(type(x))
x=True
print(type(x))
x=5.5
print(type(x))
x=complex(113,114)
print(type(x))
[/code]

Kết quả lần lượt sẽ có kiểu dữ liệu của x là:

Với x = 5 ta có kiểu dữ liệu: <class ‘int’>
Với x = ‘teo’ ta có kiểu dữ liệu:<class ‘str’>
Với x = True ta có kiểu dữ liệu:<class ‘bool’>
Với x = 5.5 ta có kiểu dữ liệu:<class ‘float’>
Với x = complex(113,114) ta có kiểu dữ liệu:<class ‘complex’>

3. Cách xóa biến

Trong Python có một điểm thú vị là: Nếu biến đó đang tồn tại mà ta xóa nó đi thì không còn sử dụng được nữa (tương tự trong C++ khi chúng ta thu hồi bộ nhớ của con trỏ vậy), Python dùng từ khóa del để xóa:

[code language=”python”]
x="Obama"
print(x)
del x
print(x)
[/code]

Lệnh trên chạy lên sẽ bị báo lỗi ngay dòng xuất x thứ 2, chi tiết kết quả:

Obama
Traceback (most recent call last):
File “F:/Study/Python/HelloWorld/FirstProject.py”, line 6, in
print(x)
NameError: name ‘x’ is not defined

4. Cách kiểm tra vùng lưu trữ giá trị của các biến int, float

Ta có thể kiểm tra vùng lưu trữ giá trị của các biên int, float bằng cách import thư viện sys để có thể xem được chi tiết:

[code language=”python”]
import sys

print("Thông tin chi tiết của int:")
print(sys.int_info)

print("Thông tin chi tiết của float:")
print(sys.float_info)
[/code]

Kết quả:

Thông tin chi tiết của int:
sys.int_info(bits_per_digit=15, sizeof_digit=2)
Thông tin chi tiết của float:
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

Như vậy Tui đã hướng dẫn xong các kiểu dữ liệu cũng như cách khai báo biến trong Python cũng như việc xóa biến, kiểm tra vùng lưu trữ, việc nắm được kiểu dữ liệu khá quan trong vì nó giúp chúng ta chọn kiểu dữ liệu phù hợp để tối ưu hóa hệ thống.

Các bạn có thể tải source code ở đây: Link tải source code

Chúc các bạn thành công.

Bài 04: Tạo Project Python trong PyCharm

bài 03 Tui đã giới thiệu một số công cụ lập trình Python. Trong bài này Tui sẽ hướng dẫn cách tạo Project Python trong công cụ PyCharm, nếu bạn nào chưa biết cách tải và cài đặt công cụ PyCharm thì xem lại bài 03 nhé.

Khi khởi động JetBrains PyCharm Community Edition, ta sẽ có giao diện sau:

h4_1Ở màn hình trên các bạn chọn Create New Project:

h4_2

Vị trí 1 – Location: Chọn nơi lưu trữ Projecct

Vị trí 2 – Interpreter: Chọn trình thông dịch Python, ở đây Tui cài 2 phiên bản thì nó ra 2 phiên bản

Vị trí 3- Create: Nhấn vào để tạo Project

Sau khi nhấn Create, PyCharm sẽ tạo cấu trúc Project mặc định ban đầu như sau:

h4_3Để tạo tập tin Python: Ta bấm chuột phải vào Project HelloWorld/ chọn New/ Python File:

h4_4

Sau khi nhấn Python File, màn h ình New Python file hiển thị ra như dưới đây:

h4_5

Ta tiến hành đặt tên File, loại file là Python file rồi nhấn nút OK, tập tin FirstProject.py sẽ được hiển thị như dưới đây (py là mở rộng của các tập tin mã nguồn Python):

h4_6

Ở trong tập tin FirstProject.py, Tui có gõ dòng lệnh:

print("Xin Chào các Thím! tui là Python nè!")

Lệnh trên dùng để xuất một chuỗi ra màn hình.

Để chạy mã tập tin FirstProject.py, các bạn vào Run/chọn Run

h4_7Các bạn thấy sau khi chúng ta chọn Run, PyCharm sẽ xuất kết quả như bên dưới chỗ Tui khoanh tròn màu đỏ.

Như vậy tới đây Tui đã hướng dẫn xong cách tạo Project Python trong PyCharm cũng như cách tạo Tập tin Python, viết lệnh xuất ra màn hình và thực thi các mã lệnh như thế nào, các bạn nhớ xem lại bài và cố gắng thực hiện được bài học này nhé.

Bài sau Tui sẽ trình bày về các kiểu dữ liệu cũng như cách thức đặt tên biến trong Python, các bạn chú ý theo dõi.

Chúc các bạn thành công

Bài 03. Giới thiệu một số công cụ lập trình Python

Ở bài số 02 Tui đã hướng dẫn bạn cách tải và cài đặt xong Python, trong bài này Tui sẽ trình bày một số công cụ dùng để lập trình Python. Có rất nhiều công cụ để ta lập trình Python, tuy nhiên trong loạt bài viết Tui sẽ sử dụng PyCharm Community Edition (sau khi giới thiệu xong các công cụ có thể lập trình được Python).

1) Công cụ lập trình chính thống giáo khi cài đặt Python:

Đó chính là công cụ IDLE khi bạn cài đặt xong Python (bạn vào Start, tìm tới Python mà bạn đã cài đặt):

h3_1

Ở màn hình trên các bạn có thể thấy máy của Tui có 2 IDLE (64+ 32), Tui test thử chạy bản nào cũng OK (Chưa test hết). Bạn nhấn chọn nó để khởi động phần mềm  soạn thảo coding Python (nên đưa ra màn hình desktop nếu bạn sử dụng nó thường xuyên), khi khởi động mặc định Python Power Shell sẽ xuất hiện như hình dưới đây:

h3_2

Ta có thể gõ các lệnh trực tiếp vào trong màn hình này (có thể nói nó giống như 1 máy tính):

h3_3

Hình trên Tui thử nhập các giá trị : a, b, c và xuất ra màn hình, đồng thời thử tạo một chuỗi và xuất ra cũng được.

Ngoài ra ta cũng có thể tạo File để soạn thảo bằng cách vào File/ chọn New File:

h3_4

Sau khi nhấn New, màn hình soạn thảo hiện ra như dưới đây:

h3_5

Ở hình trên ta thấy mặc định là “Untitled”, ta thử soạn thảo một số lệnh như trong hình rồi lưu lại với test “first.pypy là phần mở rộng của Python:

h3_6

Ở màn hình trên Tui lưu vào ổ E:/LearnPython rồi nhấn Save:

h3_7Hình trên các bạn thấy chữ Untitled được đổi thành first.py cùng với nơi lưu trữ của mã nguồn Python.

Sau đó ta vào menu Run/ chọn Run Module (hoặc nhấn phím F5):

h3_8Chương trình cho ra kết quả:

h3_9Tương tự để chạy các file mã nguồn khác ta có thể vào File/ Open để chọn file mã nguồn.

2) Công cụ lập trình wingide:

wingide cũng là một công cụ lập trình Python khá mạnh mẽ, các bạn có thể tải tại: http://wingware.com/downloads/wingide-101

h3_10Các bạn tự tải rồi tự kiểm tra cách sử dụng nhé.

3) Công cụ lập trình PyCharm:

Đây là công cụ rất nổi tiếng, rất quen thuộc đặc biệt với những ai đã lập trình Android Studio.

Hiện hãng cho sử dụng bản miễn phí PyCharm Community Edition: https://www.jetbrains.com/pycharm/ (kéo xuống gần dưới cùng sẽ có màn hình tải)

h3_11Ta thấy có nhiều giới hạn trong bản miễn phí (Community) như là không có lập trình Web. Còn bản Professional thì có đầy đủ và cho sử dụng thử 30 ngày nhé các bạn.

Hoặc bạn có thể vào link: https://www.jetbrains.com/pycharm/download/#section=windows

h3_12Chúng ta chọn Download bản Community (Tui trỏ màu đỏ) tải về máy rồi tiến hành cài đặt, và nên đưa ra màn hình Desktop để ta sử dụng (vì đây là công cụ Tui sẽ sử dụng cho toàn bộ các bài học):

h3_13

Ta khởi động phần mềm PyCharm lên sẽ có giao diện đầu tiên như sau:

h3_14Các bạn thấy tính tới thời điểm Tui viết bài này thì version mới nhất là 2016.2.3.

Như vậy tới đây Tui đã giới thiệu cho các bạn 3 công cụ lập trình Python (ngoài ra còn rất rất nhiều các công cụ lập trình Python khác nữa, các bạn có thể tìm hiểu thêm trên mạng.

Bài sau Tui sẽ hướng dẫn chi tiết cách sử dụng công cụ PyCharm (cách tạo Project, chọn Python version, cách tạo tập tin Python, cách soạn thảo cũng như thực thi source code), các bạn chú ý theo dõi.

Chúc các bạn thành công!