Tìm nhiều con trăn
Trong các ví dụ sau, đầu vào và đầu ra được phân biệt bằng sự hiện diện hoặc vắng mặt của dấu nhắc ( và ). để lặp lại ví dụ, bạn phải nhập mọi thứ sau dấu nhắc, khi dấu nhắc xuất hiện; . Lưu ý rằng dấu nhắc phụ trên một dòng trong một ví dụ có nghĩa là bạn phải nhập một dòng trống; Show Bạn có thể chuyển đổi hiển thị lời nhắc và đầu ra bằng cách nhấp vào >>> width = 20 >>> height = 5 * 9 >>> width * height 9001 ở góc trên bên phải của hộp ví dụ. Nếu bạn ẩn lời nhắc và xuất ra một ví dụ, thì bạn có thể dễ dàng sao chép và dán các dòng đầu vào vào trình thông dịch của mình Nhiều ví dụ trong sách hướng dẫn này, ngay cả những ví dụ được nhập tại dấu nhắc tương tác, bao gồm nhận xét. Nhận xét trong Python bắt đầu bằng ký tự băm, >>> width = 20 >>> height = 5 * 9 >>> width * height 9002 và kéo dài đến cuối dòng vật lý. Một nhận xét có thể xuất hiện ở đầu dòng hoặc sau khoảng trắng hoặc mã, nhưng không xuất hiện trong một chuỗi ký tự. Một ký tự băm trong một chuỗi ký tự chỉ là một ký tự băm. Vì các nhận xét là để làm rõ mã và không được giải thích bởi Python, chúng có thể bị bỏ qua khi nhập các ví dụ Vài ví dụ # this is the first comment spam = 1 # and this is the second comment # .. and now a third! text = "# This is not a comment because it's inside quotes." 3. 1. Sử dụng Python làm Máy tínhHãy thử một số lệnh Python đơn giản. Khởi động trình thông dịch và chờ lời nhắc chính, >>> width = 20 >>> height = 5 * 9 >>> width * height 9001. (Không nên mất nhiều thời gian. ) 3. 1. 1. SốTrình thông dịch hoạt động như một máy tính đơn giản. bạn có thể nhập một biểu thức vào nó và nó sẽ ghi giá trị. Cú pháp biểu thức đơn giản. các toán tử >>> width = 20 >>> height = 5 * 9 >>> width * height 9004, >>> width = 20 >>> height = 5 * 9 >>> width * height 9005, >>> width = 20 >>> height = 5 * 9 >>> width * height 9006 và >>> width = 20 >>> height = 5 * 9 >>> width * height 9007 hoạt động giống như trong hầu hết các ngôn ngữ khác (ví dụ: Pascal hoặc C); . Ví dụ >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.6 Các số nguyên (e. g. >>> width = 20 >>> height = 5 * 9 >>> width * height 9009, >>> n # try to access an undefined variable Traceback (most recent call last): File "0, >>> n # try to access an undefined variable Traceback (most recent call last): File "1) có loại , những cái có phần phân số (e. g. >>> n # try to access an undefined variable Traceback (most recent call last): File "3, >>> n # try to access an undefined variable Traceback (most recent call last): File "4) có loại. Chúng ta sẽ xem thêm về các loại số sau trong hướng dẫn Bộ phận ( >>> width = 20 >>> height = 5 * 9 >>> width * height 9007) luôn trả về một số float. Để làm và lấy kết quả là số nguyên, bạn có thể sử dụng toán tử >>> n # try to access an undefined variable Traceback (most recent call last): File "7; >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 17 Với Python, có thể sử dụng toán tử >>> n # try to access an undefined variable Traceback (most recent call last): File "9 để tính lũy thừa >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 128 Dấu bằng ( >>> 4 * 3.75 - 1 14.00) được dùng để gán giá trị cho một biến. Sau đó, không có kết quả nào được hiển thị trước lời nhắc tương tác tiếp theo >>> width = 20 >>> height = 5 * 9 >>> width * height 900 Nếu một biến không được "xác định" (được gán một giá trị), cố gắng sử dụng nó sẽ báo lỗi cho bạn >>> n # try to access an undefined variable Traceback (most recent call last): File " Có hỗ trợ đầy đủ cho dấu phẩy động; >>> 4 * 3.75 - 1 14.0 Trong chế độ tương tác, biểu thức in cuối cùng được gán cho biến >>> 4 * 3.75 - 1 14.01. Điều này có nghĩa là khi bạn đang sử dụng Python làm máy tính bàn, việc tiếp tục tính toán sẽ dễ dàng hơn một chút, chẳng hạn >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06 Biến này phải được người dùng coi là chỉ đọc. Không gán giá trị cho nó một cách rõ ràng — bạn sẽ tạo một biến cục bộ độc lập có cùng tên che dấu biến tích hợp với hành vi kỳ diệu của nó Ngoài và , Python hỗ trợ các loại số khác, chẳng hạn như và. Python cũng có hỗ trợ tích hợp cho , và sử dụng hậu tố >>> 4 * 3.75 - 1 14.06 hoặc >>> 4 * 3.75 - 1 14.07 để biểu thị phần ảo (e. g. >>> 4 * 3.75 - 1 14.08) 3. 1. 2. ChuỗiBên cạnh các số, Python cũng có thể thao tác với các chuỗi, có thể được biểu diễn theo nhiều cách. Chúng có thể được đặt trong dấu ngoặc đơn ( >>> 4 * 3.75 - 1 14.09) hoặc dấu ngoặc kép ( >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.060) với cùng một kết quả. >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.061 có thể được sử dụng để thoát dấu ngoặc kép >>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't" >>> '"Yes," they said.' '"Yes," they said.' >>> "\"Yes,\" they said." '"Yes," they said.' >>> '"Isn\'t," they said.' '"Isn\'t," they said.' Trong trình thông dịch tương tác, chuỗi đầu ra được đặt trong dấu ngoặc kép và các ký tự đặc biệt được thoát bằng dấu gạch chéo ngược. Mặc dù điều này đôi khi trông khác với đầu vào (dấu ngoặc kép kèm theo có thể thay đổi), hai chuỗi này tương đương nhau. Chuỗi được đặt trong dấu nháy kép nếu chuỗi chứa dấu nháy đơn và không có dấu nháy kép, ngược lại chuỗi được đặt trong dấu nháy đơn. Hàm tạo ra đầu ra dễ đọc hơn, bằng cách bỏ qua các dấu ngoặc kép kèm theo và bằng cách in các ký tự đặc biệt và thoát ra >>> '"Isn\'t," they said.' '"Isn\'t," they said.' >>> print('"Isn\'t," they said.') "Isn't," they said. >>> s = 'First line.\nSecond line.' # \n means newline >>> s # without print(), \n is included in the output 'First line.\nSecond line.' >>> print(s) # with print(), \n produces a new line First line. Second line. Nếu bạn không muốn các ký tự mở đầu bằng >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.061 được hiểu là các ký tự đặc biệt, bạn có thể sử dụng các chuỗi thô bằng cách thêm một >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.064 trước trích dẫn đầu tiên >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.60 Có một khía cạnh tinh tế đối với chuỗi thô. một chuỗi thô không được kết thúc bằng một số lẻ gồm >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.061 ký tự; Chuỗi ký tự có thể kéo dài nhiều dòng. Một cách là sử dụng dấu ngoặc kép. >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.066 hoặc >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.067. Cuối dòng được tự động đưa vào chuỗi, nhưng có thể ngăn chặn điều này bằng cách thêm ____26_______1 vào cuối dòng. ví dụ sau >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.61 tạo đầu ra sau (lưu ý rằng không bao gồm dòng mới ban đầu) >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.62 Các chuỗi có thể được nối (dán lại với nhau) bằng toán tử >>> width = 20 >>> height = 5 * 9 >>> width * height 9004 và lặp lại với >>> width = 20 >>> height = 5 * 9 >>> width * height 9006 >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.63 Hai hoặc nhiều chuỗi ký tự (i. e. những cái được đặt giữa các dấu ngoặc kép) cạnh nhau sẽ tự động được nối >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.64 Tính năng này đặc biệt hữu ích khi bạn muốn ngắt các chuỗi dài >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.65 Tuy nhiên, điều này chỉ hoạt động với hai chữ, không hoạt động với các biến hoặc biểu thức >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.66 Nếu bạn muốn nối các biến hoặc một biến và một chữ, hãy sử dụng >>> width = 20 >>> height = 5 * 9 >>> width * height 9004 >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.67 Các chuỗi có thể được lập chỉ mục (được đăng ký), với ký tự đầu tiên có chỉ số 0. Không có loại ký tự riêng biệt; >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.68 Các chỉ số cũng có thể là số âm, để bắt đầu đếm từ bên phải >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.69 Lưu ý rằng vì -0 giống như 0, nên các chỉ số âm bắt đầu từ -1 Ngoài lập chỉ mục, cắt lát cũng được hỗ trợ. Trong khi lập chỉ mục được sử dụng để lấy các ký tự riêng lẻ, thì việc cắt lát cho phép bạn lấy chuỗi con >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 170 Các chỉ số lát cắt có các giá trị mặc định hữu ích; >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 171 Lưu ý cách bắt đầu luôn được bao gồm và kết thúc luôn bị loại trừ. Điều này đảm bảo rằng >>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't" >>> '"Yes," they said.' '"Yes," they said.' >>> "\"Yes,\" they said." '"Yes," they said.' >>> '"Isn\'t," they said.' '"Isn\'t," they said.'2 luôn bằng với >>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't" >>> '"Yes," they said.' '"Yes," they said.' >>> "\"Yes,\" they said." '"Yes," they said.' >>> '"Isn\'t," they said.' '"Isn\'t," they said.'3 >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 172 Một cách để nhớ cách thức hoạt động của các lát cắt là coi các chỉ số như trỏ giữa các ký tự, với cạnh trái của ký tự đầu tiên được đánh số 0. Khi đó cạnh phải của ký tự cuối cùng của xâu n ký tự có chỉ số n chẳng hạn >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 173 Hàng số đầu tiên cho biết vị trí của các chỉ số 0…6 trong chuỗi; . Lát cắt từ i đến j bao gồm tất cả các ký tự nằm giữa các cạnh có nhãn tương ứng là i và j Đối với các chỉ số không âm, độ dài của một lát cắt là sự khác biệt của các chỉ số, nếu cả hai đều nằm trong giới hạn. Ví dụ: độ dài của >>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't" >>> '"Yes," they said.' '"Yes," they said.' >>> "\"Yes,\" they said." '"Yes," they said.' >>> '"Isn\'t," they said.' '"Isn\'t," they said.'4 là 2 Cố gắng sử dụng một chỉ mục quá lớn sẽ dẫn đến lỗi >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 174 Tuy nhiên, các chỉ mục lát cắt nằm ngoài phạm vi được xử lý một cách duyên dáng khi được sử dụng để cắt lát >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 175 Chuỗi Python không thể thay đổi - chúng là. Do đó, việc gán cho một vị trí được lập chỉ mục trong chuỗi dẫn đến lỗi >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 176 Nếu bạn cần một chuỗi khác, bạn nên tạo một chuỗi mới >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 177 Hàm tích hợp trả về độ dài của chuỗi >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 178 Xem thêm Chuỗi là ví dụ về các loại trình tự và hỗ trợ các hoạt động phổ biến được hỗ trợ bởi các loại đó Các chuỗi hỗ trợ một số lượng lớn các phương thức để chuyển đổi và tìm kiếm cơ bản Chuỗi ký tự có biểu thức nhúng Thông tin về định dạng chuỗi với Các hoạt động định dạng cũ được gọi khi chuỗi là toán hạng bên trái của toán tử >>> n # try to access an undefined variable Traceback (most recent call last): File "8 được mô tả chi tiết hơn tại đây 3. 1. 3. Danh sáchPython biết một số loại dữ liệu phức hợp, được sử dụng để nhóm các giá trị khác lại với nhau. Linh hoạt nhất là danh sách, có thể được viết dưới dạng danh sách các giá trị (mục) được phân tách bằng dấu phẩy giữa các dấu ngoặc vuông. Danh sách có thể chứa các mục thuộc các loại khác nhau, nhưng thông thường tất cả các mục đều có cùng loại >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 179 Giống như chuỗi (và tất cả các loại dựng sẵn khác), danh sách có thể được lập chỉ mục và cắt lát >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1280 Tất cả các hoạt động của lát trả về một danh sách mới chứa các phần tử được yêu cầu. Điều này có nghĩa là slice sau trả về một trong danh sách >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1281 Danh sách cũng hỗ trợ các hoạt động như nối >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1282 Không giống như chuỗi, mà là, danh sách là một loại, tôi. e. có thể thay đổi nội dung của họ >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1283 Bạn cũng có thể thêm các mục mới vào cuối danh sách bằng cách sử dụng phương thức >>> 'spam eggs' # single quotes 'spam eggs' >>> 'doesn\'t' # use \' to escape the single quote... "doesn't" >>> "doesn't" # ...or use double quotes instead "doesn't" >>> '"Yes," they said.' '"Yes," they said.' >>> "\"Yes,\" they said." '"Yes," they said.' >>> '"Isn\'t," they said.' '"Isn\'t," they said.'8 (chúng ta sẽ xem thêm về các phương thức sau) >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1284 Cũng có thể gán cho các lát và điều này thậm chí có thể thay đổi kích thước của danh sách hoặc xóa hoàn toàn >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1285 Chức năng tích hợp cũng áp dụng cho danh sách >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1286 Có thể lồng danh sách (tạo danh sách chứa danh sách khác) chẳng hạn >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1287 3. 2. Những bước đầu tiên để lập trìnhTất nhiên, chúng ta có thể sử dụng Python cho các tác vụ phức tạp hơn là cộng hai với hai lại với nhau. Chẳng hạn, chúng ta có thể viết một dãy con ban đầu của dãy Fibonacci như sau >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 1288 Ví dụ này giới thiệu một số tính năng mới
chú thích Vì >>> n # try to access an undefined variable Traceback (most recent call last): File "9 có độ ưu tiên cao hơn so với >>> width = 20 >>> height = 5 * 9 >>> width * height 9005, nên >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.603 sẽ được hiểu là >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.604 và do đó dẫn đến >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.605. Để tránh điều này và nhận được >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.606, bạn có thể sử dụng >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.607 Không giống như các ngôn ngữ khác, các ký tự đặc biệt như >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.608 có cùng ý nghĩa với cả dấu ngoặc đơn ( >>> 4 * 3.75 - 1 14.09) và dấu ngoặc kép ( >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.060). Sự khác biệt duy nhất giữa hai loại này là trong các dấu ngoặc đơn, bạn không cần phải thoát khỏi >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.611 (nhưng bạn phải thoát khỏi >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.612) và ngược lại |