Hướng dẫn how do you find the multiple of 3 in python? - làm thế nào để bạn tìm thấy bội số của 3 trong python?
Thông tin phản hồi chungTôi sẽ cố gắng vượt qua một số điểm có thể hữu ích để lưu ý. Đầu tiên có một số điều tôi thích về mã của bạn. Đầu tiên nó rất dễ đọc. Thứ hai, tôi thích rằng bạn chia logic của bạn. Bạn cũng phân chia tìm chuỗi và in nó. Điều này là tốt. Với điều này được nói, luôn có những thứ có thể và nên được cải thiện Show
Ngữ nghĩaBạn nên sử dụng mô -đun 1 trong câu trả lời của bạn.
Mà làm cho mã của bạn có thể tái sử dụng cho sau này. Ví dụ: bạn có thể gọi các chức năng từ tệp của mình trong các chương trình khác. Điều khoản 2 của bạn ở cuối mã là vô dụng. Bạn có thể đã viết
Lựa chọn thay thếMột vấn đề với mã của bạn là bạn có nhiều điểm thoát. Bây giờ đây không phải là thứ gì đó để đổ mồ hôi quá nhiều, và nó không phải là mục tiêu để luôn cố gắng có một lối thoát duy nhất. Tuy nhiên, có thể dễ dàng gỡ lỗi mã với các điểm thoát hơn. Điều này tất nhiên là phù hợp hơn nhiều trong mã dài hơn và phức tạp hơn. Mặc dù đó là một điều tốt để luôn luôn có trong tâm trí. Một cách để làm điều này là xác định một biến mới 3
Mã bây giờ chỉ có hai điểm thoát tuy nhiên vẫn có thể được cải thiện. Một điểm quan trọng là nếu một số chia hết cho 4 và 5, thì nó sẽ chia hết cho 6. Vì vậy, chúng tôi có thể dần dần xây dựng chuỗi, giống như được hiển thị bên dưới
Như là điểm cuối cùng, câu lệnh 7 có thể được viết bằng toán tử điều kiện terniator
Trong đó kết hợp hai điểm thoát thành một điểm duy nhất. Để tổng hợp
Đóng các bình luậnPython có một hướng dẫn kiểu PEP 8 giải thích chi tiết về cách cấu trúc mã của bạn. Tôi toàn bộ khuyên bạn nên lướt qua nó và làm theo nó. Vấn đề 8 rất, rất đơn giản. Nó có thể được giải quyết theo một số cách chỉ sử dụng một dòng đơn giản. Syb0rg, hiển thị một cách để viết mã này
Bạn thậm chí có thể rút ngắn điều này thành
Sử dụng một số voodoo pythonic khó hiểu. Tuy nhiên, như tôi đã nói trong phần giới thiệu, tôi thích mã của bạn, bởi vì nó dễ hiểu. Hầu như luôn luôn tốt hơn là có mã rõ ràng, dễ đọc hơn mã mật mã ngắn hơn một vài dòng. Điều này tất nhiên làm coi thường mọi cải tiến tốc độ và như vậy Tôi tương đối mới với Python và do đó cố gắng tự thiết lập một số thuật toán đơn giản. Đây là vấn đề đầu tiên từ Project Euler, mặc dù có những giải pháp khác có sẵn cho cùng một vấn đề trong Python, nhưng tôi đã thử một cách tiếp cận khác. Trong Crux, ý tưởng là tìm tổng của tất cả các bội số của 3 hoặc 5 dưới 1000. Đây là mã của tôi.
Đây là lỗi mà tôi nhận được
8 2 3 3 75Examples :
PHP C++ 9 8 2 3 3 75 3 4 3 6 7 8 3 0 8 2 3 3 5 6 7 8 9 0 8 7 3 4 3 6 7 8 9 0 1 4Java 3 4 5 6 7 8 3 4 3 6 7 8 3 6 7 8 8 2 3 3 3 4 5 8 7 8 4 0 7 7 0 8 7 3 4 3 6 7 8 9 0 01 8 03 04 05 4 4Python3 8 9 0 1Java 3 4 5 6 8 3 4 3 6 8 7 3 51 3 53 54 04 05C# 3 6 5 6 7 8 3 4 3 6 7 8 3 0 8 3 6 7 8 8 2 3 3 3 4 5
7 0 8 7 3 4 3 6 7 8 91 0 01 8 95 4 4return string if string else n 8return string if string else n 9def fizz_buzz(num): string = '' if num % 3==0: string +='Fizz' if num % 5==0: string +='Buzz' return string if string else num if __name__ == "__main__": for n in range(1, 100): print(fizz_buzz(n)) 0 def fizz_buzz(num): string = '' if num % 3==0: string +='Fizz' if num % 5==0: string +='Buzz' return string if string else num if __name__ == "__main__": for n in range(1, 100): print(fizz_buzz(n)) 1 98Java 7 3 4 5 6 8 3 4 3 6 7 05 27 8 3 6 7 8 4 8 2 3 3 3 4 5 36def fizz_buzz(num): string = '' if num%3==0 and num%5==0: string = 'FizzBuzz' elif num % 3 == 0: string = 'Fizz' elif num % 5==0: string = 'Buzz' if string: return string return num 8def fizz_buzz(num): string = '' if num % 3 == 0: string += 'Fizz' if num % 5==0: string += 'Buzz' if string: return string return num 7 i=0;exec"print i%3/2*'Fizz'+i%5/4*'Buzz'or-~i;i+=1;"*100 8 elif num % 5==0: return 'Buzz' return num 4 def main(): num = input('Insert number:') output = sumOfMultiples(num) print(output) def sumOfMultiples(param): j = 0 i = 0 for i in range(i, param): if (i % 3 ==0) or (i % 5 == 0) and (i % 15 != 0): j = j + i return j if __name__ == '__main__': main() 0for i in range(1,101): print("Fizz"*(i%3==0) + "Buzz"*(i%5==0) or i) 7 37 3 8 5 6 7 8 42 08 09 8 2 3 3 3 4 5 7 0 8 7 3 4 3 6 8 9 0 1Java O(n) 3 4 0C++ 9 5 6 3 4 3 6 7 8 3 4 3 6 8 3 6 7 8 3 6 7 8 9 0 1 4Java 3 4 5 6 7 8 3 4 3 6 7 8 3 6 7 8 4 8 2 3 3 3 4 5 7 8 7 8 4 0 7 3 8 5 6 4 4elif num % 5==0: return 'Buzz' return num 08 elif num % 5==0: return 'Buzz' return num 09 8 9 0 1Java 3 4 51 3 53 42C# 3 6 5 6 7 8 3 4 3 6
7 8 3 6 7 8 4 3 6 7 8 9 0 1 67 68 4 4return string if string else n 8return string if string else n 9def fizz_buzz(num): string = '' if num % 3==0: string +='Fizz' if num % 5==0: string +='Buzz' return string if string else num if __name__ == "__main__": for n in range(1, 100): print(fizz_buzz(n)) 0 def fizz_buzz(num): string = '' if num % 3==0: string +='Fizz' if num % 5==0: string +='Buzz' return string if string else num if __name__ == "__main__": for n in range(1, 100): print(fizz_buzz(n)) 1 98Java 7 3 4 4 5 6 36def fizz_buzz(num): string = '' if num%3==0 and num%5==0: string = 'FizzBuzz' elif num % 3 == 0: string = 'Fizz' elif num % 5==0: string = 'Buzz' if string: return string return num 8def fizz_buzz(num): string = '' if num % 3 == 0: string += 'Fizz' if num % 5==0: string += 'Buzz' if string: return string return num 7 i=0;exec"print i%3/2*'Fizz'+i%5/4*'Buzz'or-~i;i+=1;"*100 8 elif num % 5==0: return 'Buzz' return num 4 def main(): num = input('Insert number:') output = sumOfMultiples(num) print(output) def sumOfMultiples(param): j = 0 i = 0 for i in range(i, param): if (i % 3 ==0) or (i % 5 == 0) and (i % 15 != 0): j = j + i return j if __name__ == '__main__': main() 0for i in range(1,101): print("Fizz"*(i%3==0) + "Buzz"*(i%5==0) or i) 7 37 3 8 5 6 7 08 09 4 3 6 58
|