Category Archives: 02. Kiểu dữ liệu và biến

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..:

print("Obama")
print("Xin chào")
print("Putin")

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

print("Obama",end=' ')
print("Xin chào",end=' ')
print("Putin")

đố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:

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)

Ở 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

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")

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 *:

print('*'*20)
print("Mã\tTên\tPhone")
print("01\tTèo\t0981234567")
print("02\tTý\t0908730947")
print("03\tTèo\t0949840836")
print('*'*20)

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


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:

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))

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:
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))

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:

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))

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):

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))

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:
x=input("Mời bạn nhập giá trị gì đó:")
print("Bạn nhập: ",x)

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

x=float(input("Mời bạn nhập giá trị float:"))
print("Bạn nhập: ",x)

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 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ụ:

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))

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:

x="Obama"
print(x)
del  x
print(x)

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:

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)

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.

%d bloggers like this: