Kiểm tra chữ cái trong python

Trong bài tập này ta sẽ thực hành kiểm tra dữ liệu mà người dùng nhập vào là number hay string, đây là cách giúp bạn kiểm soát được dữ liệu nhập vào phù hợp với yêu cầu của bài toán.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Giả sử bạn viết một chươg trình tính tìm số lớn nhất trong 3 số, và yêu cầu ngươi dùng nhập vào ba số đó. Lúc này nếu người dùng nhập vào một chuỗi thì sẽ không đúng, vì vậy ta cần kiểm tra định dạng của nó trước khi thực hiện chương trình.

1. Kiểu dữ liệu mà Python nhận từ người dùng là gì?

Chúng ta hãy bàn về Python 3 thôi nhé, còn Python 2 thì mình không đề cập đến trong series này.

Trong Python, để tiếp nhận dữ liệu từ người dùng thì bạn sử dụng hàm input. Bạn có biết hàm này sẽ trả về dữ liệu ở định dạng gì không? Thực ra thì hàm input luôn trả về kiểu string nha các bạn. Hãy làm ví dụ sau để hiểu rõ hơn.

Bài viết này được đăng tại [free tuts .net]

print ["Chương trình đăng tại freetuts.net"]
number = input["Nhập số "]
string = input["Nhập chuỗi "]

print["\n"]
print["Kiểu dữ liệu vừa nhập là: "]
print["Number ", type[number]]
print["String ", type[string]]

Kết quả như sau:

Như bạn thấy, mặc dù biến number mình nhập vào là số 12 nhưng nó vẫn là kiểu string.

Bây giờ ta sẽ học cách kiểm tra định dạng của nó nhé.

2. Cách kiểm tra dữ liệu là string hay number trong Python

Trong Python, chúng ta có thể sử dụng nhiều cách khác nhau để kiểm tra dữ liệu input là chuỗi hay số.

Cách 1: Chuyển đổi thành int hoặc float để kiểm tra input là số hay chuỗi

Với cách này thì ta sử dụng hai hàm int[]float[] để ép kiểu dữ liệu, dựa vào kết quả trả về ta sẽ biết chính xác người dùng nhập vào một chuỗi hay một số.

Ta phải đặt nó trong lệnh try .. except, bởi hai hàm ép kiểu trên sẽ không thể ép một chuỗi thành một số trong trường hợp giá trị của chuỗi không phải là số. Ví dụ bạn chuyển chuỗi "freetuts.net" thành số là hoàn toàn sai.

Quá trình kiểm tra như sau: Nếu ép kiểu thành công thì là số, ngược lại thì một Exception sẽ được bung ra nên nó là một chuỗi.

print ["Chương trình đăng tại freetuts.net"]
user_input = input["Nhập tuổi của bạn "]

print["\n"]
try:
    val = int[user_input]
    print["Dữ liệu nhập vào là int = ", val]
except ValueError:
    try:
        val = float[user_input]
        print["Dữ liệu nhâp vào là float = ", val]
    except ValueError:
        print["Dữ liệu nhập vào không phải là number"]

Cách 2: Sử dụng hàm isdigit để kiểm tra là number hay string

Hàm này công dụng khá đơn giản như sau:

print ["Chương trình đăng tại freetuts.net"]
num = input["Nhập số của bạn "]

print["\n"]
if num.isdigit[]:
    print["Dữ liệu nhập vào là số "]
else:
    print["Dữ liệu nhập vào là chuỗi "]

Tuy nhiên hàm này chủ hoạt động với số nguyên dương. Nếu bạn nhập vào là một số thực hoặc một số âm thì nó sẽ trả về là chuỗi. Vì vậy, giải pháp tốt nhất vẫn là chọn phương án 1 nhé cả nhà.

3. Viết chương trình nhập vào một số bằng Python

Bây giờ ta sẽ viết chương trình ép buộc người dùng nhập vào là một số, nếu họ nhập vào là một chuỗi thì yêu cầu nhập lại.

while True:
    num = input["Vui lòng nhập vào một con số nhé! "]
    try:
        val = int[num]
        print["Dữ liệu bạn nhập vào là số."]
        print["Giá trị của nó là: ", val]
        break; # Thoát khỏi vòng lặp
    except ValueError:
        try:
            float[num]
            print["Dữ liệu nhập vào là float"]
            print["Giá trị của nó là: ", val]
            break; # Thoát khỏi vòng lặp
        except ValueError:
            print["Đây không phải là một số, vui lòng nhập lại!"]

Chạy chương trình này lên và thử nhập vào một chuỗi xem sao nhé, đảm bảo nó sẽ yêu cầu nhập lại cho tới khi bạn nhập vào đó là một con số.

Phương thức Python StringAsalpha [] được sử dụng để kiểm tra xem tất cả các ký tự trong chuỗi là bảng chữ cái. isalpha[] method is used to check whether all characters in the String is an alphabet.

Kiểu dữ liệu chuỗi [String] trong Python là một trong các kiểu phổ biến nhất trong Python. Chuỗi ký tự trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép. Python coi các lệnh trích dẫn đơn và kép là như nhau. Ví dụ: 'Hello' tương đương với "Hello".

Bạn có thể hiển thị một chuỗi trong Python bằng print[]. Ví dụ:

print["Hello"]
print['Hello']

Nội dung chính

Gán chuỗi cho một biến

Việc gán một chuỗi cho một biến được thực hiện với tên biến theo sau là dấu bằng và chuỗi, Ví dụ:

str1 = "Hello World!"
print[str1]


Chuỗi đa dòng

Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng 3 dấu ngoặc kép hoặc 3 dấu nháy đơn:

Ví dụ nhập chuỗi đa dòng với 3 dấu ngoặc kép:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]

Ví dụ nhập chuỗi đa dòng với 3 dấu nháy đơn:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]

Lưu ý: các ngắt dòng phải giống nhau [thụt dầu dòng giống nhau]. Đó là quy tắc cơ bản trong Python.

Chuỗi là một mảng

Các chuỗi trong Python là mảng các byte đại diện cho các ký tự unicode.

Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một chuỗi có độ dài bằng 1.

Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.

str1 = "Hello World!"
print[str1[0]]

Kết quả:

H


Truy cập các giá trị trong String

Dấu ngoặc vuông [] có thể được sử dụng để truy cập các phần tử của chuỗi. Ký tự đầu tiên có chỉ số là 0.

Ví dụ 1:

str1 = "HELLO"
str1 = "HELLO"
print[str1[0]]
print[str1[1]]
print[str1[2]]
print[str1[3]]
print[str1[4]]

Kết quả: trả về một chuỗi con từ vị trí 6 đến 8 của chuỗi đã cho:

H
E
L
L
O

Chỉ định chỉ mục bắt đầu và chỉ mục kết thúc, được phân tách bằng dấu hai chấm, để trả về một phần của chuỗi.

Ví dụ 2:

str1 = "HELLO"
print[str1[:]]
print[str1[0:]]
print[str1[:5]]
print[str1[:3]]
print[str1[0:2]]
print[str1[1:4]]

Kết quả:

HELLO
HELLO
HELLO
HEL
HE
ELL

Truy cập chuỗi bằng chỉ mục âm

Sử dụng các chỉ mục âm để lấy ra chuỗi con bắt đầu từ cuối chuỗi: Ví dụ:

str1 = "Hello World!"
print[str1]
0

Kết quả: trả về một chuỗi con từ vị trí 3 đến 5 từ từ cuối chuỗi của chuỗi đã cho:

str1 = "Hello World!"
print[str1]
1

Chiều dài chuỗi trong Python

Sử dụng hàm len[] để tính chiều dài chuỗi trong Python, Ví dụ:

str1 = "Hello World!"
print[str1]
2

Kết quả:

str1 = "Hello World!"
print[str1]
3


Các hàm cơ bản xử lý String trong Python

Python có một tập hợp các phương thức tích hợp mà bạn có thể sử dụng để xử lý chuỗi [String].

Hàm strip[]

Hàm strip[] loại bỏ bất kỳ khoảng trắng từ đầu hoặc cuối cùng, ví dụ:

str1 = "Hello World!"
print[str1]
4

Kết quả:

str1 = "Hello World!"
print[str1]
5

Hàm lower[]

Hàm lower[] trả về chuỗi chữ thường, ví dụ:

str1 = "Hello World!"
print[str1]
6

Kết quả:

str1 = "Hello World!"
print[str1]
7

Hàm upper[]

Hàm upper[] trả về chuỗi chữ hoa, ví dụ:

str1 = "Hello World!"
print[str1]
8

Kết quả:

str1 = "Hello World!"
print[str1]
9

Hàm replace[]

Hàm replace[] thay thế một chuỗi bằng một chuỗi khác, ví dụ:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
0

Kết quả:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
1

Hàm split[]

Hàm split[] tách chuỗi thành các chuỗi con, ví dụ:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
2

Kết quả:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
3

Kiểm tra sự tồn tại của chuỗi trong chuỗi

Để kiểm tra xem một cụm từ hoặc ký tự nào đó có trong một chuỗi hay không, chúng ta có thể sử dụng các từ khóa in hoặc not in.

Ví dụ 1: kiểm tra xem cụm từ "python" có tồn tại trong chuỗi sau không:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
4

Kết quả:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
5

Ví dụ 2: kiểm tra xem cụm từ "python" không tồn tại trong chuỗi sau không:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
6

Kết quả:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
7


Nối chuỗi trong Python

Để nối hoặc kết hợp hai chuỗi với nhau bạn có thể sử dụng toán tử +.

Ví dụ 1: Nối biến a với biến b thành biến c:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
8

Kết quả:

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print[str1]
9

Định dạng chuỗi trong Python

Trong Python, chúng ta không thể kết hợp các chuỗi và số như thế này:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
0

Chúng ta có thể kết hợp chuỗi và số bằng cách sử dụng hàm format[]

Ví dụ: Sử dụng hàm format[] để chèn số vào chuỗi:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
1

Kết quả:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
2

Bạn có thể nhập bất kỳ số lượng đối số cho hàm format[], chúng sẽ được thay thế dấu {} tương ứng, ví dụ:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
3

Kết quả:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
4


Các ký tự thoát trong Python

Bảng dưới đây liệt kê danh sách các ký tự thoát hoặc không thể in được mà có thể được biểu diễn với dấu \.

Ký tự thoátBiểu diễn trong hệ 16Miêu tả\a0x07Bell hoặc alert\b0x08Backspace\cxControl-x\C-xControl-x\e0x1bEscape\f0x0cFormfeed\M-\C-xMeta-Control-x\n0x0aNewline\nnnNotation trong hệ cơ số 8, ở đây n là trong dãy từ 0 tới 7\r0x0dCarriage return\s0x20Space\t0x09Tab\v0x0bTab dọc\xKý tự x\xnnNotation trong hệ thập lục phân, ở đây n là trong dãy từ 0.9, a.f, hoặc A.F

Chuỗi dạng Unicode trong Python

Các chuỗi thông thường trong Python được lưu trữ nội tại dưới dạng ASCII 8 bit, trong khi các chuỗi Unicode được lưu trữ dưới dạng Unicode 16 bit. Điều này cho phép để có một tập hợp các ký tự đa dạng hơn, bao gồm các ký tự đặc biệt từ hầu hết các ngôn ngữ trên thế giới. Bạn theo dõi ví dụ:

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print[str1]
5

Khi code trên được thực thi sẽ cho kết quả:

str1 = "Hello World!"
print[str1]
5

Như bạn có thể thấy, các chuỗi dạng Unicode sử dụng tiền tố u, trong khi các chuỗi thô sử dụng tiền tố r.

Các phương thức và hàm đã xây dựng sẵn để xử lý chuỗi trong Python

Python cung cấp các phương thức đa dạng đã được xây dựng sẵn để thao tác với các chuỗi. Bảng dưới đây liệt kê các phương thức này. Bạn truy cập link để thấy ví dụ chi tiết.

Chủ Đề