Hướng dẫn python if not in string - python nếu không có trong chuỗi

Python có một chuỗi chứa phương thức phụ không?

99% trường hợp sử dụng sẽ được đề cập bằng từ khóa,

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3, trả về
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
4 hoặc
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
5:
of use cases will be covered using the keyword,
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3, which returns
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
4 or
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
5:

'substring' in any_string

Đối với trường hợp sử dụng nhận chỉ mục, hãy sử dụng

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
6 (trả về -1 về thất bại và có các đối số vị trí tùy chọn):

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)

hoặc

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
7 (như
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
8 nhưng làm tăng giá trị thất bại):

start = 100 
end = 1000
any_string.index('substring', start, end)

Giải trình

Sử dụng toán tử so sánh

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3 vì

  1. ngôn ngữ dự định sử dụng nó và
  2. Các lập trình viên Python khác sẽ mong đợi bạn sử dụng nó.
>>> 'foo' in '**foo**'
True

Điều ngược lại (bổ sung), mà câu hỏi ban đầu đã yêu cầu, là

start = 100 
end = 1000
any_string.index('substring', start, end)
0:

>>> 'foo' not in '**foo**' # returns False
False

Điều này về mặt ngữ nghĩa giống như

start = 100 
end = 1000
any_string.index('substring', start, end)
1 nhưng nó dễ đọc hơn và được cung cấp rõ ràng hơn trong ngôn ngữ như là một cải tiến khả năng đọc.

Tránh sử dụng start = 100 end = 1000 any_string.index('substring', start, end) 2

Phương pháp "Chứa" thực hiện hành vi cho

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3. Ví dụ này,

str.__contains__('**foo**', 'foo')

trả lại

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
4. Bạn cũng có thể gọi chức năng này từ thể hiện của SuperString:

'**foo**'.__contains__('foo')

Nhưng đừng. Các phương pháp bắt đầu với dấu gạch dưới được coi là không công khai về ngữ nghĩa. Lý do duy nhất để sử dụng điều này là khi thực hiện hoặc mở rộng chức năng

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3 và
start = 100 
end = 1000
any_string.index('substring', start, end)
0 (ví dụ: nếu phân lớp con
start = 100 
end = 1000
any_string.index('substring', start, end)
7):

class NoisyString(str):
    def __contains__(self, other):
        print(f'testing if "{other}" in "{self}"')
        return super(NoisyString, self).__contains__(other)

ns = NoisyString('a string with a substring inside')

và bây giờ:

>>> 'substring' in ns
testing if "substring" in "a string with a substring inside"
True

Không sử dụng start = 0 stop = len(any_string) any_string.find('substring', start, stop) 8 và start = 100 end = 1000 any_string.index('substring', start, end) 9 để kiểm tra "chứa"

Không sử dụng các phương thức chuỗi sau để kiểm tra "chứa":

>>> '**foo**'.index('foo')
2
>>> '**foo**'.find('foo')
2

>>> '**oo**'.find('foo')
-1
>>> '**oo**'.index('foo')

Traceback (most recent call last):
  File "", line 1, in 
    '**oo**'.index('foo')
ValueError: substring not found

Các ngôn ngữ khác có thể không có phương pháp để kiểm tra trực tiếp các chất nền, và do đó bạn sẽ phải sử dụng các loại phương thức này, nhưng với Python, việc sử dụng toán tử so sánh

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3 sẽ hiệu quả hơn nhiều.

Ngoài ra, đây không phải là sự thay thế thả vào cho

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3. Bạn có thể phải xử lý các trường hợp ngoại lệ hoặc
>>> 'foo' in '**foo**'
True
2 và nếu họ trả lại
>>> 'foo' in '**foo**'
True
3 (vì họ tìm thấy chất nền lúc đầu), cách giải thích boolean là
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
5 thay vì
start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
4.

Nếu bạn thực sự có nghĩa là

>>> 'foo' in '**foo**'
True
6 thì hãy nói nó.

So sánh hiệu suất

Chúng ta có thể so sánh nhiều cách khác nhau để hoàn thành cùng một mục tiêu.

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
0

Và bây giờ chúng ta thấy rằng sử dụng

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
3 nhanh hơn nhiều so với những người khác. Ít thời gian hơn để thực hiện một hoạt động tương đương là tốt hơn:

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
1

Làm thế nào start = 0 stop = len(any_string) any_string.find('substring', start, stop) 3 có thể nhanh hơn start = 100 end = 1000 any_string.index('substring', start, end) 2 nếu start = 0 stop = len(any_string) any_string.find('substring', start, stop) 3 sử dụng start = 100 end = 1000 any_string.index('substring', start, end) 2?

Đây là một câu hỏi tiếp theo tốt.

Chúng ta hãy tháo rời các chức năng với các phương pháp quan tâm:

start = 0
stop = len(any_string)
any_string.find('substring', start, stop)
2

Vì vậy, chúng tôi thấy rằng phương pháp

>>> 'foo' not in '**foo**' # returns False
False
2 phải được tra cứu riêng và sau đó được gọi từ máy ảo Python - điều này sẽ giải thích đầy đủ sự khác biệt.

Làm thế nào để bạn kiểm tra xem một ký tự không có trong một chuỗi trăn?

Cách đơn giản và nhanh nhất để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python là toán tử "trong".Toán tử này trả về true nếu chuỗi chứa các ký tự, nếu không, nó sẽ trả về sai."in" operator . This operator returns true if the string contains the characters, otherwise, it returns false .

Có! = Làm việc với chuỗi Python?

Để tiếp tục nắm bắt ý tưởng đúng hoặc sai được trả về khi sử dụng toán tử! =, Bạn nên luôn luôn nhớ rằng giá trị sẽ đúng nếu các toán hạng không giống nhau và sai nếu các toán hạng là như nhau.Toán tử! = Cũng có thể được sử dụng để so sánh các chuỗi, từ điển, bộ dữ liệu và bộ.The != operator can also be used to compare Strings, Dictionaries, Tuples and Sets.

Không phải là Chuỗi chức năng Python?

Có 2 cách để kiểm tra không phải là chuỗi trong Python.Đầu tiên sử dụng hàm isInstance () và một hàm khác là sử dụng hàm loại với satatament.isinstance() function and another one is use type function with an if satatament.

Làm thế nào để bạn kiểm tra xem một chuỗi con không có trong một chuỗi?

Chúng ta cũng có thể sử dụng hàm find () Chuỗi để kiểm tra xem chuỗi có chứa chuỗi con hay không.Hàm này trả về vị trí chỉ mục đầu tiên nơi tìm thấy chuỗi con, khác trả về -1.use string find() function to check if string contains a substring or not. This function returns the first index position where substring is found, else returns -1.