17.1
Các tên biến nào dưới đây là hợp lệ trong Python?
A. L234
B. L234T
C. 1xY
D. xY 1
E. xy-a
F. Ha_Noi
G. Ha1x2Noi
Phương pháp giải:
Quy tắc đặt tên biến: chỉ gồm chữ cái tiếng Anh, các chữ số từ 0 đến 9 và kí tự gạch dưới, không bắt đầu bằng chữ số và có phân biệt chữ hoa và chữ thường.
Lời giải chi tiết:
Các tên biến hợp lệ trong Python là:
A. L234
B. L234T
D. xY 1
F. Ha_Noi
G. Ha1x2Noi
- Trường hợp C không hợp lệ vì tên biến không được bắt đầu bằng chữ số.
- Trường hợp E không hợp lệ vì tên biến chứa kí tự đặc biệt "-" (dấu trừ).
17.2
Em hãy cho biết kiểu dữ liệu và giá trị của biến c trong các câu lệnh sau:
Phương pháp giải:
Quan sát các câu lệnh và dựa vào kiến thức đã học
Lời giải chi tiết:
a) c = 1.5 (kiểu số thực)
b) c = 1 (kiểu số nguyên).
c) c = 10 (kiểu số thực).
d) c = 2 (kiểu số thực).
17.3
Sau các lệnh dưới đây, các biến a, b nhận giá trị bao nhiêu?
>>> a, b = 2, 3
>>> a, b = a + b, a – b
Phương pháp giải:
Quan sát câu lệnh
Cú pháp lệnh gán:
Lời giải chi tiết:
a = 5, b = -1
17.4
Sau các lệnh dưới đây, các biến a, b nhận giá trị bao nhiêu?
>>> a, b = 2, "OK"
>>> a, b = 3*a, a*b
Phương pháp giải:
Cú pháp lệnh gán:
Phép toán trên dữ liệu kiểu xâu: * (lặp)
Lời giải chi tiết:
Giá trị của a, b tương ứng là 6 và 'OKOK'.
17.5
Sau các lệnh dưới đây, các biến a, b nhận giá trị bao nhiêu?
>>> a, b = 2, "OK"
>>> a = 2*a
>>> b = a*b
Phương pháp giải:
Cú pháp lệnh gán:
Phép toán trên dữ liệu kiểu xâu: * (lặp)
Lời giải chi tiết:
Giá trị của a, b tương ứng là 4 và 'OKOKOKOK'.
17.6
Em hãy viết các lệnh gán cho x, y giá trị tương ứng là 2 và 3.1 sau đó tính giá trị của biểu thức
[(x² + y²-xy)(x² + y²-2y)]0.5
Phương pháp giải:
Cú pháp lệnh gán:
Lời giải chi tiết:
Nếu thực hiện trong cửa sổ lệnh của Python thì các câu lệnh có thể viết như sau
>>> x, y = 2, 3.1
>>> z = x*x + y*y
>>> ((z - x*y)*(z - 2y))**0.5
17.7
Em hãy viết các câu lệnh tương ứng trong Python để tính số tiền (sotien) cần thanh toán khi mua một số thiệp mừng năm mới (kí hiệu là soluong) với đơn giá 1 thiệp là dongia đồng.
Phương pháp giải:
Vận dụng kiến thức đã học để viết câu lệnh
Lời giải chi tiết:
sotien = dongia*soluong
17.8
Giả sử trong Câu 17.7 đơn giá 1 thiệp mừng năm mới là 8500 đồng, soluong thiệp bạn Lan mua là 15 thiệp. Hãy viết các câu lệnh tương ứng trong Python để tính và in ra màn hình số tiền bạn Lan cần thanh toán
Phương pháp giải:
Vận dụng kiến thức đã học để viết các câu lệnh
Lời giải chi tiết:
- Các câu lệnh đó có thể là:
dongia = 8500
soluong = 15
sotien = dongia*soluong
print("Số tiền cần thanh toán: ", sotien, “đồng")
- Nếu không sử dụng biến sotien đề biểu diễn số tiền cần thanh toán thì các câu lệnh giải bài toán trên có thể viết như sau.
dongia = 8500
soluong = 15
print("Số tiền cần thanh toán: ", dongia*soluong, "đồng")
17.9
Hai bạn Bắc và Nam được yêu cầu viết công thức tính diện tích hình thang trong Python theo mấy câu thơ sau "Muốn tìm diện tích hình thang/Đáy trên đáy dưới ta mang cộng vào/Rồi đem nhân với chiều cao/Chia đôi lấy nửa thế nào cũng ra". Kết quả như sau:
Cô giáo khen cả hai bạn làm đúng. Tuy nhiên, cô khuyến cáo nên viết như bạn Nam. Vì sao?
Phương pháp giải:
Trong lập trình, người ta thường khuyến cáo đặt tên biến sát với ý nghĩa của nó.
Lời giải chi tiết:
Trong lập trình nói chung, người ta thường khuyến cáo đặt tên biến sát với ý nghĩa, tác dụng của nó để giúp việc đọc hiểu chương trình dễ dàng hơn (nếu dùng được tiếng Anh thì càng tốt, ví dụ đáy trên/đáy dưới có thể thay bằng top_base/bottom_base).
17.10
Hãy xác định các lỗi có thể có trong đoạn chương trình sau:
Phương pháp giải:
Quan sát đoạn chương trình và dựa vào kiến thức đã học
Lời giải chi tiết:
Câu lệnh 2 sai vì giá trị biến b ở vế bên phải chưa xác định
Câu lệnh thứ 5 sai vì vế bên phải biến c là dữ liệu kiểu xâu kí tự nên không thể tham gia trong phép toán số học với biến b là dữ liệu kiểu số thực.
17.11
Trong bài tập lập trình yêu cầu đối giá trị của hai biến x, y được cho trước hai bạn Bình và An đã làm như sau
Theo em, bạn nào làm đúng, bạn nào làm sai? Vì sao?
Phương pháp giải:
Trong Python có thể sử dụng câu lệnh gán sau để đổi giá trị của hai biến x, y cho trước x, y = y, x
Lời giải chi tiết:
Bình sai, An đúng.
Sau câu lệnh thứ nhất, giá trị của biến x trong chương trình của Bình bằng giá trị của biến y và do vậy chương trình của Bình cho kết quả cả hai biến x, y cùng có giá trị bằng giá trị biến y được cho từ trước. Trong chương trình của An, sau câu lệnh thứ nhất giá trị của x được lưu lại bằng biến z, sau khi thực hiện câu lệnh thứ hai giá trị của biến y được gán cho biến x, câu lệnh thứ ba trong chương trình của An gán giá trị của biến 2 (chính là giá trị của x đã được xác định từ trước).
17.12
Viết chương trình thực hiện việc đổi số giây ss cho trước (ví dụ ss = 684 500) sang số ngày, giờ, phút, giây, in kết quả ra màn hình
Phương pháp giải:
Dễ dàng thấy rằng 1 ngày = 86 400 giây, 1 giờ = 3 600 giây, 1 phút = 60 giây
Lời giải chi tiết:
- Chương trình có thể viết như sau:
ss = 684500
songay = ss//86400
sogiay = ss%86400
sogio = sogiay//3600
sogiay = sogiay%3600
sophut = sogiay//60
sogiay = sogiay%60
print(ss, "giây = ", songay, "ngày", sogio, "giờ", sophut, "phút", sogiay, "giây")