Toán tử in trong python trả về cái gì?

Để lấy giá trị từ một hàm trong bất kỳ ngôn ngữ lập trình nào, chúng ta sử dụng câu lệnh return(). Tương tự như vậy, trong Python, câu lệnh return() được sử dụng để thoát khỏi một hàm và trả về một giá trị từ một hàm. Trong hướng dẫn này, chúng ta sẽ đọc về nhiều cách khác nhau để sử dụng các câu lệnh return() trong Python

Mục lục

  1. Giới thiệu về câu lệnh return()
  2. Trả về nhiều giá trị trong Python
  3. Đối số trong hàm return()
  4. Hàm trả về một hàm khác
  5. Bớt tư tưởng

trả về () trong Python

Câu lệnh return(), giống như trong các ngôn ngữ lập trình khác, kết thúc lời gọi hàm và trả về kết quả cho người gọi. Nó là một thành phần quan trọng trong bất kỳ hàm hoặc phương thức nào trong mã bao gồm từ khóa trả về và giá trị sẽ được trả về sau đó
Một số điểm cần nhớ khi sử dụng return()

  • Các câu lệnh sau câu lệnh return() không được thực thi
  • không thể sử dụng câu lệnh return() bên ngoài chức năng
  • Nếu câu lệnh return() không có bất kỳ biểu thức nào, thì giá trị NONE được trả về

Cú pháp return() trong Python


        def func_name():
        statements....


        return [expression]
    

Sử dụng câu lệnh return() để trả về nhiều giá trị trong Python

Python cũng cung cấp tùy chọn trả về nhiều giá trị từ một hàm và để làm điều đó, người dùng chỉ cần thêm nhiều giá trị trả về được phân tách bằng dấu phẩy. Còn được gọi là một tuple, có thể được tạo có hoặc không sử dụng dấu ()

Đầu vào


        def statFun(a, b):
        difference = a-b
        percent_diff = (difference/a)*100
        return difference, percent_diff;


        difference, percent_diff = statFun()
        print (difference)
        print (percent_diff)
    

Ở đây, hàm statFun() cung cấp cho các giá trị và bằng cách sử dụng tuple, chúng tôi trả về cả hai giá trị

đầu ra


        8
        20
    

return() trong Python với một đối số

Trong Python, các đối số có thể được sử dụng với câu lệnh trả về. Để bắt đầu, đối số là tham số do người dùng cung cấp và như chúng ta biết, đối số là (các) giá trị đầu vào do người dùng cung cấp cho hàm

Đầu vào


        def divNum(a, b):
            if b != 0
                return a/b;
        else:
            return 0;

        print (divNum(4, 2))
        print (divNum(2, 0)) 
    

Ở đây, hàm divNum() chấp nhận hai đối số và nếu đối số thứ hai khác 0, nó sẽ chia chúng nếu không trả về 0

đầu ra


        2
        0
    

Hàm trả về một hàm khác trong Python

Như chúng ta đã biết, các hàm được coi là đối tượng hạng nhất trong Python, do đó chúng ta có thể trả về một hàm từ một hàm khác. Đối tượng hạng nhất là một đối tượng có thể được gán cho một biến, được truyền dưới dạng đối số cho hàm hoặc được sử dụng làm giá trị trả về trong hàm
Một hàm lấy một hàm làm đối số, trả về một hàm dưới dạng kết quả hoặc cả hai được gọi là hàm bậc cao hơn

Đầu vào


        def func_1(a):
            def func_2(b):
                return a-b
            return func_2

        x = func_1(100)
        print ("The value of a-b is", x(50))

        def another_func(a):
            return a*10

        def func():
            return another_func

        y = func()
        print ("\nThe value of a*b is" y(10))
    

đầu ra


        The value of a-b is 50
        The value of a*b is 100
    

Bớt tư tưởng

Câu lệnh return gửi bất kỳ đối tượng nào từ hàm trở lại mã người gọi. Vì câu lệnh return là một phần quan trọng của bất kỳ hàm hoặc phương thức nào, nếu bạn học cách sử dụng nó đúng cách, bạn có thể chuyển sang các mã phức tạp. Mọi người có thể tìm hiểu thêm về các khái niệm Python tại đây

Có rất nhiều chỗ bạn sẽ thấy

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 được sử dụng trong Python. Hai toán tử này đôi khi có thể hơi bí ẩn, đối với cả những người mới lập trình và những người chuyển từ nhiều ngôn ngữ lập trình khác có thể không có các toán tử hoàn toàn tương đương. Tôi muốn thảo luận về những toán tử đó là gì và nhiều cách chúng được sử dụng

Các toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 đã phát triển về khả năng qua nhiều năm và tôi sẽ thảo luận về tất cả các cách mà bạn hiện có thể sử dụng các toán tử này và lưu ý cách sử dụng nào chỉ hoạt động trong các phiên bản Python hiện đại. Vì vậy, nếu bạn đã học
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 vào thời của Python 2, tôi khuyên bạn ít nhất nên đọc lướt qua bài viết này vì Python 3 đã thêm rất nhiều cách sử dụng mới cho các toán tử này

Nếu bạn mới sử dụng Python và bạn chưa quen với các đối số từ khóa (a. k. a. đối số được đặt tên), trước tiên tôi khuyên bạn nên đọc bài viết của mình về đối số từ khóa trong Python

Những gì chúng ta không nói về

Khi tôi thảo luận về

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 trong bài viết này, tôi đang nói về các toán tử tiền tố
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9, không phải toán tử trung tố

Vì vậy, tôi không nói về phép nhân và lũy thừa

1
2
3
4
>>> 2 * 5
10
>>> 2 ** 5
32

Thế chúng ta đang nói về vấn đề gì vậy?

Chúng ta đang nói về các toán tử tiền tố

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9, đó là toán tử
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 được sử dụng trước một biến. Ví dụ

1
2
3
4
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18

Hai trong số các cách sử dụng của

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 được hiển thị trong mã đó và không có cách sử dụng nào của
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 được hiển thị

Điêu nay bao gôm

  1. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    8 và
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    9 để truyền đối số cho một hàm
  2. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    8 và
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    9 để nắm bắt các đối số được truyền vào một hàm
  3. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    8 để chấp nhận các đối số chỉ có từ khóa
  4. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    8 để chụp các mục trong quá trình giải nén bộ dữ liệu
  5. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    8 để giải nén các lần lặp vào danh sách/bộ
  6. Sử dụng
    >>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
    >>> print(fruits[0], fruits[1], fruits[2], fruits[3])
    lemon pear watermelon tomato
    >>> print(*fruits)
    lemon pear watermelon tomato
    
    9 để giải nén từ điển thành các từ điển khác

Ngay cả khi bạn nghĩ rằng bạn đã quen thuộc với tất cả các cách sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 này, tôi khuyên bạn nên xem xét từng khối mã bên dưới để đảm bảo rằng chúng đều là những thứ bạn quen thuộc. Các nhà phát triển cốt lõi của Python đã tiếp tục bổ sung các khả năng mới cho các toán tử này trong vài năm qua và thật dễ dàng bỏ qua một số cách sử dụng mới hơn của
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9

Dấu hoa thị để giải nén vào lệnh gọi hàm

Khi gọi một hàm, toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 có thể được sử dụng để giải nén một iterable vào các đối số trong lệnh gọi hàm

1
2
3
4
5
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato

Dòng

1
2
7 đó đang chuyển tất cả các mục trong danh sách
1
2
8 vào lệnh gọi hàm
1
2
9 dưới dạng các đối số riêng biệt mà chúng ta thậm chí không cần biết có bao nhiêu đối số trong danh sách

Toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 không chỉ là đường cú pháp ở đây. Khả năng gửi tất cả các mục trong một lần lặp cụ thể dưới dạng các đối số riêng biệt sẽ không thể thực hiện được nếu không có
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8, trừ khi danh sách có độ dài cố định

Đây là một ví dụ khác

1
2
3
4
5
def transpose_list(list_of_lists):
    return [
        list(row)
        for row in zip(*list_of_lists)
    ]

Ở đây, chúng tôi đang chấp nhận một danh sách các danh sách và trả về một danh sách các danh sách "được chuyển đổi"

1
2
>>> transpose_list([[1, 4, 7], [2, 5, 8], [3, 6, 9]])
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 thực hiện tương tự, nhưng với các đối số từ khóa. Toán tử
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 cho phép chúng ta lấy một từ điển các cặp khóa-giá trị và giải nén nó thành các đối số từ khóa trong một lệnh gọi hàm

1
2
3
4
>>> 2 * 5
10
>>> 2 ** 5
32
1

Theo kinh nghiệm của tôi, việc sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 để giải nén các đối số từ khóa thành một lệnh gọi hàm không đặc biệt phổ biến. Nơi tôi thấy điều này nhiều nhất là khi thực hành thừa kế. cuộc gọi đến
>>> transpose_list([[1, 4, 7], [2, 5, 8], [3, 6, 9]])
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
5 thường bao gồm cả
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9

Cả

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 đều có thể được sử dụng nhiều lần trong lệnh gọi hàm, kể từ Python 3. 5

Sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 nhiều lần đôi khi có thể hữu ích

1
2
3
4
>>> 2 * 5
10
>>> 2 ** 5
32
3

Sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 nhiều lần trông giống nhau

>>> 2 * 5
10
>>> 2 ** 5
32
4
>>> 2 * 5
10
>>> 2 ** 5
32
5

Tuy nhiên, bạn cần cẩn thận khi sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 nhiều lần. Các hàm trong Python không thể có cùng một đối số từ khóa được chỉ định nhiều lần, do đó, các khóa trong mỗi từ điển được sử dụng với
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 phải khác biệt, nếu không sẽ xảy ra ngoại lệ

Dấu hoa thị để đóng gói các đối số được cung cấp cho chức năng

Khi xác định hàm, toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 có thể được sử dụng để nắm bắt số lượng đối số vị trí không giới hạn được cung cấp cho hàm. Các đối số này được ghi vào một Tuple

1
2
3
4
>>> 2 * 5
10
>>> 2 ** 5
32
7

Hàm này chấp nhận bất kỳ số lượng đối số nào

>>> 2 * 5
10
>>> 2 ** 5
32
8
>>> 2 * 5
10
>>> 2 ** 5
32
9

Các hàm

1
2
9 và
>>> 2 * 5
10
>>> 2 ** 5
32
06 của Python chấp nhận bất kỳ số lượng đối số vị trí nào. Việc sử dụng đóng gói đối số này của
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 cho phép chúng tôi tạo chức năng của riêng mình, như
1
2
9 và
>>> 2 * 5
10
>>> 2 ** 5
32
06, chấp nhận bất kỳ số lượng đối số nào

Toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 cũng có một mặt khác của nó. chúng ta có thể sử dụng
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 khi xác định hàm để nắm bắt bất kỳ đối số từ khóa nào được cung cấp cho hàm vào từ điển

>>> 2 * 5
10
>>> 2 ** 5
32
8
1
2
3
4
1

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 đó sẽ nắm bắt mọi đối số từ khóa mà chúng tôi cung cấp cho chức năng này vào một từ điển mà các đối số
>>> 2 * 5
10
>>> 2 ** 5
32
13 đó sẽ tham chiếu

1
2
3
4
1
2
3
4
3

Đối số vị trí với đối số chỉ từ khóa

Kể từ Python 3, giờ đây chúng ta có một cú pháp đặc biệt để chấp nhận các đối số chỉ từ khóa cho các hàm. Các đối số chỉ có từ khóa là các đối số hàm chỉ có thể được chỉ định bằng cú pháp từ khóa, nghĩa là chúng không thể được chỉ định theo vị trí

Để chấp nhận các đối số chỉ có từ khóa, chúng ta có thể đặt các đối số được đặt tên sau cách sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 khi xác định chức năng của chúng ta

1
2
3
4
5
1
2
3
4
5

Chức năng trên có thể được sử dụng như thế này

1
2
3
4
6_______17_______7

Các đối số

>>> 2 * 5
10
>>> 2 ** 5
32
15 và
>>> 2 * 5
10
>>> 2 ** 5
32
16 xuất hiện sau
>>> 2 * 5
10
>>> 2 ** 5
32
17, có nghĩa là chúng chỉ có thể được chỉ định làm đối số từ khóa. Nếu chúng tôi cố gắng chỉ định chúng theo vị trí, chúng tôi sẽ gặp lỗi

1
2
3
4
5
1
2
3
4
9

Hành vi này đã được giới thiệu với Python thông qua PEP 3102

Đối số chỉ từ khóa không có đối số vị trí

Tính năng đối số chỉ từ khóa đó rất thú vị, nhưng nếu bạn muốn yêu cầu đối số chỉ từ khóa mà không nắm bắt các đối số vị trí không giới hạn thì sao?

Python cho phép điều này với cú pháp hơi lạ

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8-on-it-yourself

>>> 2 * 5
10
>>> 2 ** 5
32
8
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
1

Hàm này chấp nhận đối số

>>> 2 * 5
10
>>> 2 ** 5
32
19, có thể được chỉ định theo vị trí (làm đối số đầu tiên) hoặc theo tên của nó và đối số
>>> 2 * 5
10
>>> 2 ** 5
32
20 là đối số chỉ có từ khóa. Điều này có nghĩa là chúng ta có thể gọi
>>> 2 * 5
10
>>> 2 ** 5
32
21 như thế này

1
2
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
3

Nhưng không phải như thế này

1
2
3
4
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
5

Hàm này chấp nhận hai đối số và một trong số chúng,

>>> 2 * 5
10
>>> 2 ** 5
32
20 phải được chỉ định làm đối số từ khóa

Tôi thường sử dụng các đối số chỉ có từ khóa trong khi nắm bắt bất kỳ số lượng đối số vị trí nào, nhưng đôi khi tôi sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 này để thực thi một đối số chỉ được chỉ định theo tên của nó

Hàm

>>> 2 * 5
10
>>> 2 ** 5
32
24 tích hợp sẵn của Python thực sự sử dụng phương pháp này. Nếu bạn xem thông tin trợ giúp trên
>>> 2 * 5
10
>>> 2 ** 5
32
24, bạn sẽ thấy thông tin sau

>>> 2 * 5
10
>>> 2 ** 5
32
4
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
7

Có một

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 độc lập, ngay trong các lập luận được ghi lại cho
>>> 2 * 5
10
>>> 2 ** 5
32
24

Dấu hoa thị trong giải nén Tuple

Python 3 cũng đã thêm một cách mới để sử dụng toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 chỉ liên quan phần nào đến các tính năng
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8-khi-xác-định-một-hàm và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8-khi-gọi-một-hàm ở trên

Toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 hiện cũng có thể được sử dụng để giải nén bộ dữ liệu

>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
8
>>> numbers = [2, 1, 3, 4, 7]
>>> more_numbers = [*numbers, 11, 18]
>>> print(*more_numbers, sep=', ')
2, 1, 3, 4, 7, 11, 18
9

Nếu bạn đang thắc mắc “tôi có thể sử dụng mã này ở đâu trong mã của riêng mình”, hãy xem các ví dụ trong bài viết của tôi về giải nén bộ trong Python. Trong bài viết đó, tôi chỉ ra cách sử dụng toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 đôi khi có thể được sử dụng thay thế cho việc cắt chuỗi

Thông thường, khi tôi dạy

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8, tôi lưu ý rằng bạn chỉ có thể sử dụng một biểu thức
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 trong một lần gọi nhiều bài tập. Điều đó không chính xác về mặt kỹ thuật vì có thể sử dụng hai trong giải nén lồng nhau (tôi nói về giải nén lồng nhau trong bài viết giải nén bộ dữ liệu của tôi)

>>> 2 * 5
10
>>> 2 ** 5
32
8
1
2
3
4
5
1

Mặc dù vậy, tôi chưa bao giờ thấy một cách sử dụng tốt cho điều này và tôi không nghĩ rằng tôi khuyên bạn nên sử dụng nó ngay cả khi bạn đã tìm thấy vì nó có vẻ hơi khó hiểu

PEP đã thêm cái này vào Python 3. 0 là PEP 3132 và nó không dài lắm

Dấu hoa thị trong danh sách chữ

Trăn 3. 5 đã giới thiệu rất nhiều tính năng mới liên quan đến

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 thông qua PEP 448. Một trong những tính năng mới lớn nhất là khả năng sử dụng
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 để kết xuất một lần lặp vào một danh sách mới

Giả sử bạn có một hàm lấy bất kỳ chuỗi nào và trả về một danh sách có chuỗi và đảo ngược của chuỗi đó được nối với nhau

1
2
1
2
3
4
5
3

Hàm này cần chuyển đổi mọi thứ thành danh sách một vài lần để nối các danh sách và trả về kết quả. Trong Trăn 3. 5, chúng ta có thể gõ cái này thay thế

1
2
1
2
3
4
5
5

Mã này loại bỏ một số cuộc gọi danh sách không cần thiết để mã của chúng tôi hiệu quả hơn và dễ đọc hơn

Đây là một ví dụ khác

1
2
1
2
3
4
5
7

Hàm đó trả về một danh sách mới trong đó mục đầu tiên trong danh sách đã cho (hoặc chuỗi khác) được chuyển đến cuối danh sách mới

Việc sử dụng toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 này là một cách tuyệt vời để nối các lần lặp thuộc các loại khác nhau lại với nhau. Toán tử
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 hoạt động cho bất kỳ lần lặp nào, trong khi sử dụng toán tử
>>> 2 * 5
10
>>> 2 ** 5
32
39 chỉ hoạt động trên các chuỗi cụ thể mà tất cả phải cùng loại

Điều này không chỉ giới hạn trong việc tạo danh sách. Chúng tôi cũng có thể kết xuất các lần lặp vào các bộ hoặc bộ mới

>>> 2 * 5
10
>>> 2 ** 5
32
8
1
2
3
4
5
9

Lưu ý rằng dòng cuối cùng ở trên lấy một danh sách và một trình tạo rồi đưa chúng vào một tập hợp mới. Trước khi sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8, trước đây không có cách nào dễ dàng để thực hiện việc này trong một dòng mã. Trước đây đã có một cách để làm điều này, nhưng nó không dễ nhớ hoặc dễ khám phá

1
2
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
1

Dấu hoa thị kép trong nghĩa đen từ điển

PEP 448 cũng mở rộng khả năng của

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 bằng cách cho phép toán tử này được sử dụng để kết xuất các cặp khóa/giá trị từ một từ điển sang một từ điển mới

1
2
3
4
5
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
3

Tôi đã viết một bài báo khác về cách đây là cách thành ngữ để hợp nhất từ ​​điển trong Python

Điều này có thể được sử dụng cho nhiều mục đích hơn là chỉ hợp nhất hai từ điển lại với nhau

Ví dụ: chúng ta có thể sao chép một từ điển trong khi thêm một giá trị mới vào đó

1
2
3
4
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
5

Hoặc sao chép/hợp nhất từ ​​điển trong khi ghi đè các giá trị cụ thể

1
2
3
4
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
7

Dấu hoa thị của Python rất mạnh

Các toán tử

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 của Python không chỉ là đường cú pháp. Một số điều họ cho phép bạn làm có thể đạt được thông qua các phương tiện khác, nhưng các phương án thay thế cho
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 có xu hướng cồng kềnh hơn và sử dụng nhiều tài nguyên hơn. Và một số tính năng họ cung cấp đơn giản là không thể đạt được nếu không có chúng. ví dụ: không có cách nào chấp nhận bất kỳ số lượng đối số vị trí nào cho một hàm mà không có
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8

Sau khi đọc về tất cả các tính năng của

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9, bạn có thể tự hỏi tên của những toán tử kỳ lạ này là gì. Thật không may, họ không thực sự có tên ngắn gọn. Tôi đã nghe
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 được gọi là toán tử "đóng gói" và "giải nén". Tôi cũng đã nghe nó được gọi là "splat" (từ thế giới Ruby) và tôi đã nghe nó được gọi đơn giản là "ngôi sao"

Tôi có xu hướng gọi những toán tử này là “sao” và “sao đôi” hoặc “sao sao”. Điều đó không phân biệt chúng với các họ hàng tiền tố của chúng (phép nhân và lũy thừa), nhưng ngữ cảnh thường làm rõ liệu chúng ta đang nói về toán tử tiền tố hay tiền tố

Nếu bạn không hiểu

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 hoặc bạn lo lắng về việc ghi nhớ tất cả cách sử dụng của chúng, đừng. Các toán tử này có nhiều cách sử dụng và việc ghi nhớ cách sử dụng cụ thể của từng toán tử không quan trọng bằng việc cảm nhận khi nào bạn có thể tiếp cận với các toán tử này. Tôi khuyên bạn nên sử dụng bài viết này như một cheat sheet hoặc để tạo cheat sheet của riêng bạn để giúp bạn sử dụng
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 trong Python

Tập luyện giúp hoàn hảo hơn

Bạn không học bằng cách đưa thông tin vào đầu, bạn học bằng cách cố gắng lấy thông tin từ đầu. Vì vậy, bạn vừa đọc một bài viết về một cái gì đó mới, nhưng bạn vẫn chưa học

Tôi thực sự khuyên bạn nên viết một số mã mà bạn sử dụng

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 theo một số cách khác nhau hôm nay và sau đó tự kiểm tra bản thân về những cách khác nhau để sử dụng các toán tử này vào ngày mai

Tôi muốn gửi cho bạn một bài tập để thực hành với

>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 ngay bây giờ. Nếu bạn đăng ký Python Morsels bằng cách sử dụng thông tin bên dưới, tôi sẽ gửi cho bạn một bài tập sử dụng
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
8 và
>>> fruits = ['lemon', 'pear', 'watermelon', 'tomato']
>>> print(fruits[0], fruits[1], fruits[2], fruits[3])
lemon pear watermelon tomato
>>> print(*fruits)
lemon pear watermelon tomato
9 ngay sau khi bạn đăng ký

Mục đích của toán tử in là gì?

Toán tử IN cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE . Toán tử IN là cách viết tắt của nhiều điều kiện OR.

Toán tử in và not in trong Python là gì?

Trong Python, in và not in là các toán tử thành viên. Chúng được sử dụng để kiểm tra xem một giá trị hoặc biến có được tìm thấy trong một chuỗi (chuỗi, danh sách, bộ, bộ và từ điển) hay không . Trong một từ điển, chúng tôi chỉ có thể kiểm tra sự hiện diện của khóa chứ không phải giá trị.

Mục đích của toán tử in cho chuỗi là gì?

Toán tử in là toán tử thành viên có thể được sử dụng với các chuỗi. 04. 01 Nó sẽ trả về True nếu toán hạng đầu tiên được chứa trong toán hạng thứ hai và nó sẽ trả về False , nếu không .

Toán tử '@' trong Python là gì?

Trường hợp sử dụng chính của biểu tượng @ trong Python là trang trí . Trong Python, trình trang trí là một hàm mở rộng chức năng của một hàm hoặc lớp hiện có.