Trang chủ »Python» Chương trình Python
Ở đây, chúng ta sẽ học bằng ví dụ, làm thế nào để truyền giá trị mạnh mẽ cho hàm trong Python? Được gửi bởi POCKSHELP, vào ngày 06 tháng 9 năm 2018how to pass the strong value to the function in Python?
Submitted by
IncludeHelp, on September 06, 2018
Chúng ta phải xác định một hàm sẽ chấp nhận đối số chuỗi và in nó. Ở đây, chúng ta sẽ học cách truyền giá trị chuỗi cho hàm?how to pass string value to the function?
Thí dụ:
Input: str = "Hello world" Function call: printMsg[str] Output: "Hello world"
Program:
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]
Đầu ra
Hello world! Hi! I am good.
Chức năng viết sẽ chấp nhận một chuỗi và trả về tổng số nguyên âm
# function definition: it will accept # a string parameter and return number of vowels def countVowels[str]: count = 0 for ch in str: if ch in "aeiouAEIOU": count +=1 return count # Main code # function calls str = "Hello world!" print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str] str = "Hi, I am good." print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str]
Đầu ra
No. of vowels are 3 in "Hello world!" No. of vowels are 5 in "Hi, I am good."
Chức năng viết sẽ chấp nhận một chuỗi và trả về tổng số nguyên âm
Python luôn nhận được các tham số theo giá trị, vì vậy việc gán một giá trị mới cho một biến tham số bên trong phần thân của hàm sẽ không ảnh hưởng đến người gọi.
Nếu giá trị có thể thay đổi, thì việc biến nó bên trong phần thân của hàm sẽ ảnh hưởng đến người gọi, nhưng chuỗi là bất biến [không có phương pháp nào bạn có thể gọi trên một chuỗi sẽ thay đổi nội dung của nó, chỉ trả về một chuỗi mới].
Nói chung, cách tiếp cận tình huống bạn mô tả là chỉ cần trả về nhiều giá trị:
def foo[arg1,arg2,arg3]
arg3="new_value"
return arg1+arg2, arg3
arg3=""
_, arg3 = foo[1, 2, arg3]
Tuy nhiên, nếu bạn cần một đối số bất biến có thể thay đổi, một cách giải quyết dễ dàng [không liên quan đến việc sử dụng
# function definition: it will accept # a string parameter and return number of vowels def countVowels[str]: count = 0 for ch in str: if ch in "aeiouAEIOU": count +=1 return count # Main code # function calls str = "Hello world!" print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str] str = "Hi, I am good." print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str]3] là bọc nó trong một thùng chứa có thể thay đổi, như một danh sách:
def foo[arg1,arg2,arg3]
arg3[0]="new_value"
return arg1+arg2
arg3=[""]
foo[1,2,arg3]
# arg3[0] is now "new_value"
Một chức năng là một khối của mã có tổ chức, có thể tái sử dụng được sử dụng để thực hiện một hành động duy nhất, liên quan. Các chức năng cung cấp mô -đun tốt hơn cho ứng dụng của bạn và mức độ tái sử dụng mã cao.
Như bạn đã biết, Python cung cấp cho bạn nhiều hàm tích hợp như in [], v.v. nhưng bạn cũng có thể tạo các chức năng của riêng mình. Các chức năng này được gọi là các chức năng do người dùng xác định.
Xác định một chức năng
Bạn có thể xác định các chức năng để cung cấp các chức năng cần thiết. Dưới đây là các quy tắc đơn giản để xác định một chức năng trong Python.
Các khối chức năng bắt đầu với từ khóa def theo sau là tên hàm và dấu ngoặc đơn [[]].def followed by the function name and parentheses [ [ ] ].
Bất kỳ tham số đầu vào hoặc đối số nên được đặt trong các dấu ngoặc đơn này. Bạn cũng có thể xác định các tham số bên trong các dấu ngoặc đơn này.
Câu lệnh đầu tiên của một hàm có thể là một câu lệnh tùy chọn - chuỗi tài liệu của hàm hoặc tài liệu.
Khối mã trong mọi chức năng bắt đầu bằng một dấu hai chấm [:] và được thụt vào.
Câu lệnh trả về [Biểu thức] thoát ra một hàm, tùy chọn chuyển lại một biểu thức cho người gọi. Một câu lệnh trả về không có đối số giống như trả về không.
Cú pháp
def functionname[ parameters ]: "function_docstring" function_suite return [expression]
Theo mặc định, các tham số có hành vi vị trí và bạn cần thông báo cho chúng theo cùng thứ tự mà chúng được xác định.
Thí dụ
Hàm sau đây lấy một chuỗi làm tham số đầu vào và in nó trên màn hình tiêu chuẩn.
def printme[ str ]: "This prints a passed string into this function" print str return
Gọi một chức năng
Xác định một hàm chỉ cung cấp cho nó một tên, chỉ định các tham số được đưa vào hàm và cấu trúc các khối mã.
Khi cấu trúc cơ bản của hàm được hoàn thiện, bạn có thể thực hiện nó bằng cách gọi nó từ một hàm khác hoặc trực tiếp từ dấu nhắc Python. Sau đây là ví dụ để gọi hàm printme [] -
#!/usr/bin/python # Function definition is here def printme[ str ]: "This prints a passed string into this function" print str return; # Now you can call printme function printme["I'm first call to user defined function!"] printme["Again second call to the same function"]
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]0
Vượt qua bởi tham chiếu vs giá trị
Tất cả các tham số [đối số] trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]1
Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Vì vậy, điều này sẽ tạo ra kết quả sau -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]2
Có một ví dụ nữa trong đó đối số được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]3
Tham số mylist là cục bộ với chức năng thay đổi. Thay đổi Mylist trong hàm không ảnh hưởng đến Mylist. Chức năng không hoàn thành không có gì và cuối cùng điều này sẽ tạo ra kết quả sau -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]4
Đối số chức năng
Bạn có thể gọi một hàm bằng cách sử dụng các loại đối số chính thức sau -
- Lập luận bắt buộc
- Từ khóa đối số
- Đối số mặc định
- Đối số có độ dài thay đổi
Lập luận bắt buộc
Từ khóa đối số
Đối số mặc định
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]5
Đối số có độ dài thay đổi
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]6
Từ khóa đối số
Đối số mặc định
Đối số có độ dài thay đổi
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]7
Đối số có độ dài thay đổi
Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.Để gọi hàm printme [], bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]9
Đối số có độ dài thay đổi
Hello world! Hi! I am good.0
Đối số mặc định
Đối số có độ dài thay đổi
Hello world! Hi! I am good.1
Đối số có độ dài thay đổi
Hello world! Hi! I am good.2
Đối số có độ dài thay đổi
Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.
Để gọi hàm printme [], bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -
Hello world! Hi! I am good.3
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Hello world! Hi! I am good.4
Đối số có độ dài thay đổi
Hello world! Hi! I am good.5
Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.
Để gọi hàm printme [], bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Đối số từ khóa có liên quan đến các cuộc gọi chức năng. Khi bạn sử dụng các đối số từ khóa trong cuộc gọi hàm, người gọi xác định các đối số bằng tên tham số.
Điều này cho phép bạn bỏ qua các đối số hoặc đặt chúng theo thứ tự vì trình thông dịch Python có thể sử dụng các từ khóa được cung cấp để phù hợp với các giá trị với các tham số. Bạn cũng có thể thực hiện các cuộc gọi từ khóa đến hàm printme [] theo các cách sau -
# Python program to pass a string to the function # function definition: it will accept # a string parameter and print it def printMsg[str]: # printing the parameter print str # Main code # function calls printMsg["Hello world!"] printMsg["Hi! I am good."]
8
Ví dụ sau đây cho hình ảnh rõ ràng hơn. Lưu ý rằng thứ tự của các tham số không quan trọng.
Đối số mặc định là một đối số giả định giá trị mặc định nếu giá trị không được cung cấp trong lệnh gọi hàm cho đối số đó. Ví dụ sau đây đưa ra một ý tưởng về các đối số mặc định, nó in tuổi mặc định nếu nó không được thông qua -
Hello world! Hi! I am good.6
Bạn có thể cần xử lý một hàm cho nhiều đối số hơn bạn đã chỉ định trong khi xác định chức năng. Các đối số này được gọi là các đối số có độ dài thay đổi và không được đặt tên trong định nghĩa hàm, không giống như các đối số yêu cầu và mặc định.
Hello world! Hi! I am good.7
Đối số có độ dài thay đổi
Hello world! Hi! I am good.8
Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.
Để gọi hàm printme [], bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Hello world! Hi! I am good.9
Đối số có độ dài thay đổi
# function definition: it will accept # a string parameter and return number of vowels def countVowels[str]: count = 0 for ch in str: if ch in "aeiouAEIOU": count +=1 return count # Main code # function calls str = "Hello world!" print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str] str = "Hi, I am good." print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str]0
Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.
Để gọi hàm printme [], bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
- Đối số từ khóa có liên quan đến các cuộc gọi chức năng. Khi bạn sử dụng các đối số từ khóa trong cuộc gọi hàm, người gọi xác định các đối số bằng tên tham số.
- Điều này cho phép bạn bỏ qua các đối số hoặc đặt chúng theo thứ tự vì trình thông dịch Python có thể sử dụng các từ khóa được cung cấp để phù hợp với các giá trị với các tham số. Bạn cũng có thể thực hiện các cuộc gọi từ khóa đến hàm printme [] theo các cách sau -
# Python program to pass a string to the function
# function definition: it will accept
# a string parameter and print it
def printMsg[str]:
# printing the parameter
print str
# Main code
# function calls
printMsg["Hello world!"]
printMsg["Hi! I am good."]
8
Ví dụ sau đây cho hình ảnh rõ ràng hơn. Lưu ý rằng thứ tự của các tham số không quan trọng.
Đối số mặc định là một đối số giả định giá trị mặc định nếu giá trị không được cung cấp trong lệnh gọi hàm cho đối số đó. Ví dụ sau đây đưa ra một ý tưởng về các đối số mặc định, nó in tuổi mặc định nếu nó không được thông qua -
# function definition: it will accept # a string parameter and return number of vowels def countVowels[str]: count = 0 for ch in str: if ch in "aeiouAEIOU": count +=1 return count # Main code # function calls str = "Hello world!" print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str] str = "Hi, I am good." print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str]1
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
# function definition: it will accept # a string parameter and return number of vowels def countVowels[str]: count = 0 for ch in str: if ch in "aeiouAEIOU": count +=1 return count # Main code # function calls str = "Hello world!" print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str] str = "Hi, I am good." print "No. of vowels are {0} in \"{1}\"".format[countVowels[str],str]2