Hướng dẫn how do you check for two values in python? - làm thế nào để bạn kiểm tra hai giá trị trong python?

Đầu tiên, một sự điều chỉnh cho điều kiện

if x == 0
if y == 0
if z == 0
5:

Bạn cần nói:

if x == 0 or y == 0 or z == 0:

Lý do là "hoặc" chia điều kiện thành các phần logic riêng biệt. Cách viết tuyên bố ban đầu của bạn, những phần đó là:

x
y
z == 0   // or 1, 2, 3 depending on the if statement

Phần cuối cùng là tốt --- kiểm tra xem Z == 0 chẳng hạn --- nhưng hai phần đầu tiên chỉ nói về cơ bản

if x == 0
if y == 0
if z == 0
6 và
if x == 0
if y == 0
if z == 0
7. Vì các số nguyên luôn đánh giá là
if x == 0
if y == 0
if z == 0
8 trừ khi chúng là 0, điều đó có nghĩa là phần đầu tiên của tình trạng của bạn luôn là
if x == 0
if y == 0
if z == 0
8 khi
if x == 0 or y == 0 or z == 0
0 hoặc
if x == 0 or y == 0 or z == 0
1 không bằng 0 [trong trường hợp Y luôn luôn điều kiện [vì cách
if x == 0
if y == 0
if z == 0
5 hoạt động] để luôn luôn là
if x == 0
if y == 0
if z == 0
8.

Để tránh điều đó, bạn cần đảm bảo tất cả các phần trong tình trạng của bạn [mỗi bên của

if x == 0
if y == 0
if z == 0
5] tự mình có ý nghĩa [bạn có thể làm điều đó bằng cách giả vờ rằng bên kia của câu lệnh
if x == 0
if y == 0
if z == 0
5 không tồn tại]. Đó là cách bạn có thể xác nhận liệu điều kiện
if x == 0
if y == 0
if z == 0
5 của bạn có được xác định chính xác hay không.

Bạn sẽ viết các câu lệnh riêng lẻ như vậy:

if x == 0
if y == 0
if z == 0

Điều đó có nghĩa là tiền phụ thuộc vào từ khóa

if x == 0
if y == 0
if z == 0
5 sẽ là:

if x == 0 or y == 0 or z == 0

Thứ hai, cách giải quyết vấn đề:

Về cơ bản, bạn muốn kiểm tra xem có bất kỳ biến nào phù hợp với số nguyên nhất định không và nếu vậy, hãy gán nó một chữ cái phù hợp với ánh xạ một-một. Bạn muốn làm điều đó cho một danh sách số nguyên nhất định để đầu ra là danh sách các chữ cái. Bạn sẽ làm điều đó như thế này:

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        

Tương tự, bạn có thể sử dụng danh sách hiểu để đạt được kết quả tương tự nhanh hơn:

def func[x, y, z]:

    return [ 
                letter 
                for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]
                if x == integer or y == integer or z == integer
           ]
    
    

Sử dụng từ khóa của "trong" để so sánh nhiều

Ảnh của Vladimir Kudinov trên unplash

Nếu bạn đã từng cần kiểm tra xem một biến có bằng một trong nhiều giá trị có thể không, thì bạn có thể viết một cái gì đó như thế này:

if x == 1 or x == 10 or x == 100:
pass

Chà, có một cách tốt hơn!

Hãy cùng đi qua cách sử dụng từ khóa

if x == 0 or y == 0 or z == 0
9 thay vì
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
0 để tạo lại biểu thức ở trên.

Từ khóa của người Viking là gì?

Từ khóa

if x == 0 or y == 0 or z == 0
9 có thể được sử dụng để tìm kiếm thông qua một chuỗi và sẽ trả về
if x == 0
if y == 0
if z == 0
8 hoặc
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
3 tùy thuộc vào việc tìm thấy toán hạng bên trái được tìm thấy.

Dưới đây, một ví dụ đơn giản, kiểm tra chữ cái

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
4 trong một chuỗi:

result = 'e' in 'The'
print[result] # True

Vì từ khóa

if x == 0 or y == 0 or z == 0
9 có thể được sử dụng với bất kỳ chuỗi nào, chúng tôi đặt tất cả các giá trị mà chúng tôi so sánh với biến của chúng tôi thành một chuỗi duy nhất. Câu hỏi là bây giờ, loại dữ liệu nào là tốt nhất?

Phản hồi ban đầu có thể là sử dụng danh sách:

if x in [1,10,100]:
pass

Điều này hoạt động tốt, mặc dù chúng ta có thể tạo ra hiệu suất tốt hơn bằng cách sử dụng một bộ hoặc thậm chí là một bộ:

# tuple example
if x in [1,10,100]:
pass
# set example
if x in {1,10,100}:
pass

Sử dụng từ khóa

if x == 0 or y == 0 or z == 0
9 không chỉ ít cú pháp hơn để loại ban đầu, nó còn dễ đọc và bảo trì hơn. Hãy thoải mái tạo bộ tuple của bạn trên một dòng riêng biệt và sử dụng nó trong câu lệnh
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
7, để giữ cho mã của bạn dễ đọc hơn.

x
y
z == 0   // or 1, 2, 3 depending on the if statement
0

Hãy nhớ rằng, kỹ thuật này chỉ phù hợp để so sánh bình đẳng. Tuy nhiên, bạn có thể đảo ngược biểu thức để kiểm tra hiệu quả cho bất bình đẳng:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
1

Khi đơn giản trở nên hống hách, hãy tìm cách viết mã ngắn gọn hơn, dễ đọc và có thể bảo trì.

Tôi hy vọng điều này là hữu ích, chia sẻ suy nghĩ và ý kiến ​​của bạn dưới đây!

Tl; dr: phiên bản

Để kiểm tra xem một biến là một trong nhiều giá trị, hãy sử dụng toán tử

if x == 0 or y == 0 or z == 0
9:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
2

Để kiểm tra xem một trong nhiều biến là một trong nhiều giá trị, hãy sử dụng danh sách hiểu và hàm

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
3

Kiểm tra nhiều biến so với một giá trị duy nhất và ngược lại

Trong Python, nếu bạn muốn xem liệu một biến có phải là một trong nhiều giá trị có thể hay không, bạn có thể sử dụng toán tử

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
0 như thế này:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
4

Python có cú pháp ngắn gọn hơn sử dụng toán tử

if x == 0 or y == 0 or z == 0
9 và nhiều giá trị được đóng gói trong một bộ tuple:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
2

Toán tử

if x == 0 or y == 0 or z == 0
9 thực sự kiểm tra xem giá trị trong
def func[x, y, z]:

    return [ 
                letter 
                for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]
                if x == integer or y == integer or z == integer
           ]
    
    
3 có ở bên phải của toán tử
if x == 0 or y == 0 or z == 0
9 không. Mã này dễ đọc hơn và trong hầu hết các trường hợp, khả năng đọc mã quan trọng hơn hiệu suất. Nhưng sử dụng
if x == 0 or y == 0 or z == 0
9 không hoạt động nhanh hơn một chút so với loạt các toán tử
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
0. Chúng ta có thể sử dụng các mô-đun
def func[x, y, z]:

    return [ 
                letter 
                for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]
                if x == integer or y == integer or z == integer
           ]
    
    
7 tích hợp của Python để xem có bao nhiêu giây chạy mã này mười triệu lần:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
6

Nếu bạn có trường hợp ngược lại và bạn có nhiều biến bạn cần kiểm tra so với một giá trị, bạn có thể trao đổi các cạnh trái và bên phải của toán tử

if x == 0 or y == 0 or z == 0
9. Vì vậy, thay vì sử dụng các toán tử
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
0 như thế này:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
7

... Bạn có thể viết mã bằng toán tử

if x == 0 or y == 0 or z == 0
9 như thế này:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
8

Kiểm tra nhiều biến so với nhiều giá trị

Nếu bạn có nhiều biến và bạn muốn xem liệu bất kỳ biến nào trong số này có khớp với một trong một số giá trị hay không, bạn có thể sử dụng danh sách hiểu và hàm

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9 tích hợp. Chúng ta hãy dành một chút thời gian để tìm hiểu về hai khái niệm này trước tiên.

Hàm

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9 có một danh sách hoặc tuple [hoặc bất kỳ giá trị có thể lặp lại nào khác] và trả về
if x == 0
if y == 0
if z == 0
8 nếu bất kỳ giá trị nào trong danh sách đó là
if x == 0
if y == 0
if z == 0
8. Nếu danh sách chỉ có giá trị
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
3 hoặc trống, nó sẽ trả về
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
3:

x
y
z == 0   // or 1, 2, 3 depending on the if statement
9

Ngoài ra còn có hàm

if x == 1 or x == 10 or x == 100:
pass
7 tích hợp trả về
if x == 0
if y == 0
if z == 0
8 nếu danh sách chỉ chứa các giá trị
if x == 0
if y == 0
if z == 0
8 hoặc là một danh sách trống. Nếu không,
if x == 1 or x == 10 or x == 100:
pass
7 trả về
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
3.

Danh sách toàn diện là một cú pháp Python ngắn để tạo các giá trị danh sách dựa trên danh sách hoặc tuple khác [hoặc bất kỳ giá trị nào khác có thể lặp lại].

Thông thường bạn sẽ sử dụng vòng lặp

result = 'e' in 'The'
print[result] # True
2 để tạo danh sách mới dựa trên các giá trị của danh sách khác. Ví dụ: tôi đang tạo một danh sách có tên
result = 'e' in 'The'
print[result] # True
3 có chứa các số nguyên trong danh sách
result = 'e' in 'The'
print[result] # True
4, nhưng nhân với
result = 'e' in 'The'
print[result] # True
5:

if x == 0
if y == 0
if z == 0
0

Một cách ngắn gọn hơn để viết mã này bằng Python là với sự hiểu biết danh sách. Lưu ý sự tương đồng giữa hiểu biết danh sách một dòng và mã vòng lặp

result = 'e' in 'The'
print[result] # True
2 đa dòng:

if x == 0
if y == 0
if z == 0
1

Để kiểm tra xem bất kỳ một trong nhiều biến có chứa bất kỳ một trong nhiều giá trị hay không, chúng tôi có thể sử dụng toàn bộ danh sách và toán tử

if x == 0 or y == 0 or z == 0
9 để tạo danh sách các giá trị Boolean
if x == 0
if y == 0
if z == 0
8 và
def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
3. Danh sách các booleans được tạo bởi danh sách hiểu dựa trên nếu giá trị của các biến nằm trong bộ thuật của các giá trị:

if x == 0
if y == 0
if z == 0
2

Chúng tôi có thể chuyển danh sách Booleans này cho hàm

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9 và xác định xem bất kỳ biến nào có khớp với bất kỳ giá trị nào không:

if x == 0
if y == 0
if z == 0
3

Đặt nhiều mã này vào một dòng kéo dài các giới hạn của khả năng đọc mã, nhưng nó ngắn gọn hơn là không sử dụng toàn bộ danh sách và

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9. Không có chúng, bạn phải sử dụng các vòng lặp
result = 'e' in 'The'
print[result] # True
2 lồng nhau và rất nhiều dòng mã mà nó không nhất thiết

if x == 0
if y == 0
if z == 0
4

Đó là rất nhiều mã để thực hiện một nhiệm vụ đơn giản. Việc hiểu danh sách và cách tiếp cận

def func[x, y, z]:

    result = []

    for integer, letter in zip[[0, 1, 2, 3], ['c', 'd', 'e', 'f']]:
        if x == integer or y == integer or z == integer:
            result.append[letter]
            
    return result
        
9 là ngắn gọn và dễ đọc hơn.

Bài Viết Liên Quan

Chủ Đề