Giải pháp fizzbuzz tốt nhất python

Bây giờ tôi sẽ đề cập trước khi bắt đầu rằng có một số cách để triển khai FizzBuzz. Và vì vậy những gì chúng ta sẽ làm sẽ là giải pháp cá nhân của tôi. Tuy nhiên, nếu bạn đã triển khai một phiên bản trông hơi khác một chút và nó vẫn hoạt động thì điều đó cũng hoàn toàn ổn

Tôi sẽ đặt từng yêu cầu ở đây vào nhận xét của chúng ta để chúng ta có thể gạch bỏ chúng khỏi danh sách

Vì vậy, điều đầu tiên mà chúng tôi biết rằng chúng tôi cần triển khai là một chức năng và chúng tôi muốn gọi nó là fizz_buzz. Vì vậy, tôi sẽ nói def và sau đó tôi sẽ chỉ gọi nó là fizz_buzz và tôi đã đề cập rằng tôi muốn có Max tùy ý. Và vì vậy tôi sẽ gọi đối số đó là max_num và sau đó tôi có thể chuyển sang thân hàm. Tôi sẽ gạch tên này ra khỏi danh sách vì chúng ta đã tạo một chức năng

và chúng tôi cũng biết rằng chúng tôi muốn gọi hàm này bằng một cái gì đó giống như cú pháp này ở đây. Vì vậy, tôi muốn vượt qua số 100 và điều này sẽ cung cấp cho tôi chính xác những gì chúng tôi đang tìm kiếm ở đây trong phần yêu cầu của dự án

Vì vậy, điều tiếp theo tôi sẽ thực hiện là chúng tôi muốn lặp qua toàn bộ tập hợp các phần tử cho đến khi Max là gì, vì vậy tôi sẽ nói cho num trong và tôi sẽ chỉ tạo một phạm vi.

for num in rage[1, max_num + 1]

Và lý do tại sao chúng tôi làm điều này là, hãy nhớ rằng bất cứ khi nào bạn vượt qua một phạm vi, Python sẽ tăng lên và nó coi đó là ranh giới trên. Vì vậy, nếu chúng ta cho max_num một trăm thì điều này thực sự sẽ chỉ đi từ 1 đến chín mươi chín. Vì vậy, tôi sẽ chuyển vào max_num + 1 và điều này sẽ cho chúng tôi 100. Vì vậy, đây sẽ là for trong vòng lặp. Sau đó, từ đó, tôi sẽ thực hiện điều kiện của mình, vì vậy ngay bây giờ chúng tôi đã hoàn thành vòng lặp của mình nên chúng tôi đang tiến lên phía trước khá tốt

Bây giờ chúng ta cần thực hiện điều kiện, vì vậy chúng ta cần kiểm tra một số mục. Cụ thể, chúng tôi cần ba điều kiện vì chúng tôi biết rằng chúng tôi cần kiểm tra bội số của 3 bội số của 5 và sau đó là bội số của 3 và 5. Đây là một điểm gây xôn xao dư luận có thể thu hút một số nhà phát triển. Vì vậy, nếu phần này làm bạn bối rối hoặc bạn gặp phải một số hành vi kỳ quặc ngay tại đây, đừng lo lắng, những gì chúng tôi sẽ làm là hướng dẫn giải pháp cho điều đó

Phần khó khăn là nếu bạn làm theo thứ tự. Vì vậy, nếu tôi kiểm tra điều kiện 3 và sau đó tôi kiểm tra điều kiện 5. Vấn đề với điều đó là tôi sẽ không thể kiểm tra xem điều kiện của 3 và 5 có phải là điều kiện của 15 không. Bởi vì về mặt kỹ thuật khi bạn nói rằng chúng tôi sẽ vượt qua số 15

Vì vậy, giả sử rằng num bằng 15 và đó là vị trí của nó trong vòng lặp. Nếu chúng ta có một điều kiện ở đây cho biết nếu num % 3 bằng 0

Chà, trong trường hợp 15. 15 modulo 3 bằng không. Và vì vậy, mặc dù chúng tôi đang tìm kiếm 15 là một kết hợp hoàn hảo hoặc tôi nên nói 3 và 5 là một kết hợp hoàn hảo, điều này thực sự sẽ không hoạt động và chúng tôi sẽ có một số hành vi kỳ lạ vì điều kiện này sẽ đúng và sau đó nó sẽ in ra

Vì vậy, giải pháp cho vấn đề này thực sự phức tạp hơn một chút. Và vì vậy chúng ta sẽ kiểm tra điều kiện cuối cùng trước, vì vậy chúng ta sẽ kiểm tra xem liệu một phần tử có phải là bội số của 3 và 5 hay không và điều này sẽ buộc chúng ta phải sử dụng điều kiện ghép nên tôi sẽ nói

dif fizz_buzz[max_num]:
  for num in range[1, max_num +1]:
    if num % 3 == 0 and num % 5 == 0:
      print['FizzBuzz']

fizz_buzz[100]

Và đây là hành vi mà chúng tôi đang tìm kiếm và đây thực sự là phần khó nhất trong toàn bộ chương trình là đảm bảo bạn thực hiện đúng phần đó

Vì vậy, bây giờ với điều kiện đó, sau đó tôi có thể nói elif, vì vậy bây giờ chúng ta hãy đi và tìm những điều kiện khác vì vậy bây giờ nếu nó chỉ chia hết cho 3 thì chúng ta sẽ in Fiz. Và cuối cùng và đây vẫn phải là một Elif bởi vì chúng tôi vẫn đang kiểm tra một điều kiện. Vì vậy, bây giờ nếu nó chia hết cho 5 thì chúng ta sẽ in ra buzz, vì vậy đây là điều kiện thứ ba của chúng ta

Sau đó, chúng ta phải có một trận chung kết khác. Vì vậy, tôi sẽ nói khác và đây là nơi chúng tôi chỉ cần in ra số đó. Vì vậy, ở đây tôi có thể nói in và sau đó là num

Và hãy xem kết quả của chúng ta ngay bây giờ. Vì vậy, tôi sẽ đi lên hàng đầu, đảm bảo rằng chúng tôi có các điều kiện, chúng tôi có các toán tử toán học của mình, mọi thứ đã sẵn sàng để chúng tôi hoàn thành từng nhiệm vụ

Nhưng bây giờ hãy xem nó có thực sự hoạt động không. Vì vậy, nếu tôi chạy cái này, hãy đi xuống và hãy thực sự đếm nó từ đầu. Vì vậy, chúng tôi có một hai và sau đó ba. Vì vậy, ngay bây giờ chúng tôi có ba là fizz đó là chính xác

Và sau đó nếu chúng ta chuyển sang năm thì đây là Buzz Fizz ở vị trí 6 nên 6 là một số mà ba là bội số của

Vì vậy, đó là chính xác và sau đó 7, 8, 9 chúng ta lại có Fizz Buzz ở 10, điều đó thật hoàn hảo khi giảm xuống ở 15 và chúng ta có FizzBuzz. Vì vậy, nếu chúng tôi giảm xuống tận 30 thì chúng tôi lại có FizzBuzz

Và vì vậy tất cả điều này đang hoạt động hoàn hảo

Vì vậy, nếu bạn đã trải qua điều này và bạn có mã trông giống mã của tôi và bạn có kết quả cũng đưa ra loại hành vi tương tự thì bạn làm rất tốt. Bạn đã trải qua và xây dựng thành công FizzBuzz

Đây là một trong những câu hỏi phỏng vấn lập trình phổ biến nhất nên bạn nên biết. Và một trong những điểm mấu chốt quan trọng nhất là đảm bảo rằng bạn luôn cẩn thận với thứ tự các điều kiện của mình bởi vì nếu bạn trộn lẫn chúng thì có thể dẫn đến một số hành vi khó hiểu. Rất tuyệt nếu bạn đã trải qua điều đó và bây giờ bạn có thể tiếp tục với phần còn lại của khóa học

Chủ Đề