Hướng dẫn lệnh in 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

Bài này sẽ trình bày tổng quan cho bạn về cú pháp Python cơ bản. Mục đích của bài là giúp bạn làm quen dần các khái niệm và thuật ngữ được sử dụng trong Python từ đó bạn có thể rút ra điểm giống và khác nhau với một số ngôn ngữ lập trình khác.

Nội dung chính

  • Định danh [identifier] trong Python
  • Các từ khóa trong Python
  • Dòng lệnh và độ thụt dòng lệnh trong Python
  • Các lệnh trên nhiều dòng trong Python
  • Comment trong Python
  • Sử dụng dòng trống trong Python
  • Các lệnh đa dòng trên một dòng đơn trong Python
  • Các nhóm lệnh đa dòng [còn được gọi là suite] trong Python
  • Tham số dòng lệnh trong Python

Định danh [identifier] trong Python

Một định danh [identifier] trong Python là một tên được sử dụng để nhận diện một biến, một hàm, một lớp, hoặc một đối tượng. Một định danh bắt đầu với một chữ cái từ A tới Z hoặc từ a tới z hoặc một dấu gạch dưới [_] được theo sau bởi 0 hoặc nhiều ký tự, dấu gạch dưới hoặc các chữ số [từ 0 tới 9].

Python không hỗ trợ các Punctuation char chẳng hạn như @, $ và % bên trong các định danh. Python là một ngôn ngữ lập trình phân biệt chữ hoa- chữ thường, do đó viettuts và Viettuts là hai định danh khác nhau trong Python. Dưới đây là một số qui tắc nên được sử dụng trong khi đặt tên các định danh:

  • Một định danh là một dãy ký tự hoặc chữ số.
  • Không có ký tự đặc biệt nào được sử dụng [ngoại trừ dấu gạch dưới] như một định danh. Ký tự đầu tiên có thể là chữ cái, dấu gạch dưới, nhưng không được sử dụng chữ số làm ký tự đầu tiên.
  • Từ khóa không nên được sử dụng như là một tên định danh [phần dưới sẽ trình bày về khác từ khóa này].
  • Tên lớp bắt đầu với một chữ cái hoa. Tất cả định danh khác bắt đầu với một chữ cái thường.
  • Bắt đầu một định danh với một dấu gạch dưới đơn chỉ rằng định danh đó là private.
  • Bắt đầu một định danh với hai dấu gạch dưới chỉ rằng định danh đó thực sự là private.
  • Nếu định danh cũng kết thúc với hai dấu gạch dưới, thì định danh này là một tên đặc biệt được định nghĩa bởi ngôn ngữ [ví dụ như __init__ chẳng hạn].

Các từ khóa trong Python

Bảng dưới liệt kê các từ khóa trong Python. Đây là các từ dành riêng và bạn không thể sử dụng chúng như là các hằng, biến hoặc cho bất kỳ tên định danh nào. Tất cả từ khóa trong Python là chỉ ở dạng chữ thường.

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

Dòng lệnh và độ thụt dòng lệnh trong Python

Python không cung cấp các dấu ngoặc nhọn[{}] để chỉ các khối code cho định nghĩa lớp hoặc hàm hoặc điều khiển luồng. Các khối code được nhận biết bởi độ thụt dòng code [indentation] trong Python và đây là điều bắt buộc.

Số khoảng trống trong độ thụt dòng là biến đổi, nhưng tất cả các lệnh bên trong khối phải được thụt cùng một số lượng khoảng trống như nhau. Ví dụ:

if True:
    print "True"
else:
  print "False"

if True:
    print "Answer"
    print "True"
else:
    print "Answer"
  print "False"

Do đó, trong Python thì tất cả các dòng liên tiếp nhau mà được thụt đầu dòng với cùng lượng khoảng trống như nhau sẽ tạo nên một khối. Trong ví dụ tiếp theo sẽ có các khối lệnh đa dạng:

Ghi chú: Bạn không cần cố hiểu vấn đề này ngay lập tức, bạn chỉ cần hiểu các khối code khác nhau ngay cả khi chúng không có các dấu ngoặc nhọn. Đây chính là điểm khác nhau giữa Python và ngôn ngữ khác.

import sys

try:
  # open file stream
  file = open[file_name, "w"]
except IOError:
  print "There was an error writing to", file_name
  sys.exit[]
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
  file_text = raw_input["Enter text: "]
  if file_text == file_finish:
    # close the file
    file.close
    break
  file.write[file_text]
  file.write["\n"]
file.close[]
file_name = raw_input["Enter filename: "]
if len[file_name] == 0:
  print "Next time please enter something"
  sys.exit[]
try:
  file = open[file_name, "r"]
except IOError:
  print "There was an error reading file"
  sys.exit[]
file_text = file.read[]
file.close[]
print file_text


Các lệnh trên nhiều dòng trong Python

Các lệnh trong Python có một nét đặc trưng là kết thúc với một newline [dòng mới]. Tuy nhiên, Python cho phép sử dụng ký tự \ để chỉ rõ sự liên tục dòng. Ví dụ:

total = item_one + \
        item_two + \
        item_three

Các lệnh được chứa bên trong các dấu ngoặc [], {}, hoặc [] thì không cần sử dụng ký tự \. Ví dụ:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Python chấp nhận trích dẫn đơn ['], kép ["] và trích dẫn tam [''' hoặc """] để biểu thị các hằng chuỗi, miễn là các trích dẫn này có cùng kiểu mở và đóng.

Trích dẫn tam [***] được sử dụng để trải rộng chuỗi được trích dẫn qua nhiều dòng. Dưới đây là tất cả các trích dẫn hợp lệ:

word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""

Comment trong Python

Python hỗ trợ hai kiểu comment đó là comment 1 dòng và nhiều dòng. Trong Python, một dấu # được sử dụng để comment đơn dòng. Tất cả ký tự ở sau dấu # và kéo dài cho đến hết dòng đó thì được coi là một comment và được bỏ qua bởi trình thông dịch. Ví dụ:

# đây là comment 1
print "Hello, Python!" # đây là comment 2

Chương trình trên sẽ cho kết quả:

Bạn cũng có thể gõ một comment trên cùng dòng với một lệnh hoặc biểu thức như sau:

age = 16 # đây cũng là một comment trong Python

Bạn có thể comment trên nhiều dòng như sau:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

Python cũng hỗ trợ kiểu comment thứ hai, đó là kiểu comment đa dòng được cho bên trong các trích dẫn tam, ví dụ:

# đây là comment 1 dòng
print "Hello Python"  
"""Đây là comment
   nhiều dòng"""


Sử dụng dòng trống trong Python

Một dòng mà chỉ chứa các khoảng trống trắng whitespace, có thể với một comment, thì được xem như là một dòng trống và Python hoàn toàn bỏ qua nó.

Trong một phiên thông dịch trong chế độ tương tác, bạn phải nhập một dòng trống để kết thúc một lệnh đa dòng.

Các lệnh đa dòng trên một dòng đơn trong Python

Dấu chấm phảy [;] cho phép xuất hiện nhiều lệnh trên một dòng đơn. Tất cả các lệnh được cung cấp này không bắt đầu một khối code mới. Dưới đây là ví dụ:

import sys; x = 'foo'; sys.stdout.write[x + '\n']


Các nhóm lệnh đa dòng [còn được gọi là suite] trong Python

Một nhóm các lệnh đơn, mà tạo một khối code đơn, được gọi là suite trong Python. Các lệnh phức hợp như if, while, def, và class cần một dòng header và một suite.

Các dòng header bắt đầu lệnh [với từ khóa] và kết thúc với một dầu hai chấm [:] và được theo sau bởi một hoặc nhiều dòng để tạo nên một suite. Ví dụ như:

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

Tham số dòng lệnh trong Python

Nhiều chương trình có thể được chạy để cung cấp cho bạn một số thông tin cơ bản về cách chúng nên được chạy. Python cho bạn khả năng để làm điều này với -h:

$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments [and corresponding environment variables]:
-c cmd : program passed in as string [terminates option list]
-d     : debug output from parser [also PYTHONDEBUG=x]
-E     : ignore environment variables [such as PYTHONPATH]
-h     : print this help message and exit

[ etc. ]

Bạn cũng có thể lập trình cho script của mình theo cái cách mà nó nên chấp nhận các tùy chọn khác nhau tùy theo cách bạn thiết lập. Để tìm hiểu thêm về tham số dòng lệnh, bạn có thể tham khảo bài tham số dòng lệnh trong Python. [Bạn nên tìm hiểu bài này sau khi bạn đã tìm hiểu qua về các khái niệm còn lại của Python.]

Ngoài ra, một điều cần nói đến đó là khi bạn gặp phải trường hợp chương trình hiển thị trên command line như sau:

raw_input["\n\nPress the enter key to exit."]

Lệnh này nói rằng bạn hãy nhấn phím Enter để thoát. Ở đây, "\n\n" là để tạo hai newline [dòng mới] trước khi hiển thị dòng thực sự. Khi người dùng nhấn phím enter, thì chương trình kết thúc. Lệnh này sẽ đợi cho đến khi nào bạn thực hiện một hành động nào đó, và điều này giữ cho cửa sổ console của bạn mở tới khi bạn tiếp tục thực hiện hành động.

Link tham khảo:

//www.tutorialspoint.com/python/python_basic_syntax.htm

Chủ Đề