In hàng ngang trong python

Bài viết được sự cho phép của tác giả Phạm Văn Nguyên

Python là một trong những ngôn ngữ lập trình dễ học nhất.

Một trong những chương trình đầu tiên bạn viết khi bạn bắt đầu học bất kỳ ngôn ngữ lập trình mới nào là  chương trình hello world .

Một  chương trình hello world trong python trông như thế này

# hello world in python
print["Hello World!"]

Thật dễ dàng!

Chỉ cần một dòng và tada bạn có chương trình hello world của bạn.

Trong Python 3, print [] là một hàm in ra những thứ trên màn hình [print là một câu lệnh trong Python 2] .

Như bạn có thể thấy, nó là một chức năng rất đơn giản.

Tuy nhiên, có một điều thực sự khó chịu về chức năng này.

Nó tự động in một dòng mới ‘\ n’ ở cuối dòng!

Hãy xem ví dụ này

print["Hello World!"]
print["My name is Nguyenpv"]
# output:# Hello World!
# My name is Nguyenpv

Như bạn có thể nhận thấy, hai chuỗi không được in lần lượt từng chuỗi trên cùng một dòng mà thay vào đó là các dòng riêng biệt.

Mặc dù đây có thể là những gì bạn thực sự muốn, nhưng không phải lúc nào cũng như vậy.

nếu bạn đến từ một ngôn ngữ khác, bạn có thể thoải mái hơn khi đề cập rõ ràng liệu một dòng mới có nên được in ra hay không.

Ví dụ: trong Java, bạn phải thể hiện rõ ràng mong muốn in một dòng mới bằng cách sử dụng chức năng println hoặc nhập ký tự dòng mới [\ n] bên trong chức năng in của bạn:

// option 1
System.out.println["Hello World!"]
// option 2
System.out.print["Hello World!\n"]

Vậy chúng ta nên làm gì nếu chúng ta không muốn có các ký tự dòng mới trong python?

Và đây là giải pháp!

Giải pháp

In không có dòng mới trong Python 3

Python 3 cung cấp giải pháp đơn giản nhất, tất cả những gì bạn phải làm là cung cấp thêm một đối số cho hàm print.

# use the named argument "end" to explicitly specify the end of line string
print["Hello World!", end = '']
print["My name is Nguyenpv"]
# output:
# Hello World!My name is Nguyenpv

Bạn có thể sử dụng đối số end để đề cập rõ ràng chuỗi cần được nối ở cuối dòng.

Bất cứ điều gì bạn cần làm là thêm đối số end sẽ là chuỗi kết thúc.

Vì vậy, nếu bạn cung cấp một chuỗi trống, thì sẽ không có ký tự dòng mới và không có khoảng trắng nào sẽ được thêm vào đầu vào của bạn.

In không có dòng mới trong Python 2

Trong python 2, cách dễ nhất để tránh dòng mới kết thúc là sử dụng dấu phẩy ở cuối câu lệnh in của bạn

# no newlines but a space will be printed out
print "Hello World!",
print "My name is Nguyenpv"
# output
# Hello World! My name is Nguyenpv

Như bạn có thể thấy, mặc dù không có dòng mới, chúng tôi vẫn có một ký tự khoảng trắng giữa hai câu lệnh in.

Nếu bạn thực sự cần một không gian, thì đây là cách đơn giản nhất và đơn giản nhất để đi.

Nhưng nếu bạn muốn in mà không có dấu cách hoặc dòng mới thì sao?

Trong trường hợp này, bạn có thể sử dụng hàm sys.stdout.write từ module sys .

Hàm này sẽ chỉ in bất cứ thứ gì bạn nói rõ ràng để in.

Không có chuỗi kết thúc.

Không có phép thuật!

Hãy lấy một ví dụ

import sys

sys.stdout.write["Hello World!"]
sys.stdout.write["My name is Nguyenpv"]
# output
# Hello World!My name is Nguyenpv

Haiz, đoạn này thấy nhì nhằng, phức tạp hơn ngôn ngữ lập trình khác rồi đấy, ví dụ PHP, ở PHP thì chỉ cẩn dùng 1 hàm ví dụ “echo“, rồi muốn in như nào thì in  : ]]

Phần kết luận

Trong Python 3, bạn có thể sử dụng đối số end  được đặt tên  trong hàm in và gán một chuỗi trống cho đối số này để ngăn chặn dòng mới kết thúc.

Trong Python 2, bạn có thể sử dụng dấu phẩy sau tuyên bố in của bạn nếu bạn không nhớ không gian, hoặc bạn chỉ có thể sử dụng hàm  sys.stdout.write[]

Chúc các bạn học tốt.

Bài viết gốc được đăng tải tại nguyenpv.com

Có thể bạn quan tâm:

  • 11 tip học Python dành cho các “newbie”
  • Hàm trong Python là gì? Các hàm trong Python
  • 71 trích đoạn code Python cho các vấn đề hàng ngày của bạn

Xem thêm các vị trí tuyển dụng python hấp dẫn tại TopDev

Như chúng ta đã biết hàm print dùng để xuất dữ liệu ra màn hình trên các dòng khác nhau, có thể kết hợp với các ký tự đặc biệt, phép nhân xuất lặp chuỗi..:

print["Obama"]
print["Xin chào"]
print["Putin"]

Kết quả khi chạy:

Obama
Xin chào
Putin

Tuy nhiên trong quá trình xuất dữ liệu ra màn hình, đôi khi chúng ta muốn các thông tin hiển thị trên cùng 1 dòng dữ liêu. Python có hỗ trợ điều này, bằng cách thêm đối số end vào trong hàm print

print["Obama",end=' ']
print["Xin chào",end=' ']
print["Putin"]

đối số end=’ ‘ tức là khoảng cách ra 1 khoảng trắng rồi tới chuỗi tiếp theo

Ta có thể áp dụng để xuất thông báo mời người sử dụng nhập liệu từ bàn phím như sau:

print[end='Mời bạn nhập 1 số:']
a=input[]
print['số bạn vừa nhập = ',a]

print['Mời bạn nhập 1 số',end=':']
b=input[]
print['số bạn vừa nhập =',b]

Ở trên các bạn thấy Tui để end đằng trước hoặc end đằng sau, bạn dùng cách nào cũng được.

Ngoài ra Python còn hỗ trợ một số ký tự đặc biệt khi xuất dữ liệu ra màn hình, đó là:

\n ->xuống dòng

\t ->đẩy vào 1 tab

\’  hoặc \”->xuất trích dẫn

print["Quanh năm buôn bán ở mom sông"]
print["Nuôi đủ năm con với 1 chồng"]
print["\tLặn lội thân cò khi quãng vắng"]
print["\tEo sèo mặt nước buổi \"đò đông\""]
print["Một duyên hai nợ âu đành phận\nNăm nắng mười mưa há chẳng công"]

Kết quả:

Python còn có một tiện lợi trong hàm print là cho phép chúng xuất lặp một chuỗi nào đó liên tục mà không cần dùng vòng lặp, bằng cách dùng phép nhân *:

print['*'*20]
print["Mã\tTên\tPhone"]
print["01\tTèo\t0981234567"]
print["02\tTý\t0908730947"]
print["03\tTèo\t0949840836"]
print['*'*20]

ta có kết quả khi chạy chương trình:

Ở trên bạn thấy dòng lệnh print[‘*’*20] tức là ra lệnh cho chương trình xuất ‘*’ 20 lần, bạn quan sát kết quả có 2 dòng xuất toàn dấu * nhé.

Như vậy Tui đã trình bày xong cách sử dụng print để xuất dữ liệu ra màn hình cùng với việc kết hợp các ký tự đặc biệt trong Python. Các bạn nhớ làm và kiểm tra các kết quả nhé, áp dụng vào mục đích cụ thể của mình trong việc xuất dữ liệu.

Các bạn có thể tải Source code tại đây://www.mediafire.com/file/xem6qn9e7awwf18/HocPrint.py

Bài sau Tui sẽ tiếp tục trình bày về hàm print với việc định dạng chuỗi khi  xuất ra màn hình.

Chúc các bạn thành công!

Chủ Đề