Hướng dẫn how do i limit the length of a string in python? - làm cách nào để giới hạn độ dài của một chuỗi trong python?

Giả sử rằng stryng là một chuỗi mà chúng ta muốn cắt ngắn và nchars là số lượng ký tự mong muốn trong chuỗi đầu ra.

stryng = "sadddddddddddddddddddddddddddddddddddddddddddddddddd"
nchars = 10

Chúng ta có thể cắt ngắn chuỗi như sau:

def truncate(stryng:str, nchars:int):
    return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]

Kết quả cho một số trường hợp thử nghiệm nhất định được hiển thị dưới đây:

s = "sadddddddddddddddddddddddddddddd!"
s = "sa" + 30*"d" + "!"

truncate(s, 2)                ==  sa
truncate(s, 4)                ==  sadd
truncate(s, 10)               ==  sadd [...]
truncate(s, len(s)//2)        ==  sadddddddd [...]

Giải pháp của tôi tạo ra kết quả hợp lý cho các trường hợp thử nghiệm ở trên.

Tuy nhiên, một số trường hợp bệnh lý được hiển thị dưới đây:

Một số trường hợp bệnh lý!

truncate(s, len(s) - 3)()       ==  sadddddddddddddddddddddd [...]
truncate(s, len(s) - 2)()       ==  saddddddddddddddddddddddd [...]
truncate(s, len(s) - 1)()       ==  sadddddddddddddddddddddddd [...]
truncate(s, len(s) + 0)()       ==  saddddddddddddddddddddddddd [...]
truncate(s, len(s) + 1)()       ==  sadddddddddddddddddddddddddd [...
truncate(s, len(s) + 2)()       ==  saddddddddddddddddddddddddddd [..
truncate(s, len(s) + 3)()       ==  sadddddddddddddddddddddddddddd [.
truncate(s, len(s) + 4)()       ==  saddddddddddddddddddddddddddddd [
truncate(s, len(s) + 5)()       ==  sadddddddddddddddddddddddddddddd 
truncate(s, len(s) + 6)()       ==  sadddddddddddddddddddddddddddddd!
truncate(s, len(s) + 7)()       ==  sadddddddddddddddddddddddddddddd!
truncate(s, 9999)()             ==  sadddddddddddddddddddddddddddddd!

Notably,

  • Khi chuỗi chứa các ký tự dòng mới (
    def truncate(stryng:str, nchars:int):
        return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]
    
    0), có thể có một vấn đề.
  • Khi
    def truncate(stryng:str, nchars:int):
        return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]
    
    1, chúng ta nên in chuỗi
    def truncate(stryng:str, nchars:int):
        return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]
    
    2 mà không cố gắng in "
    def truncate(stryng:str, nchars:int):
        return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]
    
    3"

Dưới đây là một số mã khác:

import io

class truncate:
    """
        Example of Code Which Uses truncate:
        ```
            s = "\r"
            s = truncate(s, 10)()
            print(s)
                    ```
                Examples of Inputs and Outputs:
                        truncate(s, 2)()   ==  \r
                        truncate(s, 4)()   ==  \r
                    ```
                Other Notes:
                    Returns a modified copy of string input
                    Does not modify the original string
            """
    def __init__(self, x_stryng: str, x_nchars: int) -> str:
        """
        This initializer mostly exists to sanitize function inputs
        """
        try:
            stryng = repr("".join(str(ch) for ch in x_stryng))[1:-1]
            nchars = int(str(x_nchars))
        except BaseException as exc:
            invalid_stryng =  str(x_stryng)
            invalid_stryng_truncated = repr(type(self)(invalid_stryng, 20)())

            invalid_x_nchars = str(x_nchars)
            invalid_x_nchars_truncated = repr(type(self)(invalid_x_nchars, 20)())

            strm = io.StringIO()
            print("Invalid Function Inputs", file=strm)
            print(type(self).__name__, "(",
                  invalid_stryng_truncated,
                  ", ",
                  invalid_x_nchars_truncated, ")", sep="", file=strm)
            msg = strm.getvalue()

            raise ValueError(msg) from None

        self._stryng = stryng
        self._nchars = nchars

    def __call__(self) -> str:
        stryng = self._stryng
        nchars = self._nchars
        return (stryng[:nchars - 6] + " [...]")[:min(len(stryng), nchars)]

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:51:40 (UTC/GMT +8 giờ)

Python Basic: Bài tập-120 với giải pháp

Viết một chương trình Python để định dạng một chuỗi được chỉ định giới hạn độ dài của chuỗi.

Giải pháp mẫu:

Mã Python:

str_num = ""
print("Original string:",str_num)
print('%.6s' % str_num)
print('%.9s' % str_num)
print('%.10s' % str_num)

Đầu ra mẫu:

Original string: 
123456
123456789

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn (và nhận xét) thông qua Disqus.

Trước đây: Viết một chương trình Python để làm tròn một số dấu phẩy động đến số số thập phân được chỉ định. Write a Python program to round a floating-point number to specified number decimal places.
Next: Write a Python program to determine if variable is defined or not.

Mức độ khó của bài tập này là gì?

Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.

Python: Lời khuyên trong ngày

Giải nén các biến bằng toán tử splat:

>>> def test(x, y, z):
>>> 	print(x, y, z)  
>>> res = test(*[10, 20, 30]) 
10 20 30
>>> res = test(**{'x': 1, 'y': 2, 'z': 3} )
10 20 30


  • Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Giải pháp - Tham gia
  • Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
  • JavaScript Basic - Bài tập, Thực hành, Giải pháp
  • Java Array: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
  • Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C ++: Bài tập, Thực hành, Giải pháp
  • Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
  • Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
  • Công cụ chuyển đổi
  • JavaScript: HTML Mẫu xác thực


Làm thế nào để bạn giới hạn độ dài của một văn bản trong Python?

Sử dụng Chuỗi cú pháp [X: Y] để cắt một chuỗi bắt đầu từ Index X lên đến nhưng không bao gồm ký tự tại Index y.Nếu bạn chỉ muốn cắt chuỗi theo chiều dài trong Python chỉ sử dụng chuỗi [: length].use only string[: length].

Có giới hạn độ dài chuỗi trong Python không?

Chuỗi Python có chiều dài-prefix, do đó chiều dài của chúng bị giới hạn bởi kích thước của số nguyên giữ chiều dài của chúng và lượng bộ nhớ có sẵn trên hệ thống của bạn.their length is limited by the size of the integer holding their length and the amount of memory available on your system.

Làm cách nào để giảm kích thước của một chuỗi trong Python?

Thuật toán để nén chuỗi trong Python chọn ký tự đầu tiên từ chuỗi đầu vào (STR).Nối nó vào chuỗi nén.Đếm số lượng các lần xuất hiện tiếp theo của ký tự (tính bằng str) và nối số lượng vào chuỗi nén nếu chỉ là nhiều hơn 1.Pick the first character from the input string ( str ). Append it to the compressed string. Count the number of subsequent occurrences of the character (in str) and append the count to the compressed string if it is more than 1 only​.