Hướng dẫn how do you avoid repetitions in python? - làm thế nào để bạn tránh lặp lại trong python?

Tôi có một vấn đề với sự hiểu biết về cách tránh lặp lại #Redundant trong các vòng lặp. Chương trình này dự định in các ước số của số trong phạm vi 2 và number:

number = int[input['Enter an integer: ']]
for divisor in range [2, number]:
    if number % divisor == 0:
        print [divisor]
    else:
        print [number, 'has no divisors in the range']

Mặc dù nó có thể trông rất cơ bản đối với bạn, nhưng tôi bối rối với việc tránh sự dư thừa.

Selcuk

53.7K12 Huy hiệu vàng96 Huy hiệu bạc100 Huy hiệu đồng12 gold badges96 silver badges100 bronze badges

Đã hỏi ngày 4 tháng 2 năm 2019 lúc 5:35Feb 4, 2019 at 5:35

5

Giữ một count cho các ước số và kiểm tra ở cuối nếu nó bằng không.

number = int[input['Enter an integer: ']]
count = 0
for divisor in range [2, number]:
    if number % divisor == 0:
        print [divisor]
        count += 1
if count == 0:
    print [number, 'has no divisors in the range']

Đã trả lời ngày 4 tháng 2 năm 2019 lúc 5:44Feb 4, 2019 at 5:44

Xashruxashruxashru

3.2002 huy hiệu vàng13 Huy hiệu bạc28 Huy hiệu đồng2 gold badges13 silver badges28 bronze badges

1

Theo cách tiếp cận này, bạn cần một biến bổ sung để giữ theo dõi xem có một ước số hay không. Cũng thụt vào khối else của bạn nên được loại bỏ. Hãy xem mã này:

number = int[input['Enter an integer: ']]
is_divisor_found = False
for divisor in range[2, number]:
    if number % divisor == 0:
        is_divisor_found = True
        print[divisor]
if not is_divisor_found:
    print[number, 'has no divisors in the range']

Đã trả lời ngày 4 tháng 2 năm 2019 lúc 5:44Feb 4, 2019 at 5:44

XashruxashruTaohidul Islam

3.2002 huy hiệu vàng13 Huy hiệu bạc28 Huy hiệu đồng3 gold badges23 silver badges38 bronze badges

Theo cách tiếp cận này, bạn cần một biến bổ sung để giữ theo dõi xem có một ước số hay không. Cũng thụt vào khối else của bạn nên được loại bỏ. Hãy xem mã này:

number = int[input['Enter an integer: ']]
has_divisors = False
for divisor in range [2, number]:
    if number % divisor == 0:
        print [divisor]
        has_divisors = True
if not has_divisors:
    print [number, 'has no divisors in the range']

Taohidul Hồi giáo Hồi giáo Hồi giáoFeb 4, 2019 at 5:46

5.1403 Huy hiệu vàng23 Huy hiệu bạc38 Huy hiệu ĐồngRon U

Tôi khuyên bạn nên lưu một lá cờ Boolean cho bạn biết liệu bạn có tìm thấy một ước số trong vòng lặp hay không. Cái gì đó như:1 gold badge5 silver badges18 bronze badges

Đã trả lời ngày 4 tháng 2 năm 2019 lúc 5:46

Ron uron u

import math

number = int[input['Enter an integer: ']]
divisor = 2
have_divisor = False

while divisor 

Bài Viết Liên Quan

Chủ Đề