Nhập xuất dữ liệu là hai thao tác rất quan trọng trong lập trình. Đây là kênh cơ bản nhất để người dùng giao tiếp với chương trình máy tính. Qua các ví dụ nhỏ ở hai bài trước, các em đã biết cách gán dữ liệu trực tiếp vào biến cũng như xuất dữ liệu ra màn hình. Trong bài này chúng ta sẽ tìm hiểu cách cho phép người dùng nhập giá trị từ bàn phím vào Python cũng như một số kỹ thuật xuất dữ liệu theo định dạng mong muốn.
Cú pháp:
<Tên biến> = input("Câu thông báo")
Trong đó:
Tên biến: là biến tự đặt, theo quy tắc như đã đề cập ở bài 2.
Câu thông báo: Để thông báo cho người dùng biết nên nhập gì, nếu không có câu thông báo thì mặc định là con trỏ nhấp nhấy để báo hiệu nhập liệu.
Ví dụ:
a = input("Hay nhap so nguyên a:")
Output ra màn hình:
Hãy nhập số nguyên a:
Giả sử người dùng nhập 5. lúc này a sẽ nhận được giá trị '5'
Các em lưu ý là thầy để số 5 trong nháy đơn. Điều này có nghĩa là a nhận giá trị là một ký tự chứ không phải một con số, nên các em không thể thực hiện các thao tác tính toán với a.
Nếu muốn nhập a thực sự là số nguyên hoặc số thực, em phải dùng cú pháp sau đây:
<Tên biến> = <kiểu dữ liệu>(input("Câu thông báo")
Ví dụ:
a = int(input("Hay nhap so nguyen a:")
Lúc này khi chạy trường trình, người dùng nhập 5 thì a mới thực sự nhận giá trị là 5 và có kiểu dữ liệu là số nguyên.
Tóm lại:
Nếu không có kiểu phía trước thì giá trị nhập vào mặc định là chuỗi hoặc ký tự
Muốn nhập liệu kiểu nguyên hay thực thì để kiểu phía trước.
Nhiệm vụ 1. Viết chương trình cho phép người dùng nhập vào tên mình. Sau đó xuất ra câu: "Xin chào {tên đã nhập}"
Ví dụ: người dùng nhập "Nguyễn Văn A"
Xuất: "Xin chào Nguyễn Văn A"
Nhiệm vụ 2. Viết chương trình cho phép nhập hai số nguyên a, b. Tính và xuất ra trung bình cộng của hai số đó.
Ví dụ: Người dùng nhập
a : 2
b: 5
Xuất: 3.5
Nhiệm vụ 3. Viết chương trình nhập vào diện tích hình vuông, xuất ra cạnh của nó
ví dụ: input: 9
output: 3
Nhiệm vụ 4. Viết chương trình nhập vào bán kính R, tính và xuất ra chu vi và diện tích hình tròn, với Pi = 3.1415
ví dụ: input: 5
output: 78.5375
Các em quan sát yêu cầu sau đây:
Hình chữ nhật:
Viết chương trình nhập vào hai cạnh hình chữ nhật, xuất ra diện tích của nó.
input: là hai số thực nằm trên cùng một dòng cách nhau bằng khoảng trắng
output: là một số thực duy nhất là diện tích của hình chữ nhật tương ứng
Ví dụ
input | output
----------------------------------
2 5.0 | 10.0
Các em thấy rằng với cách nhập cơ bản ở trên chúng ta không thể nhập được dữ liệu cho bài này. Lý do là lệnh input() mặc định sẽ đọc hết dữ liệu trên một dòng thành một chuỗi. Ở trên các em đã dùng int hoặc float để chuyển chuỗi đó về số nguyên hay số thực.
Tuy nhiên ở bài này chúng chúng ta không chuyển như vậy được vì chuỗi mà các em đọc vào sẽ là "2 5.0", nên các em không thể dùng int hay float được. May mắn là Python cung cấp cho chúng ta hàm split để tách chuỗi. Cú pháp viết như sau:
<Chuỗi cần tách>.split( ký tự dùng để tách)
Trong đó:
Chuỗi cần tách: là chuỗi có sẵn hoặc chuỗi nhập từ bàn phím
Ký tự dùng để tách: là ký tự phân cách các thành phần trong chuỗi
Ví dụ:
str = "Duong Nguyen Tri Phuong"
tmp = str.split(" ")
lúc này tmp sẽ có giá trị là
tmp =["Duong", "Nguyen", "Tri", "Phuong"]
Giải thích:
Trong lệnh split trên, chúng ta tách chuỗi "Duong Nguyen Tri Phuong" ra bằng khoảng trắng, sau đó gán vào cho biến tmp, lúc này biến tmp là một danh sách chứa 4 phần tử vừa được tách ra như các em thấy trong ví dụ.
Các phần tử của tmp được đánh chỉ số từ 0 cho đến hết nghĩa là tmp trong ví dụ trên có các phần tử như sau:
tmp[0] = "Duong", tmp[1] = "Nguyen", tmp[2] = "Tri", tmp[3] = "Phuong"
Trở lại ví dụ Hình chữ nhật ở trên, do hai cạnh được nhập trên cùng một dòng và cách nhau bằng khoảng trắng nên chúng ta cùng dùng lệnh split để tách hai số ra.
tmp = input().split(" ")
lúc này tmp = ['2', '5.0']
Các em sẽ thấy dù đã được tách ra, các phần tử vẫn đang là chuỗi, để chuyển sang số thực ta cần ép kiểu như cách đã làm quen thuộc.
a = float(tmp[0])
b = float(tmp[1])
như vậy lúc này a và b đã mang hai giá trị số thực là hai cạnh cần nhập. Việc tính và xuất giá trị diện tích thực hiện thông thường.
Nhiệm vụ 5. Viết chường chỉnh chương trình Hình chữ nhật ở trên.
Các em có thể thử code trực tiếp chương trình này trên tkncoder.net
Nhiệm vụ 6. Viết chương trình khai báo biến a kiểu số thực, biến x kiểu số thực nằm trong khoản từ -pi đến pi (radian), biến S để lưu giá trị biểu thức.
Trong thân chương trình nhập giá trị cho a, x, gán S bằng biểu thức bên dưới, sau đó xuất S ra màn hình.
Các em có thể code trực tiếp bài này trên tkncoder.net
Xuất dữ liệu là thao tác cơ bản nhất trong lập trình và thường được người mới học lập trình biết sử dụng ngay từ những ví dụ đầu tiên. Tuy nhien, trong quá trình làm việc với các ngôn ngữ lập trình, chúng ta cần nắm được các định dạng xuất khác nhau để có thể điều khiển dữ liệu hiển thị cho chính xác. Sau đây chúng ta xem xét vài cách định dạng xuất trong Python nhé.
Làm tròn thường áp dụng khi chúng ta xuất số thập phân, hàm round là cách thực hiện đơn giản nhất.
Cú pháp:
round(số muốn làm tròn, số chữ số cần làm tròn)
ví dụ:
# when the (ndigit+1)th digit is =5
print(round(2.665, 2))
# when the (ndigit+1)th digit is >=5
print(round(2.676, 2))
# when the (ndigit+1)th digit is <5
print(round(2.673, 2))
Nguồn code: GeeksforGeeks
Kết quả xuất ra màn hình như sau
2.67
2.68
2.67
Nhiệm vụ 7: Một cái bồn nước hình trụ chứa được 4m3 nước. Bạn An muốn làm một cái nắp cho nó nhưng không thể trèo lên đỉnh bồn, rất may cây thước của bạn có thể đo được chiều cao của bồn.
Em hãy viết chương trình nhập vào chiều cao bồn nước này (tính bằng m), xuất ra bán kính của nắp bồn.
Hằng pi lấy giá trị là 3.141592654
Thể tích hình trụ được tính bằng cách lấy diện tích đáy nhân với đường cao.
Input: Một số thực duy nhất là chiều cao bồn.
Output: Một số thực duy nhất là bán kính của bồn. Làm tròn về 3 số thập phân
Ví dụ:
Các em có thể code trực tiếp bài này trên tkncoder.net
Nhiệm vụ 8. Trong lượng giác, định lý cos biểu diễn sự liên quan giữa chiều dài của các cạnh của một tam giác phẳng với cosin của góc tương ứng:
Viết chương trình nhập vào chiều dài cạnh a, b và góc gama (góc C), tính chiều dài cạnh c.
Input: 3 số thực cách nhau bằng khoảng trắng lần lượt là giá trị của a, b và góc C.
Output: một số thực duy nhất là giá trị của cạnh c làm tròn về 3 chữ số thập phân
Lưu ý: góc C nhập vào dưới dạng độ, nhưng trong công thức trên, góc được tính bằng Radian, học sinh phải đổi từ độ sang Radian trước khi đưa vào công thức tính. Giả định rằng dữ liệu nhập luôn đảm bảo điều kiện của một tam giác.
Cách đổi từ độ sáng radian như sau: lấy giá trị tính bằng độ nhân với π/180.
Hằng π lấy giá trị: 3.1415926535
Ví dụ:
Input
5 6 70
Output
6.362
Các em có thể code trực tiếp bài này tại tkncoder.net