Hướng dẫn python loop limited times - thời gian giới hạn của vòng lặp python

Tôi biết những câu hỏi như thế này đã được hỏi vô số lần, nhưng không có gì tôi thấy dường như hoạt động trong trường hợp này. Làm cách nào để làm mã này chạy một lần cho mỗi i? Đó là một vòng lặp vô hạn in cùng một danh sách lặp đi lặp lại ngay bây giờ.

Nếu tôi tháo vòng while hoặc làm tổ phương thức append bên trong vòng for, nó sẽ không hoạt động như dự định. Tôi cần nó để nhân với 2 (2, 4, 8, 16, 32, v.v.) 64 lần.

board = []
def count():
    for i in range(1,65):
        while i:
            i = (i)*2
            board.append(i)
            if i in board is True:
                break
            print(board)
count()

hỏi ngày 19 tháng 7 năm 2017 lúc 3:37Jul 19, 2017 at 3:37

Hướng dẫn python loop limited times - thời gian giới hạn của vòng lặp python

5

Dưới đây là sửa đổi đơn giản nhất của mã của bạn. Những gì bạn muốn làm thực sự có thể đạt được đơn giản hơn nhiều trong Python (chẳng hạn như board = [2**i for i in range(1,65)]). Tôi chỉ muốn minh họa những gì cần phải được xóa khỏi mã của bạn để làm cho nó làm những gì bạn muốn nó làm (như tôi đã hiểu):

board = []
def count():
    j = 1
    for i in range(1, 65):
        j *= 2 # we do not want to modify loop's variable
        board.append(j)
    print(board)
count()
  1. Bạn không cần
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    0. Hóa ra nó là một vòng lặp vô hạn vì
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    1 luôn sai (xem lặp lại một vòng lặp hạn chế). Vì vậy, bạn đang chạy một vòng lặp vô hạn. Tôi nghĩ rằng bạn thực sự có ý định rằng ____ ____ 6 vòng lặp sau lần lặp đầu tiên và sau đó bạn nên sửa đổi điều kiện là
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    3 hoặc
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    4 cả hai luôn luôn đúng => không cần vòng lặp.
  2. Bạn không cần kiểm tra xem i có ở trong
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    6 vì trong tuyên bố trước đó, bạn đang thêm nó vào bảng để bạn biết chắc chắn rằng i nằm trong
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    6.
  3. Bạn có
    board = []
    def count():
        j = 1
        for i in range(1, 65):
            j *= 2 # we do not want to modify loop's variable
            board.append(j)
        print(board)
    count()
    
    9. Không nên sửa đổi biến của Loop (vì vậy tôi đã giới thiệu
    board = [2**i for i in list(range(1,65))]
    print(board)
    
    0). Ví dụ: nếu tôi giữ mã của bạn
    board = [2**i for i in list(range(1,65))]
    print(board)
    
    1 thì i sẽ được đặt lại về giá trị tiếp theo của biến vòng lặp ở lần lặp tiếp theo, do đó quên rằng i đã được đặt thành gấp đôi giá trị của nó.
  4. Di chuyển
    board = [2**i for i in list(range(1,65))]
    print(board)
    
    4 bên ngoài vòng lặp hoặc bạn sẽ nhận được một đầu ra rất dài.

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 3:44Jul 19, 2017 at 3:44

AGN Gazeragn GazerAGN Gazer

7,7082 Huy hiệu vàng21 Huy hiệu bạc43 Huy hiệu đồng2 gold badges21 silver badges43 bronze badges

2

Làm thế nào về mã này sẽ cung cấp cho bạn sức mạnh của 2S cho đến 2 ** 64. Tôi cho rằng đó là những gì được yêu cầu

board = [2**i for i in list(range(1,65))]
print(board)

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 3:51Jul 19, 2017 at 3:51

Hướng dẫn python loop limited times - thời gian giới hạn của vòng lặp python

Vòng lặp của bạn đang chạy vô hạn bởi vì trong khi tôi luôn luôn đúng. Hãy thử loại bỏ trong khi vòng lặp và nếu điều kiện là tốt. Ngoài ra, giới thiệu một biến mới để tăng gấp đôi giá trị của nó khi tôi trở thành 64 trong 7 lần nhưng bạn cần 64 giá trị.

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 3:44Jul 19, 2017 at 3:44

AGN Gazeragn GazerRachit

7,7082 Huy hiệu vàng21 Huy hiệu bạc43 Huy hiệu đồng2 silver badges19 bronze badges

3

Làm thế nào về mã này sẽ cung cấp cho bạn sức mạnh của 2S cho đến 2 ** 64. Tôi cho rằng đó là những gì được yêu cầu

board = []
def count():
    total = 1
    for i in range(1,65):
        total = total*2
        board.append(total)
        print(total) # just so you can better visualize the output
count()

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 3:51

2
4
8
16
32
64
128

2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
2147483648
4294967296
8589934592
17179869184
34359738368
68719476736
137438953472
274877906944
549755813888
1099511627776
2199023255552
4398046511104
8796093022208
17592186044416
35184372088832
70368744177664
140737488355328
281474976710656
562949953421312
1125899906842624
2251799813685248
4503599627370496
9007199254740992
18014398509481984
36028797018963968
72057594037927936
144115188075855872
288230376151711744
576460752303423488
1152921504606846976
2305843009213693952
4611686018427387904
9223372036854775808
18446744073709551616

Vòng lặp của bạn đang chạy vô hạn bởi vì trong khi tôi luôn luôn đúng. Hãy thử loại bỏ trong khi vòng lặp và nếu điều kiện là tốt. Ngoài ra, giới thiệu một biến mới để tăng gấp đôi giá trị của nó khi tôi trở thành 64 trong 7 lần nhưng bạn cần 64 giá trị.

Rachit RachitJul 19, 2017 at 3:50

Hướng dẫn python loop limited times - thời gian giới hạn của vòng lặp python