Làm cách nào để loại bỏ khoảng cách dòng mới trong python?

Hàm tích hợp print[] của Python được sử dụng để in nội dung đã cho bên trong dấu nhắc lệnh. Chức năng mặc định của Python print là nó thêm một ký tự xuống dòng ở cuối

Trong hướng dẫn Python này, bạn sẽ học

Hoạt động của hàm Normal print[]

Hàm print[] dùng để hiển thị nội dung trong command prompt hoặc console

Đây là một ví dụ cho thấy hoạt động của Python print không có chức năng dòng mới

print["Hello World"]
print["Welcome to Guru99 Tutorials"]

đầu ra

Hello World
Welcome to Guru99 Tutorials

Trong kết quả đã cho, bạn có thể thấy rằng các chuỗi mà chúng tôi đã cung cấp trong print[] được hiển thị trên các dòng riêng biệt. Chuỗi “Xin chào thế giới” được in đầu tiên và “Chào mừng đến với Hướng dẫn của Guru99” được in trên dòng tiếp theo

Làm cách nào để in mà không có dòng mới trong Python?

Từ Python 3+, có một tham số bổ sung được giới thiệu cho print[] được gọi là end=. Tham số này đảm nhiệm việc xóa dòng mới được thêm theo mặc định trong print[]

Trong ví dụ in Python 3 không có dòng mới bên dưới, chúng tôi muốn các chuỗi in trên cùng một dòng trong Python. Để làm việc đó, chỉ cần thêm end=”” bên trong print[] như trong ví dụ bên dưới

print["Hello World ", end=""]
print["Welcome to Guru99 Tutorials"]

đầu ra

Hello World Welcome to Guru99 Tutorials

Chúng tôi đang nhận được đầu ra mà chúng tôi muốn, nhưng không có khoảng cách giữa các chuỗi. Chuỗi Hello World và Welcome to Guru99 Tutorials được in liền nhau mà không có bất kỳ khoảng trống nào

Để thêm dấu cách hoặc ký tự đặc biệt hoặc thậm chí chuỗi sẽ được in, bạn có thể thêm đối số end=””, như trong ví dụ dưới đây

print["Hello World ", end=" "]
print["Welcome to Guru99 Tutorials"]

Vì vậy, tôi ở đây, chúng tôi đã thêm một khoảng trắng vào đối số kết thúc, ví dụ [end="”]. Bây giờ, nếu bạn thấy đầu ra, bạn sẽ thấy một khoảng trống giữa Hello World và Welcome to Guru99 Tutorials

đầu ra

Hello World  Welcome to Guru99 Tutorials

Bạn không chỉ có thể cung cấp khoảng trống cho đối số kết thúc mà còn có thể chỉ định một chuỗi bạn muốn in giữa các chuỗi đã cho. Vì vậy, đây là một ví dụ về nó

print["Hello World ", end="It's a nice day! "]
print["Welcome to Guru99 Tutorials"]

đầu ra

Hello, World It's a nice day!  Welcome to Guru99 Tutorials

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

Để in các chuỗi mà không cần dòng mới, trong python2. x bạn sẽ phải thêm dấu phẩy [,] vào cuối câu lệnh in như hình bên dưới

________số 8_______

đầu ra

Hello World  Welcome to Guru99 Tutorials

Sử dụng mô-đun hệ thống Python

Tuy nhiên, một phương pháp khác mà bạn có thể sử dụng để in mà không cần dòng mới trong Python là mô-đun tích hợp có tên là sys

Đây là một ví dụ hoạt động cho thấy cách sử dụng mô-đun sys để in mà không cần chuỗi Python dòng mới

Để làm việc với mô-đun sys, trước tiên, hãy nhập mô-đun sys bằng từ khóa nhập. Tiếp theo, hãy sử dụng thiết bị xuất chuẩn. write[] có sẵn bên trong mô-đun sys, để in các chuỗi của bạn

Hello World
Welcome to Guru99 Tutorials
0

đầu ra

Hello World Welcome to Guru99 Tutorials

Sử dụng print[] để in danh sách không có dòng mới

Xem xét một danh sách các mục chẳng hạn. mylist = [“PHP”, JAVA”, “C++”, “C”, “PYTHON”] và bạn muốn in các giá trị bên trong danh sách bằng vòng lặp for. Vì vậy, ở đây bạn có thể sử dụng print[] để hiển thị các giá trị bên trong danh sách như trong ví dụ bên dưới

Hello World
Welcome to Guru99 Tutorials
2

đầu ra

Hello World
Welcome to Guru99 Tutorials
3

Đầu ra hiển thị các mục danh sách, từng mục được in lần lượt trên một dòng mới. Nếu bạn muốn tất cả các mục trong danh sách trong cùng một dòng thì sao?

Hello World
Welcome to Guru99 Tutorials
4

đầu ra

Hello World
Welcome to Guru99 Tutorials
5

In mẫu sao [*] không có dòng mới và dấu cách

Ví dụ về in Python không có dòng mới sẽ sử dụng hàm print[] để in sao[*] trên cùng một dòng bằng vòng lặp for

Trong bài viết này, bạn sẽ chỉ thấy các kỹ thuật quan trọng nhất, chẳng hạn như loại bỏ các khoảng trắng ở đầu và cuối [cũng như các khoảng trắng bên trong chuỗi]. Bạn cũng sẽ tìm hiểu cách xóa tab, dòng mới, ký tự xuống dòng [CRLF] và các ký tự khác. Và chúng tôi sẽ không sử dụng gì khác ngoài các phương thức gốc và biểu thức chính quy—không yêu cầu thư viện bên ngoài

Đến cuối bài viết này, bạn sẽ thành thạo

Cách cắt các ký tự từ một chuỗi

Cắt xén một chuỗi có nghĩa là xóa một số ký tự nhất định khỏi đầu, cuối hoặc cả hai bên của chuỗi. Xóa các ký tự không mong muốn giúp so sánh các chuỗi dễ dàng hơn và có thể ngăn các sự cố khó gỡ lỗi

Bạn có thể xóa bất kỳ loại ký tự o nào, nhưng thông thường điều chúng tôi quan tâm là xóa khoảng trống, dòng mới, dấu xuống dòng [CRLF], tab và các ký hiệu đặc biệt khác

Trong phần này, chúng ta sẽ xem cách xóa khoảng trắng ở đầu hoặc ở cuối, khoảng trắng, ký tự xuống dòng, ký tự xuống dòng [CRLF] và tab

Tước khoảng trắng hàng đầu từ đầu chuỗi

Lớp

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
6 có một phương pháp rất thuận tiện để cắt bớt các khoảng trắng ở đầu có tên , một cách viết tắt của "dải trái", vì nó cắt một chuỗi từ phía bên trái. Bạn có thể nghĩ về nó như một phần cắt bên trái

>>> '   hello   '.lstrip[]
'hello   '

Khi gọi

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
7 mà không có đối số, nó sẽ xóa tất cả các khoảng trắng từ trái sang phải. Nhưng nếu tất cả những gì bạn muốn là loại bỏ ký tự đầu tiên, thì có hai cách để thực hiện việc này. Cái đầu tiên giả định rằng sẽ luôn có ít nhất một khoảng trắng ở đầu chuỗi. Nếu thế thì bác cứ thái đi

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'

Nếu không có gì đảm bảo về điều đó, trước tiên chúng tôi cần kiểm tra xem chuỗi có bắt đầu bằng dấu cách không

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'

Tước khoảng trắng ở cuối chuỗi

Cách để xóa dấu cách ở cuối chuỗi là sử dụng

Phương pháp này mong đợi một danh sách các ký tự và cắt chuỗi từ bên phải. Nó xóa tất cả các ký tự khớp với một trong những ký tự bạn đã vượt qua và dừng ngay khi nó không thể khớp nữa. Theo mặc định,

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
0 sẽ xóa khoảng trống nếu bạn không chuyển bất kỳ thứ gì vào đó. Bạn có thể nghĩ về nó như một trang trí bên phải

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'

Đôi khi bạn có thể chỉ muốn cắt ký tự cuối cùng của chuỗi. Và chúng ta có thể sử dụng logic tương tự từ ví dụ trước. Kiểm tra xem ký tự cuối cùng có phải là khoảng trắng không và sử dụng lát cắt để xóa ký tự đó

>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''

Xóa khoảng trắng khỏi đầu và cuối chuỗi

Nếu tất cả những gì bạn muốn là xóa khoảng trắng khỏi đầu và cuối chuỗi, sẽ phục vụ bạn tốt hơn

Phương pháp này cắt cả hai bên của chuỗi. Và cũng giống như

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
7 và
>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
9, nếu bạn có thể chuyển bất kỳ tổ hợp ký tự nào làm đối số, nó sẽ xóa chúng khỏi cả hai đầu

⚠️ CẢNH BÁO ⚠️. Một quan niệm sai lầm phổ biến là nghĩ rằng có hàm trim[] trong Python

# by default, strip removes whitespaces
>>> '   hello   '.strip[]
'hello'
# but you can also strip other character
>>> '***hello***'.strip['*']
'hello'

Cách cắt dòng mới

Chúng ta đã thấy cách

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 có thể xóa các khoảng trống ở cả hai phía của chuỗi. Tôi cũng đã đề cập rằng phương thức này nhận một đối số ký tự mà bạn có thể sử dụng để chuyển tổ hợp ký tự mà bạn muốn cắt

Để cắt các ngắt dòng, bạn có thể vượt qua

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
5 và nó sẽ loại bỏ tất cả các dòng mới từ cả hai phía của chuỗi

>>> s = """
.. 
.. 
..  hello
.. 
.. 
.. """
>>> s
'\n\n\n hello\n\n\n'
>>> s.strip['\n']
' hello'

Làm thế nào để cắt giảm trở lại vận chuyển [CRLF]

Trả về vận chuyển [CR] và Nguồn cấp dữ liệu theo dòng [LF] không gì khác hơn là một ký tự xuống dòng. Chúng được đại diện bởi sự nối của

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
6 và
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
5 tạo thành
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
8. Đây là cách Microsoft Windows, Symbian OS và các hệ điều hành không phải Unix khác đại diện cho một dòng mới [nguồn]

Xóa chúng khỏi một chuỗi cũng giống như xóa một dòng mới. Bạn cung cấp

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 với
>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
8 và phương pháp thực hiện công việc của nó

>>> s = "  hello world\r\n\r\n"
>>> print[s]
  hello world


>>> s.strip['\r\n']
'  hello world'

Cách cắt các tab

Nếu bạn đang làm theo hướng dẫn này ngay từ đầu, bạn có thể đã biết cách thực hiện việc này. Việc cắt các tab từ một chuỗi trong Python cũng giống như các ký tự khác, bạn sử dụng

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 và chuyển chuỗi '\t' cho nó

>>> s = "\t\t\t  hello  world \t"       
>>> s
'\t\t\t  hello  world \t'
>>> print[s]
              hello  world     
>>> s.strip['\t']
'  hello  world '

Và đó là nó

Cách cắt tổ hợp các ký tự từ một chuỗi

Như tôi đã đề cập trước đây,

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 lấy đối số là một chuỗi, không chỉ một ký tự đơn lẻ. Chuỗi ký tự này là sự kết hợp của tất cả các ký tự bạn muốn xóa khỏi đầu và cuối chuỗi của mình

>>> s = "  \ns hello world \n    s"
>>> s    
'  \ns hello world \n    s'
>>> print[s]

s hello world 
    s
>>> s.strip['\n s']
'hello world'

Cách xóa nhiều khoảng trắng bên trong một chuỗi

Đôi khi bạn muốn làm nhiều việc hơn là cắt xén, giả sử bạn muốn xóa các ký tự bên trong chuỗi. Có hai cách để làm điều này. một là chỉ loại bỏ các bản sao;

Chỉ loại bỏ các bản sao

Để chỉ xóa các ký tự trùng lặp, bạn có thể sử dụng mô-đun regex

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
3

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
0

Phương pháp này loại bỏ tất cả các khoảng trắng liên tiếp. Điều gì sẽ xảy ra nếu bạn không chỉ muốn làm điều đó mà còn cắt chuỗi bằng cách xóa các khoảng trống ở đầu và cuối?

Một cách là tách chuỗi và sau đó nối lại như vậy

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
1

Xóa tất cả khoảng trắng

Bây giờ, nếu bạn muốn loại bỏ tất cả khoảng trắng trong chuỗi của mình, hãy sử dụng regex hoặc gọi phương thức

Sử dụng
>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
3 [mô-đun regex]

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
2

Sử dụng
>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
6

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
3

Làm thế nào để tước một danh sách các chuỗi

Cắt một danh sách các chuỗi gần giống như cắt một chuỗi riêng lẻ. Sự khác biệt duy nhất là bạn phải lặp lại danh sách và gọi phương thức

>>> def strip_first[s: str, ch: str = ' '] -> str:
     if s and s[0] == ch:
         return s[1:]
     return s

>>> strip_first['hello']
'hello'

>>> strip_first['   hello']
 '  hello'
1 trên mỗi phương thức. Bạn làm như vậy bằng cách sử dụng khả năng hiểu danh sách, chẳng hạn, để trả về một danh sách mới với tất cả các chuỗi được cắt bớt

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
4

Cách tách một mảng chuỗi [Numpy]

Việc sử dụng Numpy cho các nhiệm vụ khoa học dữ liệu là rất phổ biến do hiệu suất và tính dễ sử dụng của nó

Nếu bạn có một chuỗi các chuỗi và muốn cắt từng chuỗi, Numpy đi kèm với triển khai vector hóa hiệu quả của

Trên thực tế, nó cũng có

>>> '   hello   '.rstrip[]
'   hello'
>>> '***hello***'.rstrip['*']
'***hello'
9,
>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
0,
>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
1 và nhiều thao tác chuỗi khác

Các phiên bản vector hóa hoạt động hơi khác một chút, chúng không phải là một phương thức mà là một chức năng trong mô-đun

>>> def strip_last[s: str, ch: str = ' '] -> str:
     if s and s[-1] == ch:
         return s[:-1]
     return s


>>> strip_last['hello']
'hello'

>>> strip_last['hello ']
'hello'

>>> strip_last['']
''
2. Vì vậy, bạn phải chuyển mảng và danh sách ký tự bạn muốn cắt

>>> s = '  hello'
>>> s = s[1:]
>>> s
' hello'
5

Phần kết luận

Trong bài đăng này, bạn đã học được một số cách cắt chuỗi trong Python, bao gồm mảng chuỗi. Python cho phép chúng ta loại bỏ các ký tự đầu và cuối một cách dễ dàng. Và nếu thay vì xóa các ký tự thừa ở mỗi bên, bạn muốn xóa các ký tự bên trong, bạn có thể tin tưởng vào mô-đun regex. Tôi hy vọng bạn thấy bài viết này hữu ích và hẹn gặp lại bạn lần sau

Người giới thiệu

ngăn xếp chồng lên nhau. com/câu hỏi/761804/how-do-i

ngăn xếp chồng lên nhau. com/câu hỏi/8270092/xóa-

ngăn xếp chồng lên nhau. com/câu hỏi/1546226/là-có

Các bài viết khác bạn có thể thích

  • Cách chọn giữa isdigit[], isdecimal[] và isnumeric[] trong Python

  • Cách so sánh hai chuỗi trong Python [theo 8 cách dễ dàng]

  • cột trụ. Cách khắc phục "c0209. định dạng một chuỗi thông thường có thể là chuỗi f [xem xét sử dụng chuỗi f]"

Chủ Đề