1. Trang chủ
  2. » Giáo án - Bài giảng

Đề cương luyện hsg tin học Lập trình Python

48 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề Cương Luyện HSG Tin Học Lập Trình Python
Trường học Trường Đại Học
Chuyên ngành Tin Học
Thể loại Đề Cương
Định dạng
Số trang 48
Dung lượng 3,47 MB

Nội dung

A. LÝ THUYẾT PYTHON CƠ BẢN BÀI 1. HIỂN THỊ KẾT QUẢ TRÊN PYTHON 1. Câu lệnh hiển thị kết quả ra màn hình Để in thông tin ra màn hình, ta dùng lệnh Print ví dụ: print(“Chào bạn”) 2. Hiển thị nhiều thông tin Bên cạnh chuỗi kí tự, hàm print cũng có thể in số nguyên lẫn số thập phân. Python sẽ tự động thêm dấu khoảng trắng vào giữa các thông tin cần in. Một biến số cũng được xem là một thông tin, và hoàn toàn có thể ghép vào câu lệnh print theo cách như trên. Một ví dụ như sau: 3. Hiển thị với kí tự phân cách 4. Hiển thị với kí tự kết thúc 5. Hiển thị với số thập phân Hàm round để làm tròn số thập phân, kết quả sẽ là a=3.24.   BÀI 2. NHẬP DỮ LIỆU VÀ KIỂU DỮ LIỆU 1. Khai báo biến, gán giá trị: Trong Python, các biến không cần phải khai báo khi gán giá trị trực tiếp: Kết quả: ‘\n’ để xuống hàng trong câu lệnh print, có thể để trong cặp dấu nháy đơn hoặc nháy kép. Lưu ý trong Python có phân biệt chữ hoathường, ví dụ hai biến a và A trong chương trình trên. 2. Nhập giá trị cho biến từ bàn phím Để nhận giá trị từ bàn phím ta cần dùng câu lệnh input(“Thông báo”). Khi nhập giá trị từ bàn phím, đối với số nguyên hoặc số thực ta cần ép kiểu cho biến, vì mặc định khi không ép kiểu thì giá trị nhập vào được Python hiểu là kiểu chuỗi. Ví dụ: Kết quả: Lưu ý, mỗi câu lệnh print sẽ tự động xuống hàng, nên các câu lệnh trong chương trình trên khi thêm kí hiệu ‘\n’ đã tạo ra khoảng cách khá xa giữa các hàng, việc này là không cần thiết. 3. Các phép toán trong Python: Tên Kí hiệu Áp dụng cho số Nguyên Áp dụng cho số thực Cộng + x x Trừ x x Nhân x x Chia số thực x x Chia lấy phần nguyên x Chia lấy phần dư % x Phép mũ x

Trang 1

ĐỀ CƯƠNG ÔN LUYỆN HỌC SINH GIỎI

MÔN TIN HỌC

A LÝ THUYẾT PYTHON CƠ BẢN BÀI 1 HIỂN THỊ KẾT QUẢ TRÊN PYTHON

1 Câu lệnh hiển thị kết quả ra màn hình

Để in thông tin ra màn hình, ta dùng lệnh Print

ví dụ: print(“Chào bạn”)

2 Hiển thị nhiều thông tin

Bên cạnh chuỗi kí tự, hàm print cũng có thể in số nguyên lẫn số thập phân Python sẽ tự động thêm dấu khoảng trắng vào giữa các thông tin cần in Một biến số cũng được xem là một thông tin, và hoàn toàn có thể ghép vào câu lệnh print theo cách như trên Một ví dụ như sau:

3 Hiển thị với kí tự phân cách

4 Hiển thị với kí tự kết thúc

5 Hiển thị với số thập phân

* Hàm round để làm tròn số thập phân, kết quả sẽ là a=3.24.

Trang 2

BÀI 2 NHẬP DỮ LIỆU VÀ KIỂU DỮ LIỆU

1 Khai báo biến, gán giá trị:

Trong Python, các biến không cần phải khai báo khi gán giá trị trực tiếp:

2 Nhập giá trị cho biến từ bàn phím

Để nhận giá trị từ bàn phím ta cần dùng câu lệnh input(“Thông báo”) Khi

nhập giá trị từ bàn phím, đối với số nguyên hoặc số thực ta cần ép kiểu cho biến, vì mặc định khi không ép kiểu thì giá trị nhập vào được Python hiểu là kiểu chuỗi

Ví dụ:

Kết quả:

Lưu ý, mỗi câu lệnh print sẽ tự động xuống hàng, nên các câu lệnh trong

chương trình trên khi thêm kí hiệu ‘\n’ đã tạo ra khoảng cách khá xa giữa các hàng, việc này là không cần thiết.

3 Các phép toán trong Python:

Tên Kí hiệu Áp dụng cho số Nguyên Áp dụng cho số thực

Chia lấy phần

Ví dụ:

Trang 3

Kết quả:

3

Trang 4

4 Xử lý lỗi nhập liệu

Để xử lý cho trường hợp người dùng nhập vào chuỗi, hoặc gọi chung là giátrị số không hợp lệ, kĩ thuật đơn giản nhất là sử dụng câu lệnh try except, như chương trình ví dụ sau đây:

Trong đoạn chương trình trên, Python sẽ cố gắng chuyển đổi giá trị chuỗi nhập vào sang số nguyên và gán nó vào biến a Trong trường hợp quá trình này thất bại (do dữ liệu không hợp lệ), phần except sẽ được thực thi và a có giá trị là

0 Ngược lại, nếu việc chuyển đổi thành công, phần except sẽ không được thực thi

Trang 5

BÀI 3 CÂU LỆNH ĐIỀU KIỆN IF Cú pháp:

Sau câu lệnh if else, các câu lệnh nằm trong nó phải được thụt vào một kí tự tab

Tuỳ vào chương trình mà có thể có else hoặc không có else, các câu lệnh if else cũng có thể lồng vào cho nhau, điều kiện là những phép so sánh:

Ví dụ:

5

Trang 6

Bài tập

1.Nhập một số từ bàn phím, in ra kết quả đó là số chẵn hay số lẻ

Trang 8

BÀI 4 CÂU LỆNH FOR

CÚ PHÁP:

for <biến đếm> in range(số cận dưới, số cận trên): <câu lệnh>

ví dụ:

Kết quả sẽ in ra màn hình các số từ 0 đến 9 (đủ 10 số, n=10) Chỉ số bắt

đầu trong Python tính từ 0 chứ không phải tính từ 1

Có một sự mới mẻ đối với vòng lặp while trong Python đó là bạn có thể kếthợp thêm từ khóa ELSE để xử lý cho lần lặp không được thực hiện khi điều kiệnlặp false

Ví dụ:

VI MẢNG MỘT CHIỀU TRONG PYTHON:

Gán giá trị trực tiếp và truy xuất dữ liệu trong mảng

Trang 9

Lưu ý: chỉ số mảng bắt đầu từ 0.

Nhập mảng từ bàn phím:

ví dụ:

Hoặc:

Chỉ số của mảng được tín từ 0, nên để in ra màn hình “Nhap phan tu thu 1

ta cần tăng i+1, đồng thời dữ liệu trong Input là kiểu chữ nên cần dùng str() để chuyển Nếu không ép kiểu cho biến temp, dữ liệu trong mảng a được hiểu là chữ

BÀI TẬP:

sử dụng while:

9

Trang 10

2 Viết chương trình đếm số lượng số chẵn trong mảng Mảng được nhập cố định ở đầu chương trình

sử dụng while:

3 Viết chương trình tìm số lớn nhất trong mảng Mảng được nhập cố định ở đầu chương trình

Trang 11

Sử dụng While:

4 Hãy thực hiện lại tất cả các yêu cầu trên, với mảng được nhập vào từ bànphím

11

Trang 12

BÀI 5 THAO TÁC VỚI FILE TRONG PYTHON

1 Ghi dữ liệu ra File

Ví dụ:

kết quả

Trong ví dụ trên, các chữ dong 1, dong 2, được ghi vào file tes.txt, ta có thể chỉ định đường dẫn cho file test.txt ví dụ D:/test.txt Ban đầu chưa có file test, chương trình sẽ tạo ra file test, cứ mỗi lần chạy nội dung trong file test sẽ bịxoá và ghi lại nội dung mới Ký hiệu “\n” là kí hiệu xuống dòng

Ký tự “w” cho phép mở chế độ mở file để ghi file, một số chế độ thường dùng:

– "r": Chỉ mở file để đọc

– "w": Chỉ mở file để ghi Nếu file chưa tồn tại thì tạo file mới Nếu file đã có thì xóa nội dung file cũ và ghi nội dung mới

– "a": Chỉ mở file để ghi thêm Nếu file chưa tồn tại thì tạo file mới Nếu file đã có thì ghi thêm nội dung vào file

2 Đọc dữ liệu từ File

Trang 13

• readline(): Từ vị trí hiện tại, đọc cho đến khi xuống dòng, vị trí mới nằm ở dòng tiếp theo

3 Đọc mảng 1 chiều từ File

VD1 Ví dụ trong file test.txt có 2 dòng dữ liệu như sau:

Dòng 1 là gia trị của biến m, dòng 2 là giá trị của dãy số a, để thực hiện việc lấy dữ liệu vào chương trình ta làm như sau:

file.readline() là đọc dữ liệu của 1 dòng, đến hết dòng thì con trỏ sẽ xuống dòng mới và không đọc nữa, file.read() là đọc dữ liệu của toàn bộ file test.txt

Lưu ý, khi các con số được lấy từ file phải dùng int để chuyển về dạng số thì mới có thể thực hiện tính toán, nếu không chuyển Python hiểu các con số đó

là kiểu chữ Trong ví dụ trên, sau câu lệnh tại dòng thứ 4, biến data đã đọc được dữ liệu từ file, tuy nhiên lúc này data được hiểu là ở dạng chữ, vòng lập for là đểchuyển từng chữ số trong data chuyển về dạng số nguyên và đưa vào biến mảng a

VD2 Tương tự như VD1, nhưng lúc này dãy số a ở dòng 1 và biến m nằm ở dòng 2

chương trình như sau:

13

Trang 14

Trong ví dụ trên ta thấy khi lấy giá trị cho n, ta dùng read chứ không phải readline, là do trong file test.txt hiện giờ chỉ còn lại 1 giá trị duy nhất Nếu trong trường hợp còn nhiều con số hơn, chương trình sẽ bị lổi, do đó để cho thuận tiện

ta nên dùng readline thay cho read

Bài tập

Trang 16

BÀI 6 CHUỖI TRONG PYTHON

Chuỗi ký tự (string) là một kiểu dữ liệu rất hay dùng trong Python, một từ, một đoạn văn bản đều là kiểu chuỗi Chuỗi trong Python được đánh dấu bằng dấu nháy đơn ’ hoặc nháy kép ", tuy nhiên nếu bắt đầu bằng dấu nào thì phải kết thúc bằng dấu đấy Ví dụ:

a=”xin chào”

b=’hello bạn’

Python hỗ trợ kiểu dữ liệu chuỗi có thể chứa đoạn văn với nhiều dòng bằngcách bắt đầu và kết thúc chuỗi bằng 3 dấu nháy kép """ Ví dụ:

Chuỗi cũng có thể được xem là một mãng kí tự nên ta cũng có thể dùng for

để duyệt qua từng kí tự trong chuỗi, ví dụ:

Trang 17

Hàm split() tách chuỗi thành các chuỗi con, ví dụ:

Kiểm tra sự tồn tại của chuỗi trong chuỗi

Để kiểm tra xem một cụm từ hoặc ký tự nào đó có trong một chuỗi hay

không, chúng ta có thể sử dụng các từ khóa in hoặc not in.

Ví dụ 1: kiểm tra xem cụm từ "python" có tồn tại trong chuỗi sau không:

17

Trang 18

Kết hợp chuỗi trong Python

Trong Python, chúng ta không thể kết hợp các chuỗi và số như thế này:

Chúng ta có thể kết hợp chuỗi và số bằng cách sử dụng hàm format()

Ví dụ: Sử dụng hàm format() để chèn số vào chuỗi:

Kết quả: Hello Python 3

Chúng ta có thể nhập bất kỳ số lượng đối số cho hàm format(), chúng sẽ được thay thế dấu {} tương ứng, ví dụ:

Kết quả: Xin chao, toi la Nam, 22 tuoi, den tu Ha Noi

Hàm count() trong Python trả về số lần xuất hiện của chuỗi con trong khoảng [start, end] Đếm xem chuỗi str này xuất hiện bao nhiêu lần trong chuỗi string hoặc chuỗi con của string nếu bạn cung cấp chỉ mục ban đầu start và chỉ mục kết thúc end

Kết quả:

Trang 19

Hàm isalpha() kiểm tra xem trong chuỗi có phải chỉ chứa chữ hay không,

nếu đúng trả về true, ngược lại trả về false

Hàm isdigit() ( hay hàm isnumeric()) kiểm tra xem trong chuỗi có phải chỉ

chứa chữ số hay không, nếu đúng trả về true, ngược lại trả về false.

Hàm len(string)Trả về độ dài của chuỗi

Hàm replace() trong Python trả về một bản sao của chuỗi ban đầu sau khi

đã thay thế các chuỗi con cũ bằng chuỗi con mới

Trang 21

B BÀI TẬP THỰC HÀNH

I BÀI TẬP CƠ BẢN

1 Nhập vào số n, hãy nhân n lên cho 3, rồi cộng 1 sau đó in kết quả ra màn hình

2 Nhập vào số n, hãy mũ 2 rồi chia cho 3, sau đó in kết quả ra màn hình

3 Nhập vào nhiệt độ c, in ra nhiệt độ F (Để chuyển đổi °C sang °F, nhân lên 9/5 hoặc 1,8, sau đó thêm 32)

4 Nhập vào một số nguyên a, nếu a chia hết cho 2 thì in ra True, ngược lại in ra False

5 Nhập vào số nguyên a, nếu a là số chia hết cho 3 và nằm trong khoảng từ 50 - 100 thì in ra True, ngược lại in ra False

6 Nhập vào số nguyên a, nếu a là số chia hết cho 5 nhưng KHÔNG nằm trong khoảng từ 20 - 70 thì in ra True, ngược lại in ra False

7 Nhập vào nguyên a và b, nếu 1 trong 2 số a và b chia hết cho 2 thì in

ra True, ngược lại in ra False

21

Trang 22

8 Nhập vào số thực a, kiểm tra xem a có phải là số nguyên hay không, nếu có thì in ra True, ngược lại in ra False

hoặc

Trong chương trình 1, ta nhập số thực a từ người dùng bằng cách sử dụnghàm input() và chuyển đổi giá trị đó thành kiểu dữ liệu số thực bằng float() Sau

đó, ta sử dụng hàm is_integer() để kiểm tra xem a có phải là số nguyên hay

không Hàm này sẽ trả về True nếu a là số nguyên và False nếu a không phải làsố nguyên

Trong chương trình thứ 2, ta nhập số thực a từ người dùng bằng cách sửdụng hàm input() và chuyển đổi giá trị đó thành kiểu dữ liệu số thực bằngfloat()

Để kiểm tra xem một số nguyên a có phải là số chính phương hay không, tacó thể kiểm tra xem căn bậc hai của a có phải là một số nguyên hay không Nếucăn bậc hai của a là một số nguyên, tức là a là số chính phương

Trang 23

Trong chương trình này, ta sử dụng hàm isqrt() từ module math để tính căn

bậc hai của a và kiểm tra xem nó có phải là một số nguyên hay không Hàmisqrt() trả về phần nguyên của căn bậc hai của a

Tiếp theo, ta kiểm tra xem phần nguyên căn bậc hai của a khi nhân với chínhnó có bằng a hay không Nếu bằng nhau, tức là a là số chính phương

Lưu ý, hàm isqrt() nằm trong module math, nên cần dùng câu lệnh importmath để có thể sử dụng được hàm isqrt

10 Nhập vào lương tháng này nhận được, ta phải đưa cho vợ 90% số tiền lương đó Hãy in ra lương ta giữ lại

Tiền nộp cho vợ là 90%, vậy còn lại 10% tương đương 0.1

11 Nhập vào 3 số a, b, c In ra kết quả là tổng của ba số đó

12 Nhập vào 3 số a, b, c Tính và in ra d = (a + b)^c, Nếu d là số trong khoảng từ 100 - 200 thì in ra True, ngược lại in ra False

II BÀI TẬP LỆNH ĐIỀU KIỆN CƠ BẢN

13 Nhập vào số nguyên dương a, nếu a lớn hơn 10 thì ta in ra đây là số lớn hơn 10

14 Nhập vào số nguyên dương a, nếu a là số chẵn thì in ra đây là số chẵn, ngược lại in ra đây là số lẻ

23

Trang 24

15 Nhập vào 3 số thực dương a, b, c Kiểm tra xem a, b, c có cấu thành độ dài của 1 tam giác được không

Điều kiện cơ bản của tam giác: a, b, c là số dương và tổng hai cạnh bất kỳlớn hơn cạnh còn lại

16 Nếu a, b, c cấu tạo thành được một tam giác, kiểm tra xem đó là tam giác gì (tam giác đều, tam giác vuông cân, tam giác vuông, tam giác cân hay tam giác thường)

17 Nhập vào 3 số a, b, c Hãy sắp xếp 3 số a, b, c theo thứ tự tăng dần rồi in ra lại

Trang 25

18 Giải và biện luận phương trình ax + b = 0

Giải phương trình:

Bước 1: Đặt ax + b = 0

Bước 2: Đưa b sang phải và đổi dấu: ax = -b

Bước 3: Chia cả hai vế của phương trình cho a: x = -b/a

Biện luận kết quả:

Nếu a khác 0, phương trình có nghiệm duy nhất x = -b/a

Nếu a bằng 0 và b khác 0, phương trình vô nghiệm vì không tồn tại giá trị xnào khi nhân với 0 và cộng với một số khác 0 mà kết quả là 0

Nếu cả a và b đều bằng 0, phương trình có vô số nghiệm vì bất kỳ giá trị nàocủa x đều làm cho phương trình thành đúng

19 Giải và biện luận phương trình ax^2 + bx + c = 0

Giải phương trình:

Bước 1: Tính delta (Δ) theo công thức Δ = b^2 - 4ac.) theo công thức Δ) theo công thức Δ = b^2 - 4ac = b^2 - 4ac

Bước 2: Kiểm tra giá trị của delta:

25

Trang 26

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) lớn hơn 0, phương trình có hai nghiệm phân biệt: x1 = (-b +

√Δ) theo công thức Δ = b^2 - 4ac.) / (2a) và x2 = (-b - √Δ) theo công thức Δ = b^2 - 4ac.) / (2a)

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) bằng 0, phương trình có nghiệm kép: x = -b / (2a)

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) nhỏ hơn 0, phương trình vô nghiệm trong miền số thực

Biện luận kết quả:

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) lớn hơn 0, phương trình có hai nghiệm phân biệt

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) bằng 0, phương trình có nghiệm kép

Nếu delta (Δ) theo công thức Δ = b^2 - 4ac.) nhỏ hơn 0, phương trình vô nghiệm

20 Nhập tháng, năm Hãy cho biết tháng đó có bao nhiêu ngày?

Để xác định số ngày trong một tháng cụ thể, ta có thể sử dụng các quy tắcsau:

Nếu tháng là một trong các tháng có số ngày là 31 (tháng 1, 3, 5, 7, 8, 10,12), thì số ngày là 31

Nếu tháng là tháng 2, ta cần kiểm tra xem năm đó có phải là năm nhuận haykhông:

Nếu năm là năm nhuận (chia hết cho 4 và không chia hết cho 100, hoặc chiahết cho 400), thì tháng 2 có 29 ngày

Trong trường hợp khác, tháng 2 có 28 ngày

Trong các trường hợp còn lại, tức là các tháng khác (tháng 4, 6, 9, 11), sốngày là 30

Trang 27

21 Nhập vào ngày, tháng Hãy tính và in ra xem ngày nhập vào cách ngày đầu năm bao nhiêu ngày (giả sử năm đó không phải là năm nhuận)

Trong đoạn lệnh sum(so_ngay_trong_thang[:thang-1]), ta sử dụng cắt(slicing) trên danh sách so_ngay_trong_thang để lấy một phần của danh sách từđầu đến trước tháng nhập vào

Cụ thể, so_ngay_trong_thang[:thang-1] sẽ trả về một danh sách mới chứacác phần tử từ vị trí đầu tiên đến (tháng-1), nghĩa là tất cả các tháng trước thángnhập vào

Ví dụ: Nếu tháng nhập vào là 5, so_ngay_trong_thang[:thang-1] sẽ trả vềdanh sách [31, 28, 31, 30], bao gồm số ngày của các tháng 1, 2, 3 và 4

Sau đó, ta sử dụng hàm sum() để tính tổng của danh sách các số ngày trướctháng nhập vào Sum(so_ngay_trong_thang[:thang-1]) sẽ trả về tổng số ngàycủa các tháng trước tháng nhập vào

Ví dụ: Nếu số ngày của các tháng trước tháng 5 là [31, 28, 31, 30], thìsum([31, 28, 31, 30]) sẽ trả về giá trị 120, tức là tổng số ngày từ tháng 1 đếntháng 4

Do đó, đoạn lệnh sum(so_ngay_trong_thang[:thang-1]) sẽ tính tổng số ngàycủa các tháng trước tháng nhập vào

22 Nhập điểm toán, văn, anh Nếu điểm đúng quy tắc (trong khoảng từ

0 - 10), ta tính điểm trung bình rồi tiến hành xét:

Nếu điểm trung bình lớn hơn hoặc bằng 8, toán hoặc văn lớn hơn hoặc bằng

8 và không có điểm nào dưới 6.5 thì in ra “Học sinh giỏi”

27

Trang 28

Nếu không đủ điều kiện học sinh giỏi ta xét nếu điểm trung bình lớn hơnhoặc bằng 6.5, toán hoặc văn lớn hơn hoặc bằng 6.5 và không có điểm nào dưới

5 thì in ra “Học sinh khá”

Nếu không đủ điều kiện học sinh khá ta xét nếu điểm trung bình lớn hơnhoặc bằng 5, toán hoặc văn lớn hơn hoặc bằng 5 và không có điểm nào dưới 3.5thì in ra “Học sinh trung bình”

Nếu không đủ điều kiện học sinh trung bình ta xét nếu điểm trung bình lớnhơn hoặc bằng 3.5, toán hoặc văn lớn hơn hoặc bằng 3.5 và không có điểm nàodưới 2 thì in ra “Học sinh yếu”

Nếu không đủ điều kiện học sinh yếu ta in ra “Học sinh kém”

III BÀI TẬP VÒNG LẶP FOR-WHILE

23 In 10 lần chữ hello ra màn hình

hoặc

24 In các số lẻ dương bé hơn 100

hoặc Trong Python, hàm range() được sử dụng để tạo ra một dãy số Cú pháp

Ngày đăng: 25/01/2024, 09:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w