Việc sử dụng đầu ra trong python là gì?

Lưu ý ký tự khoảng trắng sau

result = example[]
print[result]
0 và
result = example[]
print[result]
1, nếu không có chúng, kết quả sẽ là "Pythonisawesome"

Đối với các số, ký tự

result = example[]
print[result]
2 hoạt động như một toán tử toán học

Trong hàm

result = example[]
print[result]
3, khi bạn cố gắng kết hợp một chuỗi và một số bằng toán tử
result = example[]
print[result]
2, Python sẽ báo lỗi cho bạn

Cách tốt nhất để xuất nhiều biến trong hàm

result = example[]
print[result]
3 là phân tách chúng bằng dấu phẩy, thậm chí hỗ trợ các loại dữ liệu khác nhau

Cách trực tiếp là

result = example[]
print[result]
2 một giá trị từ hàm, như bạn đã thử, và để mã gọi sử dụng giá trị đó. Đây thường là những gì bạn muốn. Cách tự nhiên, đơn giản, trực tiếp, rõ ràng để lấy lại thông tin từ một chức năng là
result = example[]
print[result]
2 nó. Nói chung, mục đích của một hàm là tính toán một giá trị và
result = example[]
print[result]
2 có nghĩa là "đây là giá trị mà chúng tôi đã tính toán; chúng tôi đã hoàn thành ở đây"

Trực tiếp sử dụng
result = example[]
print[result]
2

Thủ thuật chính ở đây là

result = example[]
print[result]
2 trả về một giá trị, không phải một biến. Vì vậy,
result = example[]
print[result]
7 không kích hoạt mã gọi để sử dụng
result = example[]
print[result]
8 sau khi gọi hàm và không sửa đổi bất kỳ giá trị hiện có nào mà
result = example[]
print[result]
8 có trong ngữ cảnh của cuộc gọi. [Đó có lẽ là lý do tại sao bạn có một
def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
0. ]

Sau khi chúng tôi sử dụng

result = example[]
print[result]
2 trong chức năng

result = example[]
print[result]
0

chúng ta cần viết mã gọi để sử dụng giá trị trả về

result = example[]
print[result]

Điểm mấu chốt khác ở đây là lệnh gọi hàm là một biểu thức, vì vậy chúng ta có thể sử dụng nó giống như cách chúng ta sử dụng, chẳng hạn như kết quả của phép cộng. Giống như chúng ta có thể nói

def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
2, chúng ta có thể nói
def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
3. Sau đó,
def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
4 là tên cục bộ, riêng của chúng tôi cho chuỗi đó và chúng tôi có thể làm bất cứ điều gì chúng tôi muốn với nó

Chúng ta có thể sử dụng cùng tên,

result = example[]
print[result]
8, nếu muốn. Hoặc chúng ta có thể sử dụng một tên khác. Mã gọi không cần phải biết bất cứ điều gì về cách viết hàm hoặc tên mà nó sử dụng cho mọi thứ. 1

Chúng ta có thể sử dụng giá trị trực tiếp để gọi một chức năng khác. ví dụ,

def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
6. 2 Chúng tôi có thể trả lại giá trị trực tiếp. chỉ đơn giản là
def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
7, mà không gán cho
result = example[]
print[result]
8. [Lại. chúng tôi đang trả về một giá trị, không phải là một biến. ]

Hàm chỉ có thể

result = example[]
print[result]
2 một lần mỗi khi nó được gọi.
result = example[]
print[result]
2 kết thúc hàm - một lần nữa, chúng tôi chỉ xác định kết quả của phép tính, vì vậy không có lý do gì để tính toán thêm. Do đó, nếu chúng ta muốn trả về nhiều mẩu thông tin, chúng ta sẽ cần tìm ra một đối tượng duy nhất [trong Python, "giá trị" và "đối tượng" là các từ đồng nghĩa hiệu quả; điều này không hoạt động tốt đối với một số ngôn ngữ khác. ]

Chúng ta có thể tạo một bộ ngay trên dòng trả về; . 6+], một

result = example[]
print[result]
12 [Python 3. 3+], một
result = example[]
print[result]
13 [Python 3. 7+] hoặc một số lớp khác [thậm chí có thể là lớp chúng tôi tự viết] để liên kết tên với các giá trị đang được trả về; . vân vân. Khả năng là vô tận

Mặt khác, chức năng

result = example[]
print[result]
2s cho dù bạn có thích hay không [trừ khi một ngoại lệ được nêu ra]. Nếu nó đến cuối, nó sẽ ngầm
result = example[]
print[result]
2 giá trị đặc biệt
result = example[]
print[result]
16. Thay vào đó, bạn có thể hoặc không muốn làm điều đó một cách rõ ràng

phương pháp gián tiếp

Ngoài việc gửi trực tiếp kết quả về cho người gọi, chúng ta có thể truyền đạt nó bằng cách sửa đổi một số đối tượng hiện có mà người gọi biết về. Có nhiều cách để làm điều đó, nhưng tất cả chúng đều là các biến thể của cùng một chủ đề

Nếu bạn muốn mã truyền đạt thông tin trở lại theo cách này, vui lòng để mã trả về

result = example[]
print[result]
16 - cũng không sử dụng giá trị trả về cho điều gì đó có ý nghĩa. Đó là cách chức năng tích hợp hoạt động

Để sửa đổi đối tượng đó, tất nhiên hàm được gọi cũng phải biết về nó. Điều đó có nghĩa là, có một tên cho đối tượng có thể được tra cứu trong phạm vi hiện tại. Vì vậy, chúng ta hãy đi qua những thứ theo thứ tự

phạm vi cục bộ. Sửa đổi một đối số được truyền vào

Nếu một trong các tham số của chúng tôi có thể thay đổi, chúng tôi chỉ có thể thay đổi nó và dựa vào người gọi để kiểm tra sự thay đổi. Đây thường không phải là một ý tưởng tuyệt vời, bởi vì có thể khó suy luận về mã. Nó có vẻ như

________số 8

Nếu giá trị là một thể hiện của lớp riêng của chúng ta, chúng ta cũng có thể gán cho một thuộc tính

result = example[]
print[result]
1

Việc gán cho một thuộc tính không hoạt động đối với các loại tích hợp sẵn, bao gồm

result = example[]
print[result]
19;

phạm vi cục bộ. Sửa đổi
result = example[]
print[result]
20, trong một phương pháp

Chúng tôi đã có một ví dụ về điều này ở trên. thiết lập

result = example[]
print[result]
21 trong mã
result = example[]
print[result]
22. Đây là trường hợp đặc biệt của việc sửa đổi một đối số được truyền vào; . Thông thường, khi chúng ta làm điều này, lệnh gọi sẽ không thực sự kiểm tra các thay đổi đối với
result = example[]
print[result]
20 - nó sẽ chỉ sử dụng đối tượng đã sửa đổi trong bước tiếp theo của logic. Đó là lý do thích hợp để viết mã theo cách này. chúng tôi vẫn đang trình bày một giao diện, vì vậy người gọi không phải lo lắng về các chi tiết

result = example[]
print[result]
2

Trong ví dụ, việc gọi

result = example[]
print[result]
24 đã cung cấp thông tin trở lại mã cấp cao nhất - nhưng thay vì tìm kiếm nó, chúng ta chỉ cần tiếp tục và gọi
result = example[]
print[result]
25. 3

Xem thêm. Truyền biến giữa các phương thức trong Python?

phạm vi kèm theo

Đây là trường hợp đặc biệt hiếm gặp khi sử dụng các hàm lồng nhau. Không có nhiều điều để nói ở đây - nó hoạt động giống như với phạm vi toàn cầu, chỉ sử dụng từ khóa

result = example[]
print[result]
26 thay vì
result = example[]
print[result]
27. 4

Phạm vi toàn cầu. Sửa đổi một toàn cầu

Nói chung, không nên thay đổi bất kỳ thứ gì trong phạm vi toàn cầu sau khi thiết lập nó ngay từ đầu. Nó làm cho mã khó giải thích hơn, bởi vì bất kỳ thứ gì sử dụng toàn cầu đó [ngoài bất kỳ thứ gì chịu trách nhiệm cho sự thay đổi] đều có nguồn đầu vào "ẩn"

Nếu bạn vẫn muốn làm điều đó, cú pháp rất đơn giản

result = example[]
print[result]
1

Phạm vi toàn cầu. Gán cho một toàn cầu mới hoặc hiện có

Đây thực sự là một trường hợp đặc biệt của việc sửa đổi một toàn cầu. Ý tôi không phải là nhiệm vụ đó là một loại sửa đổi [không phải vậy]. Ý tôi là khi bạn gán một tên chung, Python sẽ tự động cập nhật một lệnh đại diện cho không gian tên chung. Bạn có thể lấy lệnh đó bằng

result = example[]
print[result]
28 và bạn có thể sửa đổi lệnh đó và nó thực sự sẽ tác động đến những biến toàn cục tồn tại. [TÔI. e. , sự trở lại từ
result = example[]
print[result]
28 là từ điển chính nó, không phải là một bản sao. ]5

Nhưng làm ơn đừng. Ý tưởng đó thậm chí còn tồi tệ hơn ý tưởng trước đó. Nếu bạn thực sự cần lấy kết quả từ hàm của mình bằng cách gán cho một biến toàn cục, hãy sử dụng từ khóa

result = example[]
print[result]
27 để nói với Python rằng tên đó sẽ được tra cứu trong phạm vi toàn cầu

result = example[]
print[result]
5

Phạm vi toàn cầu. Gán hoặc sửa đổi một thuộc tính của chính chức năng đó

Đây là một trường hợp đặc biệt hiếm gặp, nhưng bây giờ bạn đã xem các ví dụ khác, lý thuyết sẽ rõ ràng. Trong Python, các hàm có thể thay đổi [i. e. bạn có thể đặt thuộc tính cho chúng]; . Vì vậy, điều này thực sự chỉ sửa đổi một toàn cầu

result = example[]
print[result]
6

Chúng tôi thực sự không nên sử dụng điều này để gửi thông tin cho người gọi. Nó có tất cả các vấn đề thông thường với toàn cầu và thậm chí còn khó hiểu hơn. Nhưng có thể hữu ích nếu đặt các thuộc tính của hàm từ bên trong hàm, để hàm ghi nhớ điều gì đó giữa các lần gọi. [Tương tự như cách các phương thức ghi nhớ mọi thứ giữa các cuộc gọi bằng cách sửa đổi

result = example[]
print[result]
20. ] Thư viện chuẩn
result = example[]
print[result]
12 thực hiện việc này, ví dụ như trong triển khai
result = example[]
print[result]
13

phạm vi dựng sẵn

Điều này không làm việc. Không gian tên dựng sẵn không chứa bất kỳ đối tượng có thể thay đổi nào và bạn không thể gán tên dựng sẵn mới [thay vào đó, chúng sẽ đi vào không gian tên chung]

Một số cách tiếp cận không hoạt động trong Python

Chỉ cần tính toán một cái gì đó trước khi chức năng kết thúc

Trong một số ngôn ngữ lập trình khác, có một số loại biến ẩn tự động lấy kết quả của phép tính cuối cùng, mỗi khi tính toán một thứ gì đó; . Điều đó không hoạt động trong Python. Nếu bạn đến cuối mà không có

result = example[]
print[result]
2ing bất cứ thứ gì, hàm của bạn sẽ trả về
result = example[]
print[result]
16

Gán tên hàm

Trong một số ngôn ngữ lập trình khác, bạn được phép [hoặc được yêu cầu] gán cho một biến có cùng tên với hàm; . Điều đó vẫn không hoạt động trong Python. Nếu bạn đến cuối mà không có

result = example[]
print[result]
2ing gì, hàm của bạn vẫn trả về
result = example[]
print[result]
16

result = example[]
print[result]
5

Có vẻ như ít nhất bạn có thể sử dụng giá trị theo cách đó, nếu bạn sử dụng từ khóa

result = example[]
print[result]
27

result = example[]
print[result]
7

Nhưng tất nhiên, đây chỉ là một trường hợp đặc biệt của việc gán cho một toàn cục. Và có một vấn đề lớn với nó - cùng một tên không thể đề cập đến hai điều cùng một lúc. Bằng cách này, hàm đã thay thế tên riêng của nó. Vì vậy, nó sẽ thất bại lần sau

result = example[]
print[result]
0

Gán cho một tham số

Đôi khi mọi người mong đợi có thể gán cho một trong các tham số của hàm và để nó ảnh hưởng đến một biến được sử dụng cho đối số tương ứng. Tuy nhiên, điều này không làm việc

result = example[]
print[result]
1

Giống như cách Python trả về giá trị chứ không phải biến, nó cũng truyền giá trị chứ không phải biến.

result = example[]
print[result]
50 là tên địa phương;

Một trong những phương pháp làm việc mà chúng tôi đã thấy là sửa đổi danh sách đã chuyển vào. Điều đó hoạt động bởi vì nếu bản thân danh sách thay đổi, thì nó sẽ thay đổi - không quan trọng tên nào được sử dụng cho nó hoặc phần nào của mã sử dụng tên đó. Tuy nhiên, việc gán danh sách mới cho

result = example[]
print[result]
50 không khiến danh sách hiện tại thay đổi. Nó chỉ làm cho
result = example[]
print[result]
50 bắt đầu trở thành tên cho một danh sách khác

Để biết thêm thông tin, hãy xem Làm cách nào để chuyển một biến theo tham chiếu?

1 Ít nhất, không phải để lấy lại giá trị. Nếu bạn muốn sử dụng đối số từ khóa, bạn cần biết tên từ khóa là gì. Nhưng nói chung, quan điểm của các hàm là chúng là một sự trừu tượng;

2 trong 2. x,

result = example[]
print[result]
53 là một câu lệnh chứ không phải là một hàm, vì vậy đây không phải là ví dụ về việc gọi trực tiếp một hàm khác. Tuy nhiên,
result = example[]
print[result]
54 vẫn hoạt động với 2. x, và
def called[mutable]:
    mutable.append['world']

def caller[]:
    my_value = ['hello'] # a list with just that string
    called[my_value]
    # now it contains both strings
6 cũng vậy [trong trường hợp này, dấu ngoặc đơn bổ sung chỉ là dấu ngoặc đơn nhóm bình thường]. Bên cạnh đó, 2. 7 [2 cuối cùng. x] đã không được hỗ trợ kể từ đầu năm 2020 - tức là đã kéo dài gần 5 năm so với lịch trình thông thường. Nhưng sau đó, câu hỏi này ban đầu được hỏi vào năm 2010

3Một lần nữa. nếu mục đích của một phương thức là cập nhật đối tượng, thì cũng đừng

result = example[]
print[result]
2 một giá trị. Một số người muốn trả về
result = example[]
print[result]
20 để bạn có thể "xâu chuỗi" các lệnh gọi phương thức; . Nếu bạn muốn loại giao diện "thông thạo" đó, thì thay vì viết các phương thức cập nhật
result = example[]
print[result]
20, hãy viết các phương thức tạo một thể hiện mới, đã sửa đổi của lớp

4 Tất nhiên, ngoại trừ việc nếu chúng ta đang sửa đổi một giá trị thay vì chỉ định, thì chúng ta không cần cả hai từ khóa

5 Ngoài ra còn có một

result = example[]
print[result]
59 cung cấp cho bạn lệnh của các biến cục bộ. Tuy nhiên, điều này không thể được sử dụng để tạo các biến cục bộ mới - hành vi không được xác định trong 2. x và trong 3. x, dict được tạo nhanh chóng và gán cho nó không có tác dụng. Một số tối ưu hóa của Python phụ thuộc vào các biến cục bộ cho một hàm được biết trước

Đầu ra trong Python là gì?

Trong Python 3. x, bạn có thể xuất mà không cần xuống dòng bằng cách chuyển end="" vào hàm in hoặc bằng cách sử dụng phương thức write . nhập sys print["Xin chào", end=""] sys. tiêu chuẩn. write["Xin chào"] # Hoặc thiết bị xuất chuẩn để ghi vào luồng lỗi tiêu chuẩn.

Việc sử dụng chức năng đầu vào và đầu ra trong Python là gì?

Hàm input[] giúp người dùng nhập dữ liệu khi chạy và hàm xuất print[] dùng để hiển thị kết quả của chương trình ra màn hình sau khi thực hiện . .

Hàm nào được sử dụng cho các câu lệnh đầu ra trong Python?

Trăn. Đầu ra sử dụng chức năng print[] - GeekforGeek.

Chủ Đề