Python in tên biến trong vòng lặp for

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út

câ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
    for number in [2, 3, 5]:
        print[number]
    
    9,
    print[2]
    print[3]
    print[5]
    
    0, v.v.
  • 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
    print[2]
    print[3]
    print[5]
    
    1 này tương đương với
print[2]
print[3]
print[5]
  • Và đầu ra của vòng lặp
    print[2]
    print[3]
    print[5]
    
    1 là

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ì
    print[2]
    print[3]
    print[5]
    
    3 hoặc
    print[2]
    print[3]
    print[5]
    
    4/
    print[2]
    print[3]
    print[5]
    
    5 để hiển thị lồng nhau
    • 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]
1
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]
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,
    print[2]
    print[3]
    print[5]
    
    6, là thứ mà vòng lặp đang được chạy trên đó
  • Phần thân,
    print[2]
    print[3]
    print[5]
    
    7, chỉ định những việc cần làm cho từng giá trị trong bộ sưu tập
  • Biến vòng lặp,
    print[2]
    print[3]
    print[5]
    
    8, là biến thay đổi cho mỗi lần lặp của vòng lặp
    • “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ụ.
        print[2]
        print[3]
        print[5]
        
        9 thay 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]
        
        10
        for number in [2, 3, 5]:
            print[number]
        
        1

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]
0

Sử dụng phạm vi để lặp qua một dãy số

  • Hàm tích hợ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]
    
    11 tạo ra một chuỗi số
    • 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
  • 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]
    
    12 là số 0. N-1
    • 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]
1
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]
2

Hoặ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
      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
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

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]
4

Mẫ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à
    1. 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
    2. 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
    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]
    
    14 là
    • Cộng 1 vào giá trị hiện tại của biến vòng lặp
      print[2]
      print[3]
      print[5]
      
      8
    • Thêm giá trị đó vào giá trị hiện tại của biến tích lũ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]
      
      16
    • Gán giá trị đó cho
      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]
      
      16, thay thế giá trị hiện tại
  • Chúng tôi phải thê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]
    
    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. 10

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

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]
6

Đả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”]

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]
7

Dung dị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]
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 cho
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. Mỗi lần qua vòng lặ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]
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ụ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]
21 vớ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]
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à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]
8

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

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]
9

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

for number in [2, 3, 5]:
    print[number]
0
for number in [2, 3, 5]:
    print[number]
1
for number in [2, 3, 5]:
    print[number]
2

for number in [2, 3, 5]:
    print[number]
3

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à

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]
27

for number in [2, 3, 5]:
    print[number]
4

Dung dịch

for number in [2, 3, 5]:
    print[number]
5

Xác định lỗi tên biến

  1. Đọ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ó
  2. Chạy mã và đọc thông báo lỗi. Bạn nghĩ đây là loạ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]
    
    28 nào?
  3. Sửa lỗi
  4. Lặp lại bước 2 và 3 cho đến khi bạn sửa được tất cả các lỗi
for number in [2, 3, 5]:
    print[number]
6

Xác định lỗi mục

  1. Đọ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ó
  2. Chạy mã và đọc thông báo lỗi. Đó là loại lỗi gì?
  3. Sửa lỗi
for number in [2, 3, 5]:
    print[number]
7

Dung dịch

Đó là một lỗi chỉ mục

for number in [2, 3, 5]:
    print[number]
8

Vấn đề 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]
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.
Thay thế
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]
31 bằ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]
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ặc
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]
35 để in các mục khác nhau trong danh sách.

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

    print[2]
    print[3]
    print[5]
    
    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ào

  • Thụt đầu dòng luôn có ý nghĩa trong Python

  • Một vòng lặp

    print[2]
    print[3]
    print[5]
    
    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ân

  • 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

    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 để lặp qua một dãy số

  • 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

Có cách nào để in tên biến trong Python không?

Để in tên biến. Sử dụng một chuỗi ký tự được định dạng để lấy tên và giá trị của biến. Tách chuỗi trên dấu bằng và lấy tên của biến. Sử dụng hàm print[] để in tên biến .

Tôi có thể sử dụng một biến trong vòng lặp for Python không?

Một vòng lặp for trong Python có hai thành phần. Một thùng chứa, trình tự hoặc trình tạo chứa hoặc tạo ra các phần tử được lặp lại. 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. Biến chứa từng phần tử từ vùng chứa/trình tự/trình tạo .

Bạn có thể gọi các biến trong vòng lặp for không?

Bạn có thể sử dụng các biến trong vòng lặp for không? . Any variable declared inside the for or while loop or inside the parenthesis of a for statement can only be used in the body of the loop.

Chủ Đề