CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN này về mẹo lồng lệnh if và else trong vòng lặp for trong Python được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, vui lòng thích nó.
for...[if]...build List (Hiểu về danh sách) 1. Câu lệnh for...[if]... đơn giản Trong Python, câu lệnh for...[if]... là một cách ngắn gọn để xây dựng một Danh sách, chọn các phần tử đáp ứng điều kiện if từ Danh sách do for cung cấp để tạo thành một Danh sách mới, trong đó if có thể bị bỏ qua. Sau đây là một số ví dụ đơn giản để minh họa.
?
1
2
3
4
5
6
7
|
>>> một
=
[
12
,
3
,
4
,
6
,
7
,
13
,
hai mươi mốt
]
>>> Danh sách mới
=
[x
vì
x
TRONG
Một]
>>> Danh sách mới
[
12
,
3
,
4
,
6
,
7
,
13
,
hai mươi mốt
]
>>> danh sách mới2
=
[x
vì
x
TRONG
Một
nếu như
x
%
2
=
=
0
]
>>> danh sách mới2
[
12
,
4
,
6
]
|
Bằng cách bỏ qua if, newList sẽ xây dựng một List có các phần tử giống như a. Tuy nhiên, newList và a là hai danh sách khác nhau. Khi thực hiện b=a, b và newList khác nhau. newList2 là một danh sách bao gồm các phần tử được chọn từ a thỏa mãn x%2==0. Nếu không có câu lệnh for...[if].., việc xây dựng newList2 yêu cầu các thao tác sau.
?
1
2
3
4
5
6
|
>>> danh sách mới2
=
[]
>>>
vì
x
TRONG
Một:
...
nếu như
x
%
2
=
=
0
:
... newList2.append(x)
>>> danh sách mới2
[
12
,
4
,
6
]
|
Rõ ràng, sử dụng câu lệnh for...[if]... sẽ ngắn gọn hơn.
2. Các câu lệnh lồng nhau for...[if]... Các câu lệnh lồng nhau for...[if]... có thể chọn các phần tử đáp ứng các điều kiện if từ nhiều Danh sách để tạo thành một Danh sách mới. Sau đây là một số ví dụ.
?
1
2
3
4
5
6
7
8
|
>>>một
=
[
12
,
3
,
4
,
6
,
7
,
13
,
hai mươi mốt
]
>>>b
=
[
'Một'
,
'b'
,
'x'
]
>>>Danh sách mới
=
[(x, y)
vì
x
TRONG
Một
vì
và
TRONG
b]
>>>Danh sách mới
[(
12
,
'Một'
), (
12
,
'b'
), (
12
,
'x'
), (
3
,
'Một'
), (
3
,
'b'
), (
3
,
'x'
), (
4
,
'Một'
), (
4
,
'b'
), (
4
,
'x'
), (
6
,
'Một'
), (
6
,
'b'
), (
6
,
'x'
), (
7
,
'Một'
), (
7
,
'b'
), (
7
,
'x'
), (
13
,
'Một'
), (
13
,
'b'
), (
13
,
'x'
), (
hai mươi mốt
,
'Một'
), (
hai mươi mốt
,
'b'
), (
hai mươi mốt
,
'x'
)]
>>>Danh sách mới2
=
[(x, y)
vì
x
TRONG
Một
vì
và
TRONG
b
nếu như
x
%
2
=
=
0
Và
và
'x'
]
>>>Danh sách mới2
[(
12
,
'Một'
), (
12
,
'b'
), (
4
,
'Một'
), (
4
,
'b'
), (
6
,
'Một'
), (
6
,
'b'
)]
|
Các câu lệnh for...[if]... lồng nhau tương đương với nhiều câu lệnh for, trong đó câu lệnh for đầu tiên là vòng lặp ngoài cùng.
Tận dụng tốt mệnh đề else của Python. Trong mã hóa hàng ngày, các câu lệnh nhánh rất phổ biến. Chúng thường được sử dụng để kiểm soát logic thực thi mã dựa trên việc liệu các điều kiện nhất định có được đáp ứng hay không, vì vậy mọi người phải quen thuộc với if[elif[else]]. Mệnh đề else trong câu lệnh nhánh sẽ được thực thi khi các điều kiện khác không được đáp ứng. Sử dụng hợp lý các câu lệnh nhánh có thể làm cho logic mã của chúng ta phong phú hơn. Cách sử dụng mệnh đề else trong các câu lệnh nhánh về cơ bản giống như trong một số ngôn ngữ lập trình thông dụng, tương tự như việc cung cấp một đường dẫn thực thi mặc định, được sử dụng với các câu lệnh điều kiện như if. So với các ngôn ngữ lập trình khác (c#, java, js, v.v.), trong python, else có một số cách sử dụng đặc biệt, được sử dụng với các câu lệnh vòng lặp như for và while, và thậm chí với các câu lệnh xử lý ngoại lệ try except, có thể làm cho mã của chúng ta ngắn gọn hơn.
1. Được sử dụng với các câu lệnh vòng lặp for/while. Mệnh đề else được đặt ngay sau câu lệnh vòng lặp for. Khi vòng lặp kết thúc bình thường (không phải trong trường hợp thoát sớm như return hoặc break), logic của mệnh đề else sẽ được thực thi. Hãy cùng xem một ví dụ:
?
1
2
3
4
5
6
7
8
9
10
11
|
định nghĩa
in_số_nguyên_tố(n):
vì
Tôi
TRONG
phạm vi
(
2
, N):
vì
j
TRONG
phạm vi
(
2
, Tôi):
nếu như
Tôi
%
j
=
=
0
:
phá vỡ
khác
:
in
"{} là số nguyên tố"
.
định dạng
(Tôi)
|
kết quả:
?
1
2
3
|
2 là số nguyên tố
3 là số nguyên tố
5 là số nguyên tố
|
Một ví dụ đơn giản về việc in số nguyên tố. Khi đánh giá một số có phải là số nguyên tố hay không, cần phải duyệt qua các số nguyên nhỏ hơn chính nó. Nếu bất kỳ số nào trong số chúng thỏa mãn điều kiện chia hết, thì việc đánh giá kết thúc. Nếu không, thông tin rằng đây là số nguyên tố sẽ được in ra. Với sự trợ giúp của else, logic của toàn bộ ví dụ khá "tự diễn đạt", dễ hiểu như mã giả. So với việc đặt giá trị cờ khi đánh giá khả năng chia hết và sau đó đánh giá giá trị cờ ở cuối hàm để quyết định có nên in thông báo số nguyên tố hay không, thì mã này cô đọng hơn và không có nhiều công việc chuẩn bị "thủ tục" để mô tả cách thực hiện. ps: Bạn có thể chạy mã được chú thích trong ví dụ để so sánh hiệu ứng.
2. Được sử dụng trong các câu lệnh xử lý ngoại lệ với lệnh try except error control, else có cách sử dụng tương tự. Khi khối lệnh try không ném ra bất kỳ ngoại lệ nào, khối lệnh else sẽ được thực thi.
?
1
2
3
4
5
6
7
|
định nghĩa
my_to_int(tham số chuỗi):
thử
:
in
số nguyên
(chuỗi_tham_số)
ngoại trừ
Giá trị lỗi:
in
'không thể chuyển đổi {} thành số nguyên'
.
định dạng
(chuỗi_tham_số)
khác
:
in
'chuyển đổi {} thành số nguyên thành công'
.
định dạng
(chuỗi_tham_số)
|
?
1
2
|
my_to_int(
"123"
)
my_to_int(
"tôi123"
)
|
kết quả:
?
1
2
3
|
123
chuyển đổi 123 thành số nguyên thành công
không thể chuyển đổi me123 thành số nguyên
|
Như đã trình bày trong nhật ký in, khi chuyển đổi thành công và không xảy ra lỗi, logic trong câu lệnh else sẽ được thực thi. Tất nhiên, ví dụ này có thể không có nhiều ứng dụng thực tế, nhưng nó có thể minh họa sơ bộ tính hữu ích của else trong việc xử lý lỗi: đơn giản hóa logic và tránh sử dụng một số giá trị cờ có thể nắm bắt chính xác liệu có xảy ra lỗi hay không để thực hiện một số thao tác thực tế (ví dụ, nếu xảy ra lỗi khi lưu dữ liệu, thao tác khôi phục được thực hiện trong khối câu lệnh else, sau đó có thể thêm câu lệnh finally để hoàn tất một số thao tác dọn dẹp.
Sử dụng tốt khối else cho phép chúng ta viết mã ngắn gọn hơn, gần với ngữ nghĩa của ngôn ngữ tự nhiên hơn và tất nhiên là mang tính Python hơn. Bạn có thể từ từ trải nghiệm những điều tinh tế.
Cuối cùng, bài viết này về kỹ năng lồng lệnh if và else trong vòng lặp for trong Python ở đây. Nếu bạn muốn biết thêm về kỹ năng lồng lệnh if và else trong vòng lặp for trong Python, vui lòng tìm kiếm các bài viết trên CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!