Bạn sẽ phải thay đổi số lượng không gian trước một hoặc nhiều dòng mã. Nó phổ biến trong lập trình như Python. Di chuyển chúng vào là thụt lề. Di chuyển chúng ra là cống hiến [hoặc deindenting]. Ví dụ: nếu bạn muốn chuyển một câu lệnh in từ phần chính của chương trình vào khối mã của một vòng lặp, bạn cần phải thụt vào nó. Để di chuyển nó ra khỏi khối mã của một vòng lặp, bạn cần phải xác định nó. Idle có các công cụ để thụt lề và các khối mã dành.print statement from the main part
of the program into the code block of a loop, you need to indent it. To move it out of the code block of a loop, you need to deindent it. IDLE has tools to indent and dedent code blocks. Hãy thử các công cụ xác nhận đó: Bắt đầu với một số mã. Đây là một số: Chọn các dòng để thụt vào. Nhấp và kéo bằng chuột của bạn để chọn mã [câu lệnh in cuối cùng] hoặc nhấn Shift trong khi sử dụng các phím mũi tên của bạn. Chọn Định dạng → Vùng thụt lề. Ctrl+] cũng hoạt động. Đảm bảo mã được thụt vào một khối mã hợp lệ. Th thụt lề có ý nghĩa với Python. Bạn sẽ gặp lỗi cú pháp nếu bạn có mức thụt lề sai. Tốt nhất là sử dụng bốn không gian thụt lề cho mỗi cấp độ khối mã. Nếu bạn sử dụng một số không gian khác [2, 6, 8], điều đó là tốt. Điều quan trọng là tất cả các mã trong khối mã phải có cùng một số không gian. Để đi theo cách khác, chọn mã và chọn Tệp → Vùng dành cho Ctrl+[].""This is just a test file""
DEBUG = True
print['Hello World! from the editor'] # hashes are used for comments too
"" You usually use hashes at the end of a line
rather than for a block comment like this one.
""
###############################################################
# Nevertheless you can still use hashes for block comments
# Especially if you want to have a specific visual effect
###############################################################
if DEBUG:
print['I think I need another print statement in this code block']
print['See that the comments were ignored?'] # even this one
Về bài viết này
Bài viết này là từ cuốn sách:
- Python cho trẻ em cho người giả,,
Về cuốn sách tác giả:
Brendan Scott là một người cha yêu Python và muốn trẻ em cũng có được một số phép thuật của nó. Anh ta bắt đầu Pythonforkids.brendanscott.com để giúp dạy đứa con lớn nhất của mình. Ông duy trì nó để giúp những người trẻ tuổi khác học Python.
Bài viết này có thể được tìm thấy trong danh mục:
- Python,,
Nếu bạn làm nổi bật tất cả các dòng và nhấn tab, nó sẽ thốt lên tất cả
Tuy nhiên, tôi muốn giới thiệu một trình soạn thảo thay thế cho Idle, chẳng hạn như Notepad ++, Pycharm, văn bản siêu phàm, Gedit [trên Linux] hoặc bất kỳ số lượng nào khác. Bạn có thể chỉ cần chỉnh sửa mã của mình trong trình chỉnh sửa [nhiều trong số chúng có nhiều tính năng hơn không nhàn rỗi], sau đó chạy tập lệnh của bạn từ một dòng lệnh.
Thay đổi vết lõm của chuỗi đa dòng
Tín dụng: Tom tốt
Vấn đề
Bạn có một chuỗi được tạo thành từ nhiều dòng và bạn cần xây dựng một chuỗi khác từ nó, thêm hoặc loại bỏ các không gian hàng đầu trên mỗi dòng để vết lõm của mỗi dòng là một số khoảng trống tuyệt đối.
Dung dịch
Chúng tôi không cần re
cho việc này. Mô -đun string
[hoặc các phương thức chuỗi, trong Python 2.0 trở lên] là khá đủ:
import string def reindent[s, numSpaces]: s = string.split[s, '\n'] s = [[numSpaces * ' '] + string.lstrip[line] for line in s] s = string.join[s, '\n'] return s
Thảo luận
Khi làm việc với văn bản, có thể cần phải thay đổi mức thụt của một khối. Mã công thức này có một chuỗi đa dòng và thêm hoặc loại bỏ các không gian dẫn đầu trên mỗi dòng để mức thụt của mỗi dòng của khối phù hợp với một số không gian tuyệt đối. Ví dụ:
>>> x = """line one ... line two ... and line three ... """ >>> print x line one line two and line three >>> print reindent[x, 8] line one line two and line three
Ngay cả khi các dòng trong s
ban đầu được thụt vào khác nhau, công thức này làm cho vết lõm của chúng đồng nhất. Đây đôi khi là những gì chúng ta muốn, và đôi khi không. Một nhu cầu thường xuyên là điều chỉnh lượng không gian hàng đầu trong mỗi dòng, để sự thụt tương đối của mỗi dòng trong khối được bảo tồn. Điều này cũng không khó, đối với các giá trị tích cực hoặc âm của điều chỉnh. Tuy nhiên, các giá trị âm cần kiểm tra để đảm bảo rằng không có không gian không được đánh bắt từ đầu dòng. Do đó, chúng tôi cũng có thể chia chức năng thành hai chức năng để thực hiện các phép biến đổi, cộng với một chức năng để đo số lượng không gian hàng đầu của mỗi dòng và trả về kết quả dưới dạng danh sách:
def addSpaces[s, numAdd]: white = " "*numAdd return white + white.join[s.splitlines[1]] def delSpaces[s, numDel]: def aux[line, numDel=numDel, white=" "*numDel]: if line[:numDel] != white: raise ValueError, "removing more spaces than there are!" return line[numDel:] return ''.join[map[aux, s.splitlines[1]]] def numSpaces[s]: return [len[line]-len[line.lstrip[]] for line in s.splitlines[ ]]
Cách tiếp cận thay thế này dựa trên phương thức chuỗi splitlines
[và do đó yêu cầu Python 2.0 trở lên, giống như bất kỳ công thức nào khác bằng các phương thức chuỗi và/hoặc danh sách toàn diện], tương tự như phân chia trên '\n'
, với khả năng thêm Trên mỗi dòng khi được gọi với một đối số thực sự. Điều này thường không quan trọng [ví dụ, tuyên bố cuối cùng trong ____10, có thể dễ dàng trả lại
import string def reindent[s, numSpaces]: s = string.split[s, '\n'] s = [[numSpaces * ' '] + string.lstrip[line] for line in s] s = string.join[s, '\n'] return s1], nhưng đôi khi hóa ra là [
import string def reindent[s, numSpaces]: s = string.split[s, '\n'] s = [[numSpaces * ' '] + string.lstrip[line] for line in s] s = string.join[s, '\n'] return s2 không thể ngắn và ngọt ngào nếu không có khả năng này của phương pháp chuỗi
splitlines
].Ví dụ, ở đây, cách thức chúng ta có thể kết hợp các chức năng này để xây dựng một chức năng khác để xóa đủ các không gian dẫn đầu khỏi mỗi dòng để đảm bảo rằng đường thẳng của khối trở nên nhỏ nhất trở nên khó khăn, trong khi bảo tồn các vết lõm tương đối của tất cả các dòng khác:
def unIndentBlock[s]: return delSpaces[s, min[numSpaces[s]]]
Xem thêm
Phần tham chiếu thư viện về các loại trình tự.Library Reference section on sequence types.