Rùa Python nhanh như thế nào?

Có nhiều mô-đun trong Python cung cấp các tính năng rất mạnh mẽ mà chúng ta có thể sử dụng trong các chương trình của riêng mình. Một số trong số này có thể gửi email hoặc tìm nạp các trang web. Cái mà chúng ta sẽ xem xét trong chương này cho phép chúng ta tạo ra những con rùa và để chúng vẽ các hình dạng và hoa văn

Những chú rùa rất thú vị, nhưng mục đích thực sự của chương này là để dạy cho chúng ta thêm một chút về Python và phát triển chủ đề về tư duy máy tính hoặc tư duy như một nhà khoa học máy tính. Hầu hết Python được đề cập ở đây sẽ được khám phá sâu hơn sau

3. 1. Chương trình rùa đầu tiên của chúng tôi

Hãy thử một vài dòng trong Python shell để tạo một con rùa mới và bắt đầu vẽ một hình chữ nhật. [Chúng ta sẽ gọi biến tham chiếu đến con rùa đầu tiên của chúng ta là alex , nhưng bạn có thể chọn một tên khác nếu tuân theo các quy tắc đặt tên từ chương trước].

1
2
3
4
5
6
7

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]

Sau lệnh thứ hai, một cửa sổ mới hiện lên. Lệnh thứ ba đặt một con trỏ – được gọi trìu mến là con rùa trong mô-đun này – mà chúng tôi đặt tên là alex.

Ba dòng tiếp theo di chuyển alex về phía trước, xoay anh ta sang trái và di chuyển anh ta về phía trước một lần nữa, hoàn thành hai cạnh của hình chữ nhật. Sau khi các lệnh này đã được nhập, bạn sẽ thấy một cửa sổ giống như thế này

Dưới đây là một số điều bạn cần hiểu về chương trình này

  • Dòng đầu tiên yêu cầu Python tải mô-đun có tên rùa . Mô-đun đó mang đến cho chúng tôi hai loại mới mà chúng tôi có thể sử dụng. loại Rùa và loại Màn hình . Ký hiệu dấu chấm con rùa. Rùa có nghĩa là “Loại Rùa được xác định trong mô-đun rùa”. [Hãy nhớ rằng Python phân biệt chữ hoa chữ thường, vì vậy tên mô-đun, với chữ thường t , khác với loại Rùa. ]
  • Sau đó, chúng tôi tạo và mở cái mà nó gọi là màn hình [chúng tôi muốn gọi nó là cửa sổ hơn] mà chúng tôi gán cho biến wn . Mỗi cửa sổ chứa một canvas, là khu vực bên trong cửa sổ mà chúng ta có thể vẽ.
  • Ở dòng 3, chúng ta tạo một con rùa. Biến alex được tạo để chỉ con rùa này. Ba dòng đầu tiên này thiết lập chúng tôi, sẵn sàng để làm một số điều hữu ích.
  • Trong các dòng 4-6, chúng tôi hướng dẫn đối tượng alex di chuyển và xoay. Chúng tôi làm điều này bằng cách gọi hoặc kích hoạt các phương thức của alex — đây là những hướng dẫn mà tất cả các con rùa đều biết cách phản hồi
  • Dòng cuối cùng cũng đóng một vai trò. biến wn đề cập đến cửa sổ đang hoạt động. Khi chúng ta gọi phương thức exit title của nó, nó sẽ tạm dừng việc thực thi chương trình và đợi người dùng nhấp chuột vào đâu đó trong cửa sổ. Khi sự kiện nhấp chuột này xảy ra, phản hồi là đóng cửa sổ rùa và thoát [dừng thực thi] chương trình Python.

Hãy tiếp tục và nhấp vào cửa sổ sau khi nhập lệnh cuối cùng

Một đối tượng có thể có nhiều phương thức khác nhau — những việc nó có thể làm — và nó cũng có thể có các thuộc tính — [đôi khi được gọi là thuộc tính]. Ví dụ: mỗi con rùa có một thuộc tính màu. Lời gọi phương thức alex. color["red"] sẽ làm cho alex có màu đỏ và bản vẽ cũng sẽ có màu đỏ.

Màu sắc của con rùa, chiều rộng của chiếc bút của nó, vị trí của con rùa trong cửa sổ, hướng nó quay mặt, v.v. đều là một phần của trạng thái hiện tại của nó. Tương tự, đối tượng cửa sổ có màu nền và một số văn bản trong thanh tiêu đề, kích thước và vị trí trên màn hình. Đây là tất cả các phần của trạng thái của đối tượng cửa sổ

Có khá nhiều phương thức cho phép chúng ta sửa đổi các đối tượng con rùa và cửa sổ. Chúng tôi sẽ chỉ hiển thị một vài. Chúng tôi chỉ nhận xét những dòng khác với ví dụ trước [và chúng tôi đã sử dụng một tên biến khác cho con rùa này]. Ngoài ra, chúng tôi sẽ đưa ví dụ này vào tập lệnh có tên tess. py , vì sẽ hơi lâu để gõ đi gõ lại vào trình bao Python.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16

import turtle

turtle.setup[800, 600]      # set the window size to 800 by 600 pixels
wn = turtle.Screen[]        # set wn to the window object
wn.bgcolor["lightgreen"]    # set the window background color
wn.title["Hello, Tess!"]    # set the window title

tess = turtle.Turtle[]
tess.color["blue"]           # make tess blue
tess.pensize[3]              # set the width of her pen

tess.forward[300]
tess.left[120]
tess.forward[300]

wn.exit title[]

Chạy chương trình này sẽ tạo ra một cửa sổ đồ họa trông như thế này

Khi chúng tôi chạy chương trình này, cửa sổ mới này sẽ bật lên và sẽ duy trì trên màn hình cho đến khi chúng tôi nhấp vào nó

Mở rộng chương trình này

  1. Sửa đổi chương trình này để trước khi tạo cửa sổ, nó sẽ nhắc người dùng nhập màu nền mong muốn. Nó sẽ lưu trữ phản hồi của người dùng trong một biến và sửa đổi màu của cửa sổ theo ý muốn của người dùng. [Dấu. bạn có thể tìm danh sách tên màu được phép tại http. //www. tcl. tk/man/tcl8. 4/TkCmd/màu sắc. htm. Nó bao gồm một số cái khá khác thường, như “peach puff” và “HotPink”. ]
  2. Thực hiện các thay đổi tương tự để cho phép người dùng, trong thời gian chạy, đặt màu của tess
  3. Làm tương tự với chiều rộng của bút tess. Dấu. hộp thoại của bạn với người dùng sẽ trả về một chuỗi, nhưng phương thức của tess’ pensize yêu cầu đối số của nó là một kiểu int. Vì vậy, bạn sẽ cần chuyển đổi chuỗi thành kiểu int trước khi chuyển chuỗi đó sang pensize .

3. 2. Ví dụ — một đàn rùa

Giống như chúng ta có thể có nhiều số nguyên khác nhau trong một chương trình, chúng ta có thể có nhiều con rùa. Mỗi người trong số họ được gọi là một ví dụ. Mỗi trường hợp có các thuộc tính và phương thức riêng — vì vậy alex có thể vẽ bằng bút đen mỏng và ở một vị trí nào đó, trong khi tess có thể đi theo hướng của riêng mình bằng bút màu hồng to. Vì vậy, đây là điều xảy ra khi alex hoàn thành hình chữ nhật của anh ấy và tess hoàn thành hình tam giác của cô ấy, trong chương trình có tên tess_n_alex. p .

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

import turtle

# setup the window and its attributes
turtle.setup[800, 600]
wn = turtle.Screen[]
wn.bgcolor["lightgreen"]
wn.title["Tess & Alex"]

# instantiate [create] tess and set her attributes
tess = turtle.Turtle[]
tess.color["hotpink"]
tess.pensize[5]

# instantiate alex
alex = turtle.Turtle[]

# draw an equilateral triangle with tess
tess.forward[320]
tess.left[120]
tess.forward[320]
tess.left[120]
tess.forward[320]
tess.left[120]

# turn tess around and move her away from the origin
tess.right[180]
tess.forward[320]

# make alex draw a square
alex.forward[200]
alex.left[90]
alex.forward[200]
alex.left[90]
alex.forward[200]
alex.left[90]
alex.forward[200]

wn.exit title[]

cái tạo ra cái này khi chạy

Dưới đây là một số quan sát về Cách suy nghĩ như một nhà khoa học máy tính

  • Có 360 độ trong một vòng tròn đầy đủ. Nếu bạn cộng tất cả các lượt mà một con rùa thực hiện, bất kể có bước nào xảy ra giữa các lượt, bạn có thể dễ dàng biết liệu chúng có cộng lại thành bội số nào đó của 360 hay không. Điều này sẽ thuyết phục bạn rằng alex đang quay mặt về cùng một hướng như khi lần đầu tiên được tạo ra. [Quy ước hình học có 0 độ hướng về phía Đông, và đó cũng là trường hợp ở đây. ]
  • Chúng tôi có thể bỏ qua lượt cuối cùng cho alex, nhưng điều đó sẽ không thỏa mãn bằng. Nếu bạn được yêu cầu vẽ một hình dạng khép kín như hình vuông hoặc hình chữ nhật, bạn nên hoàn thành tất cả các lượt và để con rùa trở lại nơi nó bắt đầu, quay về cùng hướng như lúc bắt đầu. Điều này làm cho việc suy luận về chương trình và soạn các đoạn mã thành các chương trình lớn hơn dễ dàng hơn đối với con người chúng ta
  • Chúng tôi cũng làm như vậy với tess. cô ấy đã vẽ hình tam giác của mình và xoay đủ 360 độ. Sau đó, chúng tôi xoay cô ấy lại và di chuyển cô ấy sang một bên. Ngay cả dòng trống 23 cũng là một gợi ý về cách thức hoạt động của khối tinh thần của lập trình viên. nói một cách khái quát, các chuyển động của tess được chia nhỏ thành “vẽ hình tam giác” [dòng 17-22] và sau đó “di chuyển ra khỏi điểm gốc” [dòng 25 và 26]
  • Một trong những cách sử dụng chính của nhận xét là ghi lại ý tưởng và ý tưởng lớn của bạn. Chúng không phải lúc nào cũng rõ ràng trong mã
  • Và, uh-huh, hai con rùa có thể không đủ cho một đàn, nhưng bạn hiểu ý

3. 3. vòng lặp for

Khi chúng tôi vẽ hình vuông, nó khá tẻ nhạt. Chúng tôi phải di chuyển rồi rẽ, di chuyển rồi rẽ, v.v. vân vân. , bốn lần. Nếu chúng ta đang vẽ một hình lục giác, hoặc hình bát giác hoặc hình đa giác có 42 cạnh, đó sẽ là một cơn ác mộng

Vì vậy, một khối xây dựng cơ bản của tất cả các chương trình là có thể lặp đi lặp lại một số mã

Python cho vòng lặp giải quyết điều này cho chúng tôi

Giả sử chúng ta có một số bạn bè và chúng ta muốn gửi cho từng người một email mời họ tham gia bữa tiệc của chúng ta. Vì chúng tôi chưa biết cách gửi email nên hiện tại chúng tôi sẽ chỉ in một tin nhắn cho từng bạn

1
2
3

for f in ["Joe", "Amy", "Brad", "Angelina", "Zuki", "Thandi", "Paris"]:
    invitation = "Hi " + f + ".  Please come to my party on Saturday!"
    print[invitation]

Khi chúng tôi chạy cái này, đầu ra trông như thế này

________số 8

Nghiên cứu kỹ ví dụ này và lưu ý những điều sau đây

  • ["Joe", "Amy", "Brad", "Angelina",< . Chúng ta sẽ nghiên cứu các danh sách chính thức hơn trong chương sau, nhưng bây giờ bạn chỉ cần biết rằng chúng chứa một tập hợp các giá trị được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông [ "Zuki", "Thandi", "Paris"] is a new data type, called a list, that can hold a collection of values. We will study lists more formally in a later chapter, but for now you just need to know that they hold a collection of values seperated by commas and enclosed in square brackets [[, ]].
  • f trong câu lệnh for này được gọi là biến vòng lặp. Nó được gán cho từng giá trị trong danh sách, từng giá trị một và theo thứ tự chúng xuất hiện trong danh sách.
  • Dòng 2 và 3 là thân vòng lặp. Phần thân vòng lặp luôn được thụt vào. Việc thụt lề xác định chính xác câu lệnh nào là “trong vòng lặp”
  • Trên mỗi lần lặp lại hoặc vượt qua vòng lặp, trước tiên, kiểm tra được thực hiện để xem liệu có còn mục nào cần xử lý hay không. Nếu không còn gì [đây được gọi là điều kiện kết thúc của vòng lặp] thì vòng lặp đã kết thúc. Chương trình tiếp tục thực hiện ở câu lệnh tiếp theo sau thân vòng lặp
  • Nếu vẫn còn mục cần xử lý, biến vòng lặp được cập nhật để chỉ mục tiếp theo trong danh sách. Điều này có nghĩa là, trong trường hợp này, thân vòng lặp được thực hiện ở đây 7 lần và mỗi lần f sẽ tham chiếu đến một bạn khác.
  • Khi kết thúc mỗi lần thực hiện phần nội dung của vòng lặp, Python quay lại câu lệnh for để xem liệu có thêm mục nào không .

3. 4. Luồng thực thi của vòng lặp for

Sơ đồ vòng lặp for

Khi một chương trình thực thi, trình thông dịch luôn theo dõi câu lệnh nào sắp được thực thi. Ta gọi đây là luồng điều khiển, luồng thực hiện chương trình. Khi con người thực hiện các chương trình, họ thường dùng ngón tay lần lượt chỉ vào từng câu lệnh. Vì vậy, bạn có thể coi luồng điều khiển là “ngón tay di chuyển của Python”

Luồng điều khiển cho đến bây giờ hoàn toàn từ trên xuống dưới, mỗi lần một câu lệnh. Vòng lặp for thay đổi điều này.

Luồng điều khiển thường dễ hình dung và dễ hiểu nếu chúng ta vẽ sơ đồ. Phần này cho biết các bước chính xác và logic về cách câu lệnh for thực thi.

3. 5. Vòng lặp đơn giản hóa chương trình rùa của chúng tôi

Để vẽ một hình vuông, chúng tôi muốn làm điều tương tự bốn lần - di chuyển con rùa và xoay. Trước đây chúng ta đã sử dụng 8 dòng để alex vẽ bốn cạnh của một hình vuông. Điều này thực hiện chính xác như vậy, nhưng chỉ sử dụng ba dòng

for i in [0, 1, 2, 3]:
    alex.forward[250]
    alex.left[90]

Mặc dù lưu một số dòng mã có thể thuận tiện, nhưng đó không phải là vấn đề lớn ở đây. Điều quan trọng hơn nhiều là chúng tôi đã tìm thấy một mẫu câu lệnh lặp lại và tổ chức lại chương trình của chúng tôi để lặp lại mẫu đó. Tìm các phần và bằng cách nào đó sắp xếp các chương trình của chúng ta xung quanh các phần đó là một kỹ năng quan trọng trong Cách tư duy như một nhà khoa học máy tính

Các giá trị trong danh sách, [0, 1, 2, 3], were provided to make the loop body execute 4 times. We could have used any four values, but these are the conventional ones to use. In fact, they are so popular that Python gives us a special built-in range tích hợp đặc biệt cho mục đích này.

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
0

Lưu ý rằng

  • range tạo một đối tượng có thể phân phối một chuỗi giá trị cho vòng lặp for .
  • Các nhà khoa học máy tính thích đếm từ 0. Khi bạn chuyển phạm vi một đối số nguyên duy nhất, các giá trị được gán cho biến vòng lặp bắt đầu từ 0 và tăng dần từ 1 đến 1 nhỏ hơn giá trị đối số.

Chúng ta cũng có thể tạo danh sách các số bằng cách chuyển đầu ra của lệnh gọi đến hàm dãy cho hàm the list type function:

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
1

Thử cái này

Cái gì list[range[0]] trả về? list[range[1]]?

Mẹo nhỏ của chúng tôi trước đó để đảm bảo rằng alex thực hiện lượt cuối cùng để hoàn thành 360 độ đã được đền đáp. nếu chúng tôi không làm điều đó, thì chúng tôi đã không thể sử dụng một vòng lặp cho cạnh thứ tư của hình vuông. Nó sẽ trở thành một “trường hợp đặc biệt”, khác với các mặt khác. Khi có thể, chúng tôi muốn làm cho mã của mình phù hợp với một mẫu chung hơn là phải tạo một trường hợp đặc biệt.

Vì vậy, để lặp lại điều gì đó bốn lần, một lập trình viên Python giỏi sẽ làm điều này

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
2

Bây giờ, bạn đã có thể biết cách thay đổi chương trình trước đó của chúng tôi để tess cũng có thể sử dụng for loop to draw her equilateral triangle.

Điều gì sẽ xảy ra nếu chúng tôi thực hiện thay đổi này

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
3

Một biến cũng có thể được gán giá trị là một danh sách. Vì vậy, danh sách cũng có thể được sử dụng trong các tình huống khác ngoài vòng lặp for . Đoạn mã trên có thể được viết lại như thế này.

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
4

3. 6. Một vài phương pháp và thủ thuật rùa khác

Phương thức rùa có thể sử dụng góc hoặc khoảng cách âm. Vì vậy, tess. forward[-100] sẽ di chuyển tess về phía sau và tess. left[-30] xoay cô ấy sang phải. Ngoài ra, vì có 360 độ trong một vòng tròn, quay 30 độ sang trái sẽ khiến bạn quay về cùng hướng với quay 330 độ sang phải. [Tuy nhiên, hoạt ảnh trên màn hình sẽ khác — bạn sẽ có thể biết liệu tess đang quay theo chiều kim đồng hồ hay ngược chiều kim đồng hồ. ]

Điều này cho thấy rằng chúng ta không cần cả phương pháp rẽ trái và rẽ phải — chúng ta có thể là những người theo chủ nghĩa tối giản và chỉ cần có một phương pháp. Ngoài ra còn có một phương pháp lạc hậu. [Nếu bạn rất mọt sách, bạn có thể thích nói alex. lùi [-100] để di chuyển alex về phía trước. ]

Một phần của suy nghĩ như một nhà khoa học là hiểu thêm về cấu trúc và các mối quan hệ phong phú trong lĩnh vực của bạn. Vì vậy, sửa đổi một số kiến ​​thức cơ bản về hình học và trục số, giống như chúng ta đã hoàn thành ở đây, là một khởi đầu tốt nếu chúng ta định chơi với rùa

Chuồng rùa có thể nhặt lên hoặc đặt xuống. Điều này cho phép chúng tôi di chuyển một con rùa đến một nơi khác mà không cần vẽ một đường. Các phương pháp là

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
5

Mỗi con rùa có thể có hình dạng riêng. Những cái có sẵn "có sẵn" là mũi tên , trống , . circle, classic, square, triangle, turtle.

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
6

Bạn có thể tăng tốc hoặc giảm tốc độ hoạt hình của chú rùa. [Hoạt ảnh kiểm soát tốc độ rùa quay và di chuyển về phía trước]. Cài đặt tốc độ có thể được đặt trong khoảng từ 1 [chậm nhất] đến 10 [nhanh nhất]. Nhưng nếu bạn đặt tốc độ thành 0, nó có một ý nghĩa đặc biệt - tắt hoạt ảnh và đi nhanh nhất có thể

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
7

Một con rùa có thể “đóng dấu” dấu chân của nó lên khung vẽ và dấu chân này sẽ vẫn còn sau khi con rùa chuyển đi nơi khác. Dập hoạt động, ngay cả khi bút lên

Hãy làm một ví dụ thể hiện một số tính năng mới này trong xoắn ốc. p .

>>> import turtle
>>> turtle.setup[800, 600]
>>> alex = turtle.Turtle[]
>>> alex.forward[300]
>>> alex.left[90]
>>> alex.forward[200]
>>> exit[]
8

cái tạo ra cái này khi chạy

Cẩn thận ngay. tất cả ngoại trừ một trong những hình bạn nhìn thấy trên màn hình ở đây là dấu chân được tạo bởi tem . Nhưng chương trình vẫn chỉ có một phiên bản rùa — bạn có thể tìm ra cái nào là tess thật không? . nếu bạn không chắc, hãy viết một dòng mã mới sau vòng lặp for để thay đổi màu sắc của tess hoặc đặt bút của cô ấy xuống và vẽ một . ]

3. 7. Bảng chú giải

thuộc tínhMột số trạng thái hoặc giá trị thuộc về một đối tượng cụ thể. Ví dụ, tess có màu. bề mặt canvas trong cửa sổ nơi diễn ra quá trình vẽ. luồng điều khiểnXem luồng thực hiện trong chương tiếp theo. câu lệnh vòng lặp for trong Python để thuận tiện lặp lại các câu lệnh trong phần thân của vòng lặp. listMột kiểu dữ liệu Python chứa một tập hợp các giá trị. Danh sách trong Python được đặt trong dấu ngoặc vuông [ [ , ] ] và . thân vòng lặp Bất kỳ số lượng câu lệnh nào được lồng trong một vòng lặp. Việc lồng nhau được chỉ ra bởi thực tế là các câu lệnh được thụt vào bên dưới câu lệnh vòng lặp for. biến vòng lặp Một biến được sử dụng như một phần của vòng lặp for. Nó được gán một giá trị khác nhau trên mỗi lần lặp của vòng lặp và được sử dụng như một phần của điều kiện kết thúc vòng lặp, thể hiệnMột đối tượng thuộc về một lớp. tess và alex là các thể hiện khác nhau của hàm lớp TurtlemethodA được gắn vào một đối tượng. Gọi hoặc kích hoạt phương thức khiến đối tượng phản hồi theo một cách nào đó, e. g. ,].loop bodyAny number of statements nested inside a loop. The nesting is indicated by the fact that the statements are indented under the for loop statement.loop variableA variable used as part of a for loop. It is assigned a different value on each iteration of the loop, and is used as part of the terminating condition of the loop,instanceAn object that belongs to a class. tess and alex are different instances of the class TurtlemethodA function that is attached to an object. Invoking or activating the method causes the object to respond in some way, e.g. chuyển tiếp là phương thức khi chúng ta nói tess. chuyển tiếp[100] . InvovMột đối tượng có các phương thức. Chúng tôi sử dụng động từ gọi có nghĩa là kích hoạt phương thức. Gọi một phương thức được thực hiện bằng cách đặt dấu ngoặc đơn sau tên phương thức, với một số đối số có thể. Vậy nên wn. exit title[] là lời gọi của phương thức exit title . moduleMột tệp chứa các định nghĩa và câu lệnh Python dành cho việc sử dụng trong các chương trình Python khác. Nội dung của một mô-đun được cung cấp cho chương trình khác bằng cách sử dụng câu lệnh nhập. objectMột “thứ” mà một biến có thể tham chiếu tới. Đây có thể là một cửa sổ màn hình hoặc một trong những con rùa bạn đã tạo. rangeA hàm tích hợp trong Python để tạo chuỗi số nguyên. Nó đặc biệt hữu ích khi chúng ta cần viết một vòng lặp for thực thi một số lần cố định. điều kiện kết thúc Một điều kiện xảy ra khiến một vòng lặp ngừng lặp lại phần thân của nó. Trong vòng lặp for mà chúng ta đã thấy trong chương này, điều kiện kết thúc là khi không còn phần tử nào để gán cho biến vòng lặp.

3. 8. bài tập

  1. Viết chương trình in Chúng tôi thích rùa của Python. 100 lần.

  2. Từ vựng được sử dụng với các đối tượng phần mềm được lấy cảm hứng từ các đối tượng trong thế giới thực. Hãy đảo ngược quá trình suy nghĩ và mô tả một đối tượng trong thế giới thực, điện thoại di động của bạn, sử dụng cùng một từ vựng mà chúng ta sử dụng với các đối tượng phần mềm

    Đưa ra ba thuộc tính của điện thoại di động của bạn. Đưa ra ba phương pháp của điện thoại di động của bạn

  3. Tạo danh sách có tên tháng chứa 12 chuỗi có tên của các tháng trong năm theo thứ tự xuất hiện.

  4. Viết chương trình sử dụng vòng lặp for lặp qua tháng để in

    Một của the tháng của the year is January

    Một của the tháng của the year is February

    vân vân

  5. Giả sử bạn có bài tập xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]

    1. Viết một vòng lặp in từng số trên một dòng mới
    2. Viết một vòng lặp in mỗi số và hình vuông của nó trên một dòng mới

    Thử thách bổ sung [dành cho học sinh thực sự thông minh]

    1. Viết một vòng lặp cộng tất cả các số trong danh sách vào một biến có tên total . Bạn nên đặt biến total thành giá trị 0 trước khi bắt đầu cộng chúng và in giá trị trong . after the loop has completed.
    2. In ra tích của tất cả các số trong danh sách. [tích có nghĩa là tất cả được nhân lên với nhau]

  6. Sử dụng các vòng lặp for để làm một con rùa vẽ các đa giác đều này [đều có nghĩa là tất cả các cạnh đều có cùng độ dài, tất cả các góc đều giống nhau].

    • Một tam giác đều
    • Hình vuông
    • Hình lục giác [sáu cạnh]
    • Hình bát giác [tám cạnh]
  7. Một sinh viên say rượu rẽ ngẫu nhiên và sau đó tiến 100 bước về phía trước, rẽ ngẫu nhiên khác, rẽ thêm 100 bước, rẽ một số lượng ngẫu nhiên khác, v.v. Một sinh viên khoa học xã hội ghi lại góc của mỗi khúc cua trước khi thực hiện 100 bước tiếp theo. Dữ liệu thử nghiệm của cô ấy là [160, -43, 270, -97 . [Các góc dương ngược chiều kim đồng hồ. ] Sử dụng một con rùa để vẽ con đường mà người bạn say rượu của chúng ta đã đi. -43, 200, -940, 17, -86]. [Positive angles are counter-clockwise.] Use a turtle to draw the path taken by our drunk friend.

  8. Cải thiện chương trình của bạn ở trên để cũng cho chúng tôi biết tiêu đề của học sinh say rượu sau khi anh ta đi loanh quanh xong. [Giả sử anh ta bắt đầu ở tiêu đề 0]

  9. Nếu bạn định vẽ một đa giác đều có 18 cạnh, bạn cần quay con rùa ở mỗi góc là bao nhiêu?

  10. Tại lời nhắc tương tác, đoán trước mỗi dòng sau đây sẽ làm gì, sau đó ghi lại điều gì sẽ xảy ra. Tự chấm điểm, cho mình một điểm cho mỗi câu hỏi mà bạn dự đoán chính xác

    >>> import turtle
    >>> turtle.setup[800, 600]
    >>> alex = turtle.Turtle[]
    >>> alex.forward[300]
    >>> alex.left[90]
    >>> alex.forward[200]
    >>> exit[]
    
    9

  11. Viết chương trình vẽ một hình như thế này

    gợi ý

    • Hãy thử điều này trên một tờ giấy, di chuyển và xoay điện thoại di động của bạn như thể nó là một con rùa. Xem điện thoại di động của bạn thực hiện bao nhiêu vòng quay hoàn chỉnh trước khi bạn hoàn thành ngôi sao. Vì mỗi vòng quay đầy đủ là 360 độ nên bạn có thể tính tổng số độ mà điện thoại của bạn đã được xoay qua. Nếu bạn chia số đó cho 5, vì có năm điểm đối với ngôi sao, bạn sẽ biết phải xoay con rùa bao nhiêu độ ở mỗi điểm
    • Bạn có thể giấu một con rùa đằng sau chiếc áo choàng tàng hình của nó nếu bạn không muốn nó lộ ra. Nó vẫn sẽ vẽ các đường của nó nếu bút của nó bị hạ xuống. Phương thức này được gọi là tess. hideturtle[] . Tess. showturtle[] làm cho con rùa hiển thị trở lại.

  12. Viết chương trình sẽ vẽ một màn hình trông giống như thế này

    Dấu

    Sử dụng kết hợp penup , chuyển tiếp , . pendown, stamp, and backward turtle methods to get this to work.

    Con rùa sẽ kết thúc trở lại nơi nó bắt đầu khi chương trình của bạn kết thúc

  13. Bây giờ, dựa trên giải pháp của bạn từ bài tập trước để Viết chương trình vẽ mặt đồng hồ trông giống như thế này

    Tốc độ tối đa trong Python rùa là bao nhiêu?

    Có thể đặt cài đặt tốc độ trong khoảng từ 1 [chậm nhất] đến 10 [nhanh nhất] . Nhưng nếu bạn đặt tốc độ thành 0, nó có một ý nghĩa đặc biệt - tắt hoạt ảnh và đi nhanh nhất có thể. Một con rùa có thể “đóng dấu” dấu chân của nó lên khung vẽ và dấu chân này sẽ vẫn còn sau khi con rùa chuyển đi nơi khác.

    Con rùa Python có đáng học hỏi không?

    Nếu bạn là người mới bắt đầu học Python, thì khóa học này chắc chắn sẽ giúp ích cho bạn trên hành trình đặt những bước đầu tiên vào thế giới lập trình . Thư viện rùa Python đi kèm với một tính năng tương tác tương tự giúp các lập trình viên mới cảm nhận được cách làm việc với Python.

    Trăn rùa có khác gì Trăn không?

    rùa là thư viện Python được cài đặt sẵn cho phép người dùng tạo ảnh và hình dạng bằng cách cung cấp cho họ một canvas ảo. Cây bút trên màn hình mà bạn sử dụng để vẽ được gọi là con rùa và đây là tên gọi của thư viện.

Chủ Đề