Tôi có một nhóm các biến có tên k1, k2 k3. k52. Các biến của chúng là danh sách/mảng gọn gàng tùy thuộc vào kịch bản. Về cơ bản, tôi muốn thực hiện cùng một thao tác trên chúng trong một vòng lặp, nhưng tôi gặp sự cố khi xử lý chúng. Về cơ bản những gì tôi muốn là một cái gì đó như thế này
Nội dung chính Hiển thị
- Vòng lặp for thực thi các lệnh một lần cho mỗi giá trị trong bộ sưu tập
- Dòng đầu tiên của vòng lặp for phải kết thúc bằng dấu hai chấm và phần thân phải được thụt vào
- Một vòng lặp for được tạo thành từ một tập hợp, một biến vòng lặp và một phần thân
- Tên biến vòng lặp tuân theo quy ước tên biến thông thường
- Phần thân của vòng lặp có thể chứa nhiều câu lệnh
- Sử dụng phạm vi để lặp qua một dãy số
- Hoặc sử dụng phạm vi để lặp lại một hành động với số lần tùy ý
- Mẫu Accumulator biến nhiều giá trị thành một
- Phân loại lỗi
- Thực hiện theo dõi
- Đảo ngược một chuỗi
- Thực hành tích lũy
- Tổng tích lũy
- Xác định lỗi tên biến
- Xác định lỗi mục
- Vòng lặp for có thể là một biến trong Python không?
- Làm cách nào để bạn tự động thay đổi tên biến trong python?
- Làm thế nào để bạn thay đổi một tên biến trong một vòng lặp?
- Làm thế nào để bạn khai báo một biến động trong Python?
for i in arange[0,52]:
'k'+ str[i] = log10[eval['k' + str[i]]]
Rõ ràng tôi biết những điều trên sẽ không hiệu quả, nhưng nó mang lại ý tưởng. Nỗ lực thực tế của tôi là thế này
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
[Nó đã thay đổi thành một mảng có nhiều mảng để tôi có thể ghi nhật ký, sau đó quay lại danh sách để tôi thay đổi tên biến trở lại như cũ] Cảm ơn vì bất kỳ sự trợ giúp nào mà bạn có thể cung cấp. Tôi có cảm giác đây là một thứ khá đơn giản, nhưng nó đang thoát khỏi tôi vào lúc này
chỉnh sửa. cảm ơn rất nhiều vì câu trả lời, lẽ ra tôi nên giải thích rằng tôi thực sự không thể lưu trữ chúng thành một mảng đã đặt, chúng cần duy trì dưới dạng các biến độc lập vì những lý do tôi không thực sự muốn đi sâu vào
Xin chào. Tôi có bốn danh sách. danh sách_0, danh sách_1, danh sách_2, danh sách_3. Tôi muốn áp dụng một khối mã dài cho mỗi danh sách, sẽ ngắn gọn hơn nhiều nếu tôi lặp qua một vòng lặp hoặc xác định một hàm sẽ thực hiện điều đó cho mỗi danh sách. Tôi đã nghĩ một cái gì đó của hình thức
cho tôi trong phạm vi [0,3]
list_i = long_block_of_code
nhưng, list_i không được xác định. Suy nghĩ khác của tôi là bao gồm một cái gì đó như {}. format[] , nhưng dường như tôi cũng không thể làm cho nó hoạt động được. bất kỳ sự giúp đỡ được đánh giá cao
Tổng quan
Dạy học. 10 phút
Bài tập. 15 phútcâu hỏi
Làm thế nào tôi có thể làm cho một chương trình làm nhiều việc?
mục tiêu
Giải thích vòng lặp for thường được dùng để làm gì
Theo dõi quá trình thực hiện một vòng lặp đơn giản [không lồng vào nhau] và nêu chính xác giá trị của các biến trong mỗi lần lặp
Viết cho các vòng lặp sử dụng mẫu Bộ tích lũy để tổng hợp các giá trị
Vòng lặp for thực thi các lệnh một lần cho mỗi giá trị trong bộ sưu tập
- Thực hiện các phép tính lần lượt trên các giá trị trong danh sách cũng khó như làm việc với
9,for number in [2, 3, 5]: print[number]
0, v.v.print[2] print[3] print[5]
- Vòng lặp for yêu cầu Python thực thi một số câu lệnh một lần cho mỗi giá trị trong danh sách, chuỗi ký tự hoặc một số bộ sưu tập khác
- “đối với mỗi thứ trong nhóm này, hãy thực hiện các thao tác này”
for number in [2, 3, 5]:
print[number]
- Vòng lặp
1 này tương đương vớiprint[2] print[3] print[5]
print[2]
print[3]
print[5]
- Và đầu ra của vòng lặp
1 làprint[2] print[3] print[5]
Dòng đầu tiên của vòng lặp for phải kết thúc bằng dấu hai chấm và phần thân phải được thụt vào
- Dấu hai chấm ở cuối dòng đầu tiên báo hiệu bắt đầu một khối câu lệnh
- Python sử dụng thụt đầu dòng thay vì
3 hoặcprint[2] print[3] print[5]
4/print[2] print[3] print[5]
5 để hiển thị lồng nhauprint[2] print[3] print[5]
- Bất kỳ sự thụt đầu dòng nhất quán nào cũng hợp pháp, nhưng hầu hết mọi người đều sử dụng bốn khoảng trắng
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
1for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
2- Thụt đầu dòng luôn có ý nghĩa trong Python
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
3____14- Có thể sửa lỗi này bằng cách bỏ các khoảng trắng thừa ở đầu dòng thứ hai
Một vòng lặp for được tạo thành từ một tập hợp, một biến vòng lặp và một phần thân
for number in [2, 3, 5]:
print[number]
- Bộ sưu tập,
6, là thứ mà vòng lặp đang được chạy trên đóprint[2] print[3] print[5]
- Phần thân,
7, chỉ định những việc cần làm cho từng giá trị trong bộ sưu tậpprint[2] print[3] print[5]
- Biến vòng lặp,
8, là biến thay đổi cho mỗi lần lặp của vòng lặpprint[2] print[3] print[5]
- “Chuyện hiện tại”
Tên biến vòng lặp tuân theo quy ước tên biến thông thường
- Các biến vòng lặp sẽ
- Được tạo theo yêu cầu trong suốt quá trình của mỗi vòng lặp
- Vẫn tồn tại sau khi vòng lặp kết thúc
- Sử dụng tên biến mới để tránh ghi đè lên bộ sưu tập dữ liệu mà bạn cần lưu lại sau này
- Thường được sử dụng trong quá trình của vòng lặp
- Vì vậy, hãy đặt cho chúng một cái tên có ý nghĩa mà bạn sẽ hiểu khi mã cơ thể trong vòng lặp của bạn phát triển
- Thí dụ.
9 thay vìprint[2] print[3] print[5]
10for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
1for number in [2, 3, 5]: print[number]
Phần thân của vòng lặp có thể chứa nhiều câu lệnh
- Nhưng không có vòng lặp nào dài hơn một vài dòng
- Con người khó ghi nhớ những đoạn mã lớn hơn
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
0Sử dụng phạm vi để lặp qua một dãy số
- Hàm tích hợp
11 tạo ra một chuỗi sốfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- không phải là một danh sách. các số được tạo ra theo yêu cầu để thực hiện việc lặp trên phạm vi lớn hiệu quả hơn
12 là số 0. N-1for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Chính xác các chỉ số hợp pháp của một danh sách hoặc chuỗi ký tự có độ dài N
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
1for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
2Hoặc sử dụng phạm vi để lặp lại một hành động với số lần tùy ý
- Bạn không thực sự phải sử dụng giá trị của biến lặp lại
- Sử dụng cấu trúc này để đơn giản lặp lại một hành động một số lần
- Số lần đó đi vào hàm
11for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Số lần đó đi vào hàm
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
3for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
4Mẫu Accumulator biến nhiều giá trị thành một
- Một mô hình phổ biến trong các chương trình là
- Khởi tạo biến bộ tích lũy thành 0, chuỗi trống hoặc danh sách trống
- Cập nhật biến với các giá trị từ một bộ sưu tập
for i in arange[0,10]:
rate = eval['k' + str[i]]
rate = np.array[rate,dtype=float]
rate = log10[rate]
rate.tolist[]
vars[][rate] = 'k' + str[i]
5- Đọc
14 làfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Cộng 1 vào giá trị hiện tại của biến vòng lặp
8print[2] print[3] print[5]
- Thêm giá trị đó vào giá trị hiện tại của biến tích lũy
16for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Gán giá trị đó cho
16, thay thế giá trị hiện tạifor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Cộng 1 vào giá trị hiện tại của biến vòng lặp
- Chúng tôi phải thêm
18 vìfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
11 tạo ra 0. 9 chứ không phải 1. 10for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Phân loại lỗi
Lỗi thụt lề là lỗi cú pháp hay lỗi thời gian chạy?
Dung dịch
Đó là một lỗi cú pháp. Vấn đề liên quan đến vị trí của mã, không phải logic của nó
Thực hiện theo dõi
Tạo một bảng hiển thị số dòng được thực thi khi chương trình này chạy và giá trị của các biến sau mỗi dòng được thực thi
6for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Đảo ngược một chuỗi
Điền vào chỗ trống trong chương trình dưới đây để nó in ra chữ “nit” [ngược lại với chuỗi ký tự gốc “tin”]
7for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Dung dịch
20 là một chuỗi rỗng vì chúng tôi sử dụng nó để xây dựng hoặc tích lũy trên chuỗi đảo ngược của chúng tôi.for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
21 là biến vòng lặp chofor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
22. Mỗi lần qua vòng lặpfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
21 nhận một giá trị từfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
22. Sử dụngfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
21 vớifor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
20 để kiểm soát thứ tự của chuỗi. Mã vòng lặp của chúng tôi sẽ trông như thế nàyfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
8for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Nếu bạn mở rộng vòng lặp, các lần lặp lại sẽ giống như thế này
9for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Thực hành tích lũy
Điền vào chỗ trống trong mỗi chương trình dưới đây để tạo ra kết quả được chỉ định
0for number in [2, 3, 5]: print[number]
1for number in [2, 3, 5]: print[number]
2for number in [2, 3, 5]: print[number]
3for number in [2, 3, 5]: print[number]
Tổng tích lũy
Sắp xếp lại và thụt lề đúng cách các dòng mã bên dưới để chúng in một mảng có tổng dữ liệu tích lũy. Kết quả phải là
27for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
4for number in [2, 3, 5]: print[number]
Dung dịch
5for number in [2, 3, 5]: print[number]
Xác định lỗi tên biến
- Đọc mã bên dưới và cố gắng xác định lỗi là gì mà không cần chạy nó
- Chạy mã và đọc thông báo lỗi. Bạn nghĩ đây là loại
28 nào?for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
- Sửa lỗi
- Lặp lại bước 2 và 3 cho đến khi bạn sửa được tất cả các lỗi
6for number in [2, 3, 5]: print[number]
Xác định lỗi mục
- Đọc mã bên dưới và cố gắng xác định lỗi là gì mà không cần chạy nó
- Chạy mã và đọc thông báo lỗi. Đó là loại lỗi gì?
- Sửa lỗi
7for number in [2, 3, 5]: print[number]
Dung dịch
Đó là một lỗi chỉ mục
8for number in [2, 3, 5]: print[number]
Vấn đề là
29 trỏ đến một mục không tồn tại trong danh sách. Hãy nhớ mục đầu tiên của danh sách trong Python làfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
30.for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Thay thế31 bằngfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
32,for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
33,for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
34 hoặcfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
35 để in các mục khác nhau trong danh sách.for i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Những điểm chính
Vòng lặp for thực thi các lệnh một lần cho mỗi giá trị trong bộ sưu tập
Dòng đầu tiên của vòng lặp
1 phải kết thúc bằng dấu hai chấm và phần thân phải được thụt vàoprint[2] print[3] print[5]
Thụt đầu dòng luôn có ý nghĩa trong Python
Một vòng lặp
1 được tạo thành từ một tập hợp, một biến vòng lặp và một phần thânprint[2] print[3] print[5]
Các biến vòng lặp có thể được gọi là bất kỳ tên nào [nhưng nên đặt một tên có ý nghĩa cho biến lặp]
Phần thân của vòng lặp có thể chứa nhiều câu lệnh
Sử dụng
11 để lặp qua một dãy sốfor i in arange[0,10]: rate = eval['k' + str[i]] rate = np.array[rate,dtype=float] rate = log10[rate] rate.tolist[] vars[][rate] = 'k' + str[i]
Mẫu Accumulator biến nhiều giá trị thành một
Vòng lặp for có thể là một biến trong Python không?
Các thành phần Python cho vòng lặp Nói chung, bất kỳ đối tượng nào hỗ trợ giao thức lặp của Python đều có thể được sử dụng trong vòng lặp for . Một biến chứa từng phần tử từ vùng chứa/trình tự/trình tạo.
Làm cách nào để bạn tự động thay đổi tên biến trong python?
Sử dụng vòng lặp for để tạo tên biến động trong Python Phương thức globals[] trong Python cung cấp đầu ra dưới dạng từ điển của bảng ký hiệu chung hiện tại. Đoạn mã sau sử dụng vòng lặp for và phương thức globals[] để tạo tên biến động trong Python. đầu ra. Sao chép Xin chào từ biến số 5.
Làm thế nào để bạn thay đổi một tên biến trong một vòng lặp?
Bạn không thể đổi tên biến. Những gì bạn có thể muốn làm là tạo các giá trị mới với tên mới mỗi lần thông qua vòng lặp. .
biến = 0
danh sách của tôi = [0, 1, 2, 3]
cho x trong danh sách của tôi
biến = x
Làm thế nào để bạn khai báo một biến động trong Python?
Cách tiếp cận này cũng sẽ sử dụng hàm globals[] ngoài vòng lặp for. Hàm globals[] của Python trả về một từ điển chứa bảng ký hiệu toàn cầu hiện tại. Trong Python, vòng lặp for và hàm globals[] được sử dụng để tạo tên biến động