Các lập trình viên có thể giải quyết một số vấn đề khá phức tạp và trừu tượng, nhưng một dấu hiệu của một lập trình viên giỏi là họ lười biếng. Họ chỉ thích giải quyết một việc tại một thời điểm. Vì vậy, bạn cần một cách để chia vấn đề thành những phần nhỏ hơn, rời rạc hơn, cho phép bạn chỉ tập trung vào phần bạn muốn.
Các hàm là một cách để thực hiện sự trừu tượng hóa này trong Python. Hãy lấy turtle.reset[]
làm ví dụ. reset
là một chức năng chúng ta gọi trên turtle
của mình và nó thực sự là một sự trừu tượng hóa cho một số bước, cụ thể là
- Xóa bảng vẽ
- Đặt chiều rộng và màu trở lại mặc định
- Di chuyển con rùa trở lại vị trí ban đầu
Nhưng vì tất cả mã được chứa trong hàm nên chúng tôi không phải lo lắng về những chi tiết này. Chúng ta chỉ cần gọi chức năng này và biết nó sẽ làm những gì nó nói cho chúng ta
Vì vậy - làm thế nào để viết của riêng bạn?
Một hàm có thể được định nghĩa bằng từ khóa def
trong Python
def line_without_moving[]: turtle.forward[50] turtle.backward[50]
Hàm này chúng tôi đã xác định được gọi là
line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[]0 và nó là một trừu tượng cho hai bước rùa - một bước tiến và một bước lùi
Để sử dụng nó [hoặc như nó thường được gọi là “để gọi nó”], viết tên của nó theo sau dấu ngoặc đơn
line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[]
Chúng ta có thể viết nhiều chức năng hơn để loại bỏ một số sự lặp lại
def star_arm[]: line_without_moving[] turtle.right[360 / 5] for _ in range[5]: star_arm[]
Quan trọng
Python sử dụng thụt lề với khoảng trắng để xác định các khối mã thuộc về nhau. Trong Python, một khối [giống như các định nghĩa hàm được hiển thị ở trên] được giới thiệu bằng dấu hai chấm ở cuối dòng và các lệnh tiếp theo được thụt vào — thường là 4 dấu cách nữa trong. Khối kết thúc bằng dòng đầu tiên không được thụt vào
Điều này khác với nhiều ngôn ngữ lập trình khác, sử dụng các ký tự đặc biệt [như dấu ngoặc nhọn
line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[] turtle.right[90] line_without_moving[]1] để nhóm các khối mã lại với nhau
Không bao giờ sử dụng các ký tự tab để thụt lề các khối của bạn, chỉ sử dụng khoảng trắng. Bạn có thể – và nên – định cấu hình trình chỉnh sửa của mình để đặt 4 dấu cách khi nhấn phím tab. Vấn đề với việc sử dụng các ký tự tab là các lập trình viên python khác sử dụng khoảng trắng và nếu cả hai được sử dụng trong cùng một tệp thì python sẽ đọc sai [ở nơi tốt nhất, nó sẽ phàn nàn và trong trường hợp xấu nhất là các lỗi lạ, khó gỡ lỗi
Mô-đun con rùa cho phép chúng tôi phát hiện khi người dùng nhấn một số phím nhất định trên bàn phím hoặc di chuyển/nhấn chuột. Bất cứ khi nào người dùng thực hiện một hành động như vậy, nó được gọi là một sự kiện. Chúng ta có thể lắng nghe các sự kiện và kích hoạt các chức năng để chạy nếu chúng ta "nghe thấy" sự kiện
Phím bấm
Bước đầu tiên của chúng tôi là thiết lập một vài chức năng mà chúng tôi sẽ gọi khi nhấn một số phím nhất định
import turtle import random def up[]: tim.setheading[90] tim.forward[100] def down[]: tim.setheading[270] tim.forward[100] def left[]: tim.set_heading[180] tim.forward[100] def right[]: tim.setheading[0] tim.forward[100] # Setting the heading of the turtle simply faces it a certain direction
Để lắng nghe các sự kiện, chúng tôi gõ rùa. nghe[]
turtle.listen[]
Bây giờ chúng tôi đang lắng nghe các sự kiện, chúng tôi có thể kiểm tra xem một số sự kiện đã xảy ra chưa
import turtle import random def up[]: tim.setheading[90] tim.forward[100] def down[]: tim.setheading[270] tim.forward[100] def left[]: tim.set_heading[180] tim.forward[100] def right[]: tim.setheading[0] tim.forward[100] tim.listen[] tim.onkey[up, "Up"] # This will call the up function if the "Left" arrow key is pressed tim.onkey[down, "Down"] tim.onkey[left, "Left"] tim.onkey[right, "Right"] tim.mainloop[] # This will make sure the program continues to run
Sự kiện chuột
Bây giờ chúng ta có thể di chuyển con rùa xung quanh bằng các phím mũi tên, chúng ta muốn có thể thay đổi màu sắc của nó khi nhấp chuột trái và đóng dấu khi nhấp chuột phải