Bài 32. Ôn tập lập trình Python
ÔN TẬP LẬP TRÌNH PYTHON
SAU BÀI HỌC NÀY EM SẼ:
Nhiệm vụ 1. Viết chương trình nhập họ tên đầy đủ từ bàn phím; ví dụ "Nguyễn Thị Mai Hương", sau đó tách phần tên, họ, đệm và in ra màn hình riêng.
Hướng dẫn. Bài 25 chúng ta sẽ biết cách tách phần họ, đệm và tên từ một xâu họ và tên. Bài này yêu cầu thêm tách phần đệm, tức là phần nằm giữa tên và họ, bằng cách sử dụng lệnh join( ). Xâu kí tự ban đầu được tách thành một danh sách dùng hàm split( ). Sau khi lấy họ và tên, đệm sẽ lấy ra theo lệnh sau:
dem = " ".join(slist[1:n - 1])
Trong đó slist là danh sách được tách ra từ xâu ban đầu, n là độ dài của xâu slist.
Nhập, chạy thử và kiểm tra chương trình sau:
hoten = input("Nhập họ tên đầy đủ của em: ")
slist = hoten.split()
n = len(slist)
ho = slist[0]
ten = slist[n - 1]
dem = " ".join(slist[1:n - 1])
print("Tên của em là", ten)
print("Họ của em là", ho)
if n > 2:
print("Đệm của em là", dem)
Nhiệm vụ 2. Tính trọng lượng của em trên các hành tinh khác.
Chương trình yêu cầu nhập trọng lượng của em (tính theo đơn vị N – Newton) trên Trái Đất và tính trọng lượng của em trên một hành tinh khác (ví dụ Mặt Trăng, Hoả tinh, Kim tinh, Thổ tinh, Mộc tinh, Mặt Trời).
Trọng lượng có đơn vị đo là N (Newton). Khối lượng vật thể tính theo kg và giá trị này không đổi. Chúng ta có công thức: P = m × g (1), trong đó P là trọng lượng tính theo N; m là khối lượng tính theo kg, g là gia tốc trọng trường của Trái Đất (hay hành tinh), tính theo m/s². Trên Trái Đất, g = 9.8 m/s². Trên mỗi hành tinh các giá trị g sẽ khác nhau. Danh sách các hành tinh được lưu trong biến planet, các trọng lực tương ứng lưu trong danh sách gravities. Biết trọng lượng của một người trên Trái Đất (ví dụ P0) thì sẽ dễ dàng tính được trọng lượng của người này trên một hành tinh khác nếu biết giá trị g của hành tinh đó. Gọi P là trọng lượng cần tìm, khi đó ta có công thức sau, suy trực tiếp từ công thức (1).
Em hãy nhập chương trình sau và kiểm tra tính đúng đắn của chương trình.
weight.py
def string(w):
S = ""
for i in range(len(w)):
S = S + str(i + 1) + ". " + w[i] + "\n"
return S
planet = ["Mặt Trăng", "Hoả tinh", "Kim tinh", "Mộc tinh", "Thổ tinh", "Mặt Trời"]
gravities = [1.62, 3.711, 8.83, 24.79, 10.44, 274.0]
P_earth = float(input("Nhập trọng lượng của em, tính theo N: "))
k = int(input("Nhập số thứ tự hành tinh\n" + string(planet) + ": "))
Grp = gravities[k - 1]
P = round(P_earth * Grp / 9.8, 3)
print("Trọng lượng của em trên", planet[k - 1], "là:", P)
Nhiệm vụ 3. Kiểm tra tính hợp lệ của ba tham số ngày, tháng, năm.
Chương trình sẽ yêu cầu nhập ba số tự nhiên: ngày, tháng, năm từ bàn phím theo khuôn dạng, ví dụ nhập 08-02-2021. Chương trình sẽ báo bộ dữ liệu đã nhập là hợp lệ hay không hợp lệ.
Hướng dẫn. Bộ dữ liệu chính cần nhập sẽ đặt tên là day, month, year. Nhiệm vụ của bài toán là nhập bộ dữ liệu này và kiểm tra tính hợp lệ theo các yêu cầu về lịch.
Điểm đặc biệt nhất cần chú ý là kiểm tra năm year có phải là năm nhuận không. Nếu là năm nhuận thì tháng 2 phải có 29 ngày, so với các năm không nhuận tháng 2 có 28 ngày. Chúng ta sử dụng biến danh sách số tháng để lưu số ngày của các tháng trong năm. Sau mỗi lần nhập ba số day, month, year cần kiểm tra năm nhuận để cập nhật tháng 2. Khi đó, chương trình kiểm tra có thể viết đơn giản như sau:
date.py
thang = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
def nhuan(year):
return year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)
date = input("Nhập thời gian theo dạng ngày-tháng-năm: ")
tg = date.split("-")
day, month, year = map(int, tg)
if nhuan(year):
thang[1] = 29
else:
thang[1] = 28
if year > 0 and 1 <= month <= 12 and 1 <= day <= thang[month - 1]:
print(day, month, year, "là hợp lệ")
else:
print("Bộ dữ liệu đã nhập không hợp lệ")
LUYỆN TẬP
Viết chương trình nhập số n, sau đó nhập danh sách tên học sinh với họ, đệm, tên. Sắp xếp tên học sinh trong lớp theo chữ cái. Đưa kết quả ra màn hình.
VẬN DỤNG
Chú ý: chữ cái Việt (bao gồm cả dấu thanh) được sắp xếp theo thứ tự sau: ƠỜỚỞỠỢÔỒỐỔỖỘPQRSTUÙÚỦŨỤƯỪỨỬỮỰVXYỲÝ.