Giải Tin học 10 Bài 13: Thực hành dữ liệu kiểu xâu
Bài 1. Xóa kí tự trong xâu
Bài 1 trang 99 Tin học 10: 1) Em hãy viết chương trình tạo một xâu mới từ xâu s đã cho bằng việc xoá những kí tự được chỉ định trước.
Hướng dẫn: Xoá kí tự tương đương với việc thay thế kí tự đó bằng kí tự rỗng (Hình 1).
2) Em hãy chạy thử chương trình và kiểm tra kết quả.
Trả lời:
1) Chương trình:
s = str(input("Nhập xâu s: "))
c = input()
w = s.replace(c, '')
print(w)
2)
Bài 2. Giúp bạn tìm và sửa lỗi chương trình
Bài 2 trang 99 Tin học 10: Tên tệp thường gồm hai phần: phần tên và phần mở rộng được ngăn cách nhau bởi dấu chấm. Ví dụ, các tệp chương trình Python có phần mở rộng là “py”, các tệp văn bản có phần mở rộng là “doc” hoặc “docx”. Trong hệ điều hành Windows, tên tệp không phân biệt chữ hoa và chữ thường. Bạn Khánh Linh muốn viết chương trình (Hình 2) nhập vào từ một xâu là tên của một tệp và kiểm tra xem tên tệp đó có phải là tên của tệp trong chương trình Windows không.
Khánh Linh đã nghĩ ra thuật toán, bằng cách lấy ra hai kí tự cuối cùng của xâu rồi so sánh với xâu “py”. Tuy nhiên, chương trình do Khánh Linh viết vẫn còn có lỗi. Em hãy giúp bạn Khánh Linh tìm và sữa lỗi để chương trình chạy được và đưa ra kết quả đúng.
Trả lời:
Chương trình bị sai lỗi lôgic, ra kết quả không đúng. Sửa 20 thành 2
Chương trình đúng:
fileName = input("Nhập một tên tệp: ")
Length = len(fileName)
extensionName= fileName[Length-2:]
if extensionName=='py':
print(fileName, 'là tệp mã nguồn Python')
else:
print(fileName, 'không phải là tệp mã nguồn Python')
Bài 3. Xác định tọa độ
Bài 3 trang 100 Tin học 10: 1) Tìm hiểu bài toán: Robot thám hiểm sao Hoả đang ở điểm có toạ độ (0;0) nhận được dòng lệnh điều khiển từ Trái Đất. Dòng lệnh chỉ chứa các kí tự từ tập kí tự {E, S, W, N}, mỗi kí tự là một tập lệnh di chuyển với quãng đường bằng một đơn vị độ dài. Lệnh E – đi về hứng đông, lệnh S – đi về hướng nam, lệnh W – đi về hướng tây và lệnh N – đi về hướng bắc. Trục Ox của hệ toạ độ chạy từ tây sang đông, trục Oy – chạy từ tây sang đông, trục Oy – chạy từ nam lên bắc. Em hãy xác định toạ độ của robot sau khi thực hiện lệnh di chuyển nhận được
Ví dụ: với dòng lệnh “ENENWWWS”, sau khi thực hiện robot sẽ tới vị trí (-1;1) (Hình 3).
2) Em hãy đọc hiểu và chạy thử chương trình ở Hình 4 và cho biết chương trình đó có giải quyết được bài toán ở mục a) hay không.
Trả lời:
a) Hướng giải: Đếm số lượng từng kí tự ‘E’, ‘N’, ‘S’, ‘W’. Toạ độ x của đích tới sẽ bằng số kí tự ‘E’ trừ số lượng kí tự ‘W’. Toạ độ y của đích tới bằng số kí tự ‘N’ trừ số lượng kí tự ‘S’
b) - Chương trình đó giải quyết được bài toán trên
s = input('Dòng lệnh: ')
e = s.count('E')
w = s.count('W')
n = s.count('N')
s = s.count('S')
x = e - w
y = n - s
print('Toạ độ hiện tại của robot: (', x, ',',y, ')')
Vận dụng (trang 100)
Vận dụng trang 100 Tin học 10: Em hãy viết chương trình nhập vào từ bàn phím một chữ số trong hệ thập phân, đưa ra màn hình tên gọi của chữ số đó bằng Tiếng Anh
Trả lời:
Chương trình gợi ý:
s = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
i = int(input("Nhập một chữ số: "))
print(s[i])
Xem thêm các bài giải SGK Tin học lớp 10 Cánh diều hay, chi tiết khác:
Bài 11: Thực hành lập trình với hàm và thư viện
Bài 12: Kiểu dữ liệu Xâu ký tự - xử lý xâu ký tự
Bài 14: Kiểu dữ liệu danh sách - Xử lí danh sách
Bài 15: Thực hành với kiểu dữ liệu danh sách
Bài 16: Kiểm thử và gỡ lỗi chương trình
Câu hỏi liên quan
1) Chương trình:
s = str(input("Nhập xâu s: "))
c = input()
w = s.replace(c, '')
print(w)
2)
Xem thêm
Chương trình gợi ý:
s = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
i = int(input("Nhập một chữ số: "))
print(s[i])
Xem thêm
Chương trình bị sai lỗi lôgic, ra kết quả không đúng. Sửa 20 thành 2
Chương trình đúng:
fileName = input("Nhập một tên tệp: ")
Length = len(fileName)
extensionName= fileName[Length-2:]
if extensionName=='py':
print(fileName, 'là tệp mã nguồn Python')
else:
print(fileName, 'không phải là tệp mã nguồn Python')
Xem thêm
a) Hướng giải: Đếm số lượng từng kí tự ‘E’, ‘N’, ‘S’, ‘W’. Toạ độ x của đích tới sẽ bằng số kí tự ‘E’ trừ số lượng kí tự ‘W’. Toạ độ y của đích tới bằng số kí tự ‘N’ trừ số lượng kí tự ‘S’
b) - Chương trình đó giải quyết được bài toán trên
s = input('Dòng lệnh: ')
e = s.count('E')
w = s.count('W')
n = s.count('N')
s = s.count('S')
x = e - w
y = n - s
print('Toạ độ hiện tại của robot: (', x, ',',y, ')')
Xem thêm
Xem tất cả hỏi đáp với chuyên mục: Thực hành dữ liệu kiểu xâu
Được cập nhật 12/09/2023
360 lượt xem