Để một chương trình trở nên hữu ích, nó thường cần giao tiếp với thế giới bên ngoài bằng cách lấy dữ liệu đầu vào từ người dùng và hiển thị dữ liệu kết quả lại cho người dùng. Trong hướng dẫn này, bạn sẽ tìm hiểu về đầu vào và đầu ra của Python
Đầu vào có thể đến từ người dùng trực tiếp thông qua bàn phím hoặc từ các nguồn bên ngoài như tệp hoặc cơ sở dữ liệu. Đầu ra có thể được hiển thị trực tiếp tới bàn điều khiển hoặc IDE, tới màn hình thông qua Giao diện người dùng đồ họa [GUI] hoặc một lần nữa tới nguồn bên ngoài
Trong phần hướng dẫn trước của loạt bài giới thiệu này, bạn
- So sánh các mô hình khác nhau được sử dụng bởi các ngôn ngữ lập trình để thực hiện phép lặp xác định
- Tìm hiểu về iterables và iterators, hai khái niệm tạo thành nền tảng của phép lặp xác định trong Python
- Liên kết tất cả lại với nhau để tìm hiểu về vòng lặp for của Python
Đến cuối hướng dẫn này, bạn sẽ biết cách
- Lấy đầu vào của người dùng từ bàn phím với chức năng tích hợp sẵn
2>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
- Hiển thị đầu ra cho bàn điều khiển với chức năng tích hợp sẵn
3>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
- Định dạng dữ liệu chuỗi bằng Python f-strings
Không có gì khó chịu, hãy đi sâu vào
Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python và tìm hiểu kiến thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python
Đọc đầu vào từ bàn phím
Các chương trình thường cần lấy dữ liệu từ người dùng, thường bằng cách nhập từ bàn phím. Một cách để thực hiện điều này trong Python là với
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
25>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
Đọc một dòng từ bàn phím. [Tài liệu]
Hàm
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 tạm dừng thực thi chương trình để cho phép người dùng nhập một dòng đầu vào từ bàn phím. Sau khi người dùng nhấn phím Enter , tất cả các ký tự đã nhập sẽ được đọc và trả về dưới dạng chuỗi. >>>
>>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
Lưu ý rằng chuỗi trả về của bạn không bao gồm dòng mới được tạo khi người dùng nhấn phím Enter .
Nếu bạn bao gồm đối số tùy chọn
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
7, thì >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 sẽ hiển thị nó dưới dạng lời nhắc để người dùng của bạn biết cần nhập gì>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 luôn trả về một chuỗi. Nếu bạn muốn một kiểu số, thì bạn cần chuyển đổi chuỗi thành kiểu thích hợp bằng hàm >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
00, >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
01 hoặc >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
02 tích hợp>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
0Trong ví dụ trên, biểu thức
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
03 ở dòng 3 không hợp lệ vì >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
04 là một chuỗi và >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
05 là một số nguyên. Để tránh gặp phải lỗi này, dòng 8 chuyển đổi >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
04 thành một số nguyên ngay sau khi thu thập dữ liệu đầu vào của người dùng. Bằng cách đó, phép tính >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
03 trên dòng 10 có hai số nguyên cần cộng. Do đó, cuộc gọi tới >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 đã thành côngPhiên bản Python Lưu ý. Nếu bạn thấy mình đang làm việc với Python 2. x, bạn có thể gặp một chút khác biệt trong các hàm nhập liệu giữa Python phiên bản 2 và 3
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
09 trong Python 2 đọc đầu vào từ bàn phím và trả về. >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
09 trong Python 2 hoạt động giống như >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 trong Python 3, như được mô tả ở trênNhưng Python 2 cũng có một chức năng gọi là
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2. Trong Python 2, >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 đọc đầu vào từ bàn phím, phân tích cú pháp và đánh giá nó dưới dạng biểu thức Python và trả về giá trị kết quảPython 3 không cung cấp một chức năng duy nhất thực hiện chính xác những gì mà
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2 của Python 2 làm. Bạn có thể bắt chước hiệu ứng trong Python 3 với biểu thức >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
65. Tuy nhiên, đây là một rủi ro bảo mật vì nó cho phép người dùng chạy tùy ý, mã độc tiềm ẩnĐể biết thêm thông tin về
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
66 và các rủi ro bảo mật tiềm ẩn của nó, hãy xem Python eval[]. Đánh giá các biểu thức một cách linh hoạtVới
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
2, bạn có thể thu thập dữ liệu từ người dùng của mình. Nhưng nếu bạn muốn hiển thị cho họ bất kỳ kết quả nào mà chương trình của bạn đã tính toán thì sao? Loại bỏ các quảng cáoViết đầu ra cho bàn điều khiển
Ngoài việc lấy dữ liệu từ người dùng, một chương trình cũng thường cần trình bày lại dữ liệu cho người dùng. Bạn có thể hiển thị dữ liệu chương trình lên bảng điều khiển bằng Python với
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3Để hiển thị các đối tượng cho bảng điều khiển, hãy chuyển chúng dưới dạng danh sách các đối số được phân tách bằng dấu phẩy cho
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
310>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
Hiển thị một đại diện chuỗi của mỗi
11 cho bảng điều khiển. [Tài liệu]>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
Theo mặc định,
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 phân tách các đối tượng bằng một khoảng trắng và thêm một dòng mới vào cuối đầu ra>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
6Bạn có thể chỉ định bất kỳ loại đối tượng nào làm đối số cho
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3. Nếu một đối tượng không phải là một chuỗi, thì >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 sẽ chuyển đổi nó thành một biểu diễn chuỗi thích hợp trước khi hiển thị nó>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
1Như bạn có thể thấy, thậm chí các loại phức tạp như danh sách, từ điển và chức năng có thể được hiển thị trên bảng điều khiển với
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3In với các tính năng nâng cao
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 có một số đối số bổ sung cung cấp khả năng kiểm soát khiêm tốn đối với định dạng của đầu ra. Mỗi trong số này là một loại đối số đặc biệt được gọi là đối số từ khóa. Ở phần sau của loạt bài giới thiệu này, bạn sẽ bắt gặp hướng dẫn về hàm và truyền tham số để bạn có thể tìm hiểu thêm về đối số từ khóaTuy nhiên, bây giờ, đây là những gì bạn cần biết
- Đối số từ khóa có dạng
17>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
- Mọi đối số từ khóa được chuyển đến
3 phải ở cuối, sau danh sách các đối tượng sẽ hiển thị>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
Trong các phần sau, bạn sẽ thấy các đối số từ khóa này ảnh hưởng như thế nào đến đầu ra của bảng điều khiển do
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 tạo raTách các giá trị được in
Việc thêm đối số từ khóa
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
30 khiến Python tách các đối tượng thay vì bằng khoảng trắng mặc định>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3Để ghép các đối tượng lại với nhau mà không có bất kỳ khoảng cách nào giữa chúng, hãy chỉ định một chuỗi trống [
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
31] làm dấu phân cách>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
6Bạn có thể sử dụng từ khóa
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
32 để chỉ định bất kỳ chuỗi tùy ý nào làm dấu phân cáchLoại bỏ các quảng cáoKiểm soát ký tự dòng mới
Đối số từ khóa
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
33 khiến đầu ra bị kết thúc bởi >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
34 thay vì theo dòng mới mặc định>>>
>>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
0Ví dụ: nếu bạn đang hiển thị các giá trị trong một vòng lặp, bạn có thể sử dụng
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
35 để hiển thị các giá trị trên một dòng thay vì trên từng dòng riêng lẻ>>>
>>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
2Bạn có thể sử dụng từ khóa
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
35 để chỉ định bất kỳ chuỗi nào làm dấu kết thúc đầu raGửi đầu ra tới một luồng
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 chấp nhận hai đối số từ khóa bổ sung, cả hai đều ảnh hưởng đến cách hàm xử lý luồng đầu ra
38. Theo mặc định,>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
3 gửi đầu ra của nó tới một luồng mặc định có tên là>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
60, thường tương đương với bảng điều khiển. Thay vào đó, đối số>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
38 khiến>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
3 gửi đầu ra tới một luồng thay thế được chỉ định bởi>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
63>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
64. Thông thường,>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
3 đệm đầu ra của nó và chỉ ghi vào luồng đầu ra không liên tục.>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
64 chỉ định rằng Python buộc phải xóa luồng đầu ra với mỗi lệnh gọi tới>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
3>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
Hai đối số từ khóa này được trình bày ở đây vì mục đích hoàn chỉnh. Bạn có thể không cần quá lo lắng về luồng đầu ra tại thời điểm này trong hành trình học tập của mình
Sử dụng chuỗi được định dạng
Mặc dù bạn có thể tìm hiểu sâu về hàm
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
3 của Python, nhưng định dạng của đầu ra bảng điều khiển mà nó cung cấp là tốt nhất. Bạn có thể chọn cách tách các đối tượng được in và chỉ định nội dung ở cuối dòng in. Đó là về nóTrong nhiều trường hợp, bạn sẽ cần kiểm soát chính xác hơn đối với hình thức của dữ liệu dành cho hiển thị. Python cung cấp một số cách để định dạng dữ liệu chuỗi đầu ra. Trong phần này, bạn sẽ thấy một ví dụ về cách sử dụng Python f-strings để định dạng chuỗi
Ghi chú. Cú pháp chuỗi f là một trong những cách định dạng chuỗi hiện đại. Đối với một cuộc thảo luận chuyên sâu, bạn có thể muốn xem các hướng dẫn này
- Mẹo định dạng chuỗi Python & Thực tiễn tốt nhất
- Chuỗi f của Python 3. Cú pháp định dạng chuỗi được cải thiện [Hướng dẫn]
Bạn cũng sẽ có cái nhìn tổng quan chi tiết hơn về hai cách tiếp cận để định dạng chuỗi, f-string và
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
69, trong hướng dẫn về đầu ra chuỗi được định dạng trong Python, phần tiếp theo hướng dẫn này trong loạt bài giới thiệu nàyTrong phần này, bạn sẽ sử dụng chuỗi f để định dạng đầu ra của mình. Giả sử bạn đã viết một số mã yêu cầu người dùng của bạn cung cấp tên và tuổi của họ
>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
7Bạn đã thu thập thành công dữ liệu từ người dùng của mình và bạn cũng có thể hiển thị dữ liệu đó trở lại bảng điều khiển của họ. Để tạo một thông báo đầu ra được định dạng độc đáo, bạn có thể sử dụng cú pháp f-string
>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
0chuỗi f cho phép bạn đặt tên biến vào dấu ngoặc nhọn [
>>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
00] để đưa giá trị của chúng vào chuỗi bạn đang xây dựng. Tất cả những gì bạn cần làm là thêm chữ cái >>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
01 hoặc >>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
02 vào đầu chuỗi của bạnTiếp theo, giả sử rằng bạn muốn cho người dùng biết họ sẽ bao nhiêu tuổi sau 50 năm nữa. Python f-strings cho phép bạn làm điều đó mà không cần nhiều chi phí. Bạn có thể thêm bất kỳ biểu thức Python nào vào giữa các dấu ngoặc nhọn và Python sẽ tính toán giá trị của nó trước, sau đó đưa nó vào chuỗi f của bạn
>>>
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
1Bạn đã thêm
>>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
03 vào giá trị của >>> user_input = input[]
foo bar baz
>>> user_input
'foo bar baz'
04 mà bạn đã thu thập từ người dùng và chuyển đổi thành số nguyên bằng cách sử dụng >>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
00 trước đó. Toàn bộ quá trình tính toán diễn ra bên trong cặp dấu ngoặc nhọn thứ hai trong chuỗi f của bạn. Tuyệt đấyGhi chú. Nếu bạn muốn tìm hiểu thêm về cách sử dụng kỹ thuật định dạng chuỗi thuận tiện này, thì bạn có thể tìm hiểu sâu hơn về hướng dẫn trên Chuỗi f của Python 3
Chuỗi f Python được cho là cách thuận tiện nhất để định dạng chuỗi trong Python. Nếu bạn chỉ muốn học một chiều, tốt nhất nên gắn bó với chuỗi f của Python. Tuy nhiên, cú pháp này chỉ có từ Python 3. 6, vì vậy nếu bạn cần làm việc với các phiên bản Python cũ hơn, thì bạn sẽ phải sử dụng một cú pháp khác, chẳng hạn như phương thức
>>> name = input["What is your name? "]
What is your name? Winston Smith
>>> name
'Winston Smith'
69 hoặc toán tử modulo chuỗiLoại bỏ các quảng cáoĐầu vào và đầu ra Python. Sự kết luận
Trong hướng dẫn này, bạn đã tìm hiểu về đầu vào và đầu ra trong Python và cách chương trình Python của bạn có thể giao tiếp với người dùng. Bạn cũng đã khám phá một số đối số mà bạn có thể sử dụng để thêm thông báo vào dấu nhắc nhập liệu hoặc tùy chỉnh cách Python hiển thị kết quả trả lại cho người dùng của bạn
Bạn đã học cách
- Lấy đầu vào của người dùng từ bàn phím với chức năng tích hợp sẵn
2>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
- Hiển thị đầu ra cho bàn điều khiển với chức năng tích hợp sẵn
3>>> name = input["What is your name? "] What is your name? Winston Smith >>> name 'Winston Smith'
- Định dạng dữ liệu chuỗi bằng Python f-strings
Trong hướng dẫn sau của loạt bài giới thiệu này, bạn sẽ tìm hiểu về một kỹ thuật định dạng chuỗi khác và bạn sẽ tìm hiểu sâu hơn về cách sử dụng chuỗi f
« Vòng lặp "cho" Python [Lặp lại xác định]
Nhập và xuất cơ bản trong Python
Kỹ thuật định dạng chuỗi Python »
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Đọc đầu vào và ghi đầu ra bằng Python
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về John Sturtz
John là một Pythonista cuồng nhiệt và là thành viên của nhóm hướng dẫn Real Python
» Thông tin thêm về JohnMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Bartosz
Geir Arne
Joanna
kate
Kyle
Martin
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi