You are on page 1of 6

Machine Translated by Google

Chương 4

Câu lệnh if

Khá thường xuyên trong các chương trình, chúng ta chỉ muốn làm điều gì đó với điều kiện điều gì đó khác là đúng. Câu
lệnh if của Python là thứ chúng ta cần.

4.1 Một ví dụ đơn giản

Hãy thử chương trình đoán số. Máy tính chọn một số ngẫu nhiên, người chơi cố gắng đoán và chương trình
sẽ cho họ biết liệu số đó có đúng hay không. Để xem dự đoán của người chơi có đúng hay không, chúng ta
cần một thứ mới, gọi là câu lệnh if.

từ randint nhập khẩu ngẫu nhiên

num = randint(1,10) đoán =


eval(input('Nhập dự đoán của bạn: ')) if đoán==num: print('Bạn
hiểu rồi!')

Cú pháp của câu lệnh if rất giống với câu lệnh for ở chỗ có dấu hai chấm ở cuối điều kiện if và các
dòng tiếp theo được thụt vào. Các dòng được thụt lề sẽ chỉ được thực thi nếu điều kiện đúng. Sau khi
thụt lề xong, khối if được kết thúc.

Trò chơi đoán số có tác dụng nhưng khá đơn giản. Nếu người chơi đoán sai, sẽ không có gì xảy ra. Chúng
ta có thể thêm vào câu lệnh if như sau:

nếu đoán==num:
print('Bạn hiểu rồi!') else:

print('Xin lỗi. Số đó là ', num)

Chúng tôi đã thêm một câu lệnh khác , giống như câu lệnh “other”.

27
Machine Translated by Google

28 CHƯƠNG 4. BÁO CÁO NẾU

4.2 Toán tử có điều kiện

Các toán tử so sánh là ==, >, <, >=, <=, và !=. Cái cuối cùng đó là không bằng. Ở đây có một ít
ví dụ:

Sự biểu lộ Sự miêu tả
nếu x>3:
nếu x lớn hơn 3
nếu x>=3:
nếu x lớn hơn hoặc bằng 3
nếu x==3: nếu x là 3

nếu x!=3: nếu x không phải là 3

Có ba toán tử bổ sung được sử dụng để xây dựng các điều kiện phức tạp hơn: và, hoặc, và
không. Dưới đây là một số ví dụ:

nếu lớp>=80 và lớp<90:

print(' Điểm của bạn là B.')

nếu điểm>1000 hoặc thời gian>20:

print('Trò chơi kết thúc.')

nếu không (điểm>1000 hoặc thời gian>20):

print('Trò chơi tiếp tục.')

Thứ tự các thao tác Về mặt thứ tự các thao tác, và được thực hiện trước hoặc, vì vậy nếu bạn có một
điều kiện phức tạp chứa cả hai, bạn có thể cần dấu ngoặc đơn xung quanh điều kiện hoặc .
Hãy coi và giống như phép nhân và hoặc giống như phép cộng. Đây là một ví dụ:

if (điểm<1000 hoặc thời gian>20) và lượt_remaining==0:

print('Trò chơi kết thúc.')

4.3 Những lỗi thường gặp

Sai lầm 1 Toán tử đẳng thức bao gồm hai dấu bằng. Đó là một lỗi thực sự phổ biến đối với
quên một trong các dấu bằng.

Không đúng Chính xác

nếu x=1: nếu x==1:

Sai lầm 2 Một lỗi thường gặp là sử dụng và ở đâu hoặc khi cần thiết hoặc ngược lại. Hãy xem xét

câu lệnh if sau:


nếu x>1 và x<100:

nếu x>1 hoặc x<100:


Machine Translated by Google

4.4. ELIF 29

Câu đầu tiên là câu đúng. Nếu x là bất kỳ giá trị nào từ 1 đến 100 thì câu lệnh sẽ đúng. Ý tưởng là x
phải vừa lớn hơn 1 vừa nhỏ hơn 100. Mặt khác, phát biểu thứ hai không phải là điều chúng ta mong muốn
vì để nó đúng thì x phải lớn hơn 1 hoặc x phải bằng nhỏ hơn 100. Nhưng mọi số đều thỏa mãn điều này.
Bài học ở đây là nếu chương trình của bạn hoạt động không chính xác, hãy kiểm tra và của bạn.

Sai lầm 3 Một lỗi rất phổ biến khác là viết một cái gì đó như dưới đây:

nếu lớp>=80 và <90:

Điều này sẽ dẫn đến lỗi cú pháp. Chúng ta phải nói rõ ràng. Phát biểu đúng là

nếu lớp>=80 và lớp<90:

Mặt khác, có một phím tắt hay hoạt động trong Python (mặc dù không có trong nhiều ngôn ngữ lập trình
khác):

nếu 80<=lớp<90:

4,4 năm

Cách sử dụng đơn giản của câu lệnh if là gán các cấp độ chữ cái. Giả sử rằng điểm từ 90 trở lên là điểm A, điểm trong khoảng

80 là điểm B, điểm 70 là điểm C, điểm 60 là điểm D và bất kỳ điểm nào dưới 60 là điểm F. Dưới đây là một cách để thực hiện
điều này:

lớp = eval(input('Nhập điểm của bạn: '))

if lớp>=90:
print('A') nếu
lớp>=80 và lớp<90: print('B') nếu
lớp>=70 và
lớp<80: print('C') nếu lớp>=60 và
lớp<70:
print('D') nếu lớp<60: print('F')

Đoạn mã trên khá đơn giản và nó hoạt động. Tuy nhiên, một cách thanh lịch hơn để làm điều đó được
hiển thị dưới đây.

lớp = eval(input('Nhập điểm của bạn: '))

if lớp>=90:
print('A') elif
lớp>=80: print('B')
elif lớp>=70:
print('C'):
Machine Translated by Google

30 CHƯƠNG 4. BÁO CÁO NẾU

elif lớp>=60:
print('D'):
else:
print('F')

Với các câu lệnh if riêng biệt, mỗi điều kiện đều được kiểm tra bất kể nó có thực sự cần thiết hay không.
Nghĩa là, nếu điểm là 95, chương trình đầu tiên sẽ in chữ A nhưng sau đó tiếp tục kiểm tra xem điểm có
phải là B, C, v.v., điều này hơi lãng phí. Sử dụng Elif, ngay khi chúng tôi tìm thấy điểm trùng khớp ở
đâu, chúng tôi sẽ ngừng kiểm tra các điều kiện và bỏ qua đến cuối toàn bộ khối
của các tuyên bố. Một lợi ích bổ sung của việc này là các điều kiện chúng tôi sử dụng trong câu lệnh Elif là

đơn giản hơn so với các đối tác if của chúng . Ví dụ: khi sử dụng elif, phần thứ hai của điều kiện câu
lệnh if thứ hai, cấp <90, trở nên không cần thiết vì elif tương ứng không phải lo lắng về điểm 90 trở
lên, vì điểm đó đã bị bắt bởi câu lệnh if đầu tiên.

Bạn có thể làm việc tốt mà không cần Elif, nhưng nó thường có thể làm cho mã của bạn đơn giản hơn.

4.5 Bài tập

1. Viết chương trình yêu cầu người dùng nhập độ dài tính bằng cm. Nếu người dùng nhập độ dài âm,
chương trình sẽ thông báo cho người dùng rằng mục nhập đó không hợp lệ. Nếu không, chương trình sẽ
chuyển đổi chiều dài thành inch và in ra kết quả. Có 2,54 cm trong một inch.

2. Hỏi người dùng về nhiệt độ. Sau đó hỏi họ xem nhiệt độ có đơn vị nào, độ C hay độ F.
Chương trình của bạn nên chuyển đổi nhiệt độ sang đơn vị khác. Các chuyển đổi là F =
9
C + 32 và C = 5 (F -32).
5 9

3. Yêu cầu người dùng nhập nhiệt độ theo độ C. Chương trình sẽ in một thông báo dựa trên nhiệt độ:

• Nếu nhiệt độ nhỏ hơn -273,15 thì in ra nhiệt độ không hợp lệ vì nó thấp hơn độ không tuyệt
đối.

• Nếu chính xác là -273,15, in ra nhiệt độ tuyệt đối bằng 0. • Nếu

nhiệt độ nằm trong khoảng từ -273,15 đến 0, in ra nhiệt độ dưới mức đóng băng. • Nếu bằng 0,

in ra nhiệt độ đang ở điểm đóng băng. • Nếu nằm trong khoảng từ

0 đến 100, in ra nhiệt độ ở mức bình thường. • Nếu là 100, in ra nhiệt độ đang ở

điểm sôi. • Nếu trên 100, in ra nhiệt độ cao hơn điểm sôi.

4. Viết chương trình hỏi người dùng họ đã lấy được bao nhiêu tín chỉ. Nếu họ lấy 23 hoặc ít hơn, hãy
viết in rằng sinh viên đó là sinh viên năm nhất. Nếu họ đạt từ 24 đến 53, hãy in ra rằng họ là
sinh viên năm hai. Phạm vi dành cho cấp dưới là 54 đến 83 và đối với người cao tuổi là 84 trở lên.
Machine Translated by Google

4.5. BÀI TẬP 31

5. Tạo một số ngẫu nhiên trong khoảng từ 1 đến 10. Yêu cầu người dùng đoán số đó và in một

tin nhắn dựa trên việc họ có hiểu đúng hay không.

6. Cửa hàng tính phí 12 USD/món nếu bạn mua ít hơn 10 món. Nếu bạn mua từ 10 đến 99 món thì giá là 10$ một

món. Nếu bạn mua 100 món trở lên, giá là 7$ một món. Viết chương trình hỏi người dùng xem họ đang mua bao

nhiêu mặt hàng và in ra tổng chi phí.

7. Viết chương trình yêu cầu người dùng nhập hai số và in ra Close nếu hai số đó là
trong phạm vi 0,001 của nhau và không đóng nếu không.

8. Một năm là năm nhuận nếu nó chia hết cho 4, ngoại trừ những năm chia hết cho 100 không phải là năm nhuận

trừ khi chúng cũng chia hết cho 400. Viết chương trình hỏi người dùng một năm và in ra xem đó có phải là

năm nhuận không năm nhuận hay không.

9. Viết chương trình yêu cầu người dùng nhập một số và in ra tất cả các ước của số đó. [Gợi ý: toán tử % được

sử dụng để cho biết một số có chia hết cho một số nào đó hay không. Xem Phần 3.2.]

10. Viết chương trình trò chơi nhân cho trẻ. Chương trình sẽ cung cấp cho người chơi mười câu hỏi nhân được

tạo ngẫu nhiên để thực hiện. Sau mỗi câu, chương trình sẽ cho họ biết họ làm đúng hay sai và câu trả lời

đúng là gì.

Câu 1: 3 x 4 = 12 Đúng rồi!

Câu 2: 8 x 6 = 44 Sai. Câu trả


lời là 48.
...
...
Câu 10: 7 x 7 = 49 Đúng rồi.

11. Viết chương trình yêu cầu người dùng trong một giờ từ 1 đến 12 giờ, yêu cầu họ nhập sáng hoặc chiều và hỏi

họ muốn đi bao nhiêu giờ trong tương lai. In ra giờ sẽ là bao nhiêu giờ trong tương lai, in sáng hoặc

chiều nếu thích hợp. Một ví dụ đã được biểu diễn ở dưới.

Nhập giờ: 8 giờ sáng


(1) hay chiều (2)? 1 Còn bao
nhiêu giờ nữa? 5 Giờ mới: 1 giờ
chiều

12. Một lọ kẹo Halloween chứa một lượng kẹo không xác định và nếu bạn đoán chính xác có bao nhiêu kẹo trong

bát thì bạn sẽ thắng hết số kẹo. Bạn hỏi người phụ trách như sau: Nếu chia đều số kẹo cho 5 người thì còn

dư bao nhiêu phần? Câu trả lời là 2 miếng. Sau đó bạn yêu cầu chia đều số kẹo cho 6 người, số kẹo còn lại

là 3 phần. Cuối cùng bạn yêu cầu chia đều số kẹo cho 7 người, số kẹo còn lại là 2 cái. Bằng cách nhìn vào

cái bát, bạn có thể biết rằng có ít hơn 200 miếng. Viết chương trình xác định có bao nhiêu miếng trong tô.
Machine Translated by Google

32 CHƯƠNG 4. BÁO CÁO NẾU

13. Viết chương trình cho phép người dùng chơi Rock-Paper-Scissors với máy tính. Sẽ có năm
vòng và sau năm vòng đó, chương trình của bạn sẽ in ra ai thắng và ai thua hoặc hòa.

You might also like