Giả sử tôi viết một vòng lặp for sẽ xuất ra tất cả các số từ 1 đến x:
x=4
đối với số trong xrange(1,x+1):
số in,
#Đầu ra:
1
2
3
4
Bây giờ, đặt vòng lặp for tương tự vào một hàm:
bộ đếm def(x):
đối với số trong xrange(1,x+1):
số trả lại
bộ đếm in(4)
#Đầu ra:
1
Tại sao tôi chỉ có thể nhận được một giá trị khi đặt vòng lặp for vào một hàm?
Tôi đã giải quyết được vấn đề này bằng cách thêm tất cả kết quả của vòng lặp for vào một danh sách rồi trả về danh sách đó.
Tại sao vòng lặp for nối thêm tất cả các kết quả chứ không chỉ một kết quả? :
bộ đếm def(x):
đầu ra=[]
đối với số trong xrange(1,x+1):
đầu ra.append(số)
đầu ra trở lại
Cách tốt nhất để trả về tất cả các giá trị, việc thêm vào danh sách có vẻ không hiệu quả.
trở lại
Chính xác như tên của từ khóa ngụ ý. Khi bạn bấm vào tuyên bố, nótrở lạivà không thực hiện phần còn lại của chức năng.
Những gì bạn có thể cần là năng suất
Từ khóa. Điều này tạo ra một hàm tạo (một hàm trả về một trình tạo). Máy phát điện có thể lặp lại được. mỗi lần thực hiện năng suất
biểu thức, tất cả đều "sản xuất" một phần tử.
def func():
cho x trong phạm vi (10):
năng suất x
máy phát điện = niềm vui()
cho mục trong máy phát điện:
mục in
Tôi là một lập trình viên xuất sắc, rất giỏi!