Câu trả lời của tôi cụ thể là về việc sao chép vào vỏ Python tiêu chuẩn [chỉ được thử nghiệm trên Linux].
Tùy thuộc vào nơi mã đến từ và cách nó được định dạng ban đầu, khoảng trắng có thể hoặc không quan trọng. Cụ thể về đoạn trích ví dụ của bạn - được sao chép từ phần được định dạng mã của SO - không thành vấn đề [giả sử mã được thụt vào đúng cách để được thực thi].the whitespace may or may not matter. In particular about your example snippet - copy-pasted from SO's code-formatted section - it doesn't matter [assuming the code is properly indented to be executable].
Tuy nhiên, dòng trống không gây ra rắc rối trong trình thông dịch Python tiêu chuẩn bởi vì nó thường là CMD không suy nghĩ của Shell-S. Trong trường hợp của bạn, dòng trống, định nghĩa hàm print ['Hello, world!']
3 kết thúc/thoát định nghĩa lớp sớm, vì vậy khi dòng định nghĩa print ['Hello, world!']
3 xuất hiện trong một lỗi thụt lề được phát hiện:, however, does cause trouble in the
standard python interpreter because it normally is the shell-s de-indent cmd. In your snippet's case the empty line preceeding the
print ['Hello, world!']3 function definition ends/exits the class definition prematurely, so when the
print ['Hello, world!']3 definition line comes in an indentation error is detected:
>>> class bcolors:
... HEADER = '\033[95m'
... OKBLUE = '\033[94m'
... OKGREEN = '\033[92m'
... WARNING = '\033[93m'
... FAIL = '\033[91m'
... ENDC = '\033[0m'
...
>>> def disable[self]:
File "", line 1
def disable[self]:
^
IndentationError: unexpected indent
>>>
Vì vậy, bạn chỉ cần chú ý tại những dòng trống đó. Đoạn trích của bạn chỉ cần 2 op-dán nhiều dòng để làm việc xung quanh dòng trống đó.
Điều duy nhất khác tôi cần - đối với việc sao chép chỉ các phần của mã đã được thụt vào [giả sử các chức năng từ các lớp bên trong] - một mức độ thụt thêm để không cần phải bỏ lại phần thụt của mã được sao chép. Cho đó một dòng
print ['Hello, world!']5 hàng đầu trước khi dán đoạn trích và một lần nhập [tức là dòng trống] sau khi thực hiện thủ thuật:
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
Các ví dụ dưới đây sẽ tăng số lượng dòng mã và độ khó:
1 dòng: đầu ra
print ['Hello, world!']
2 dòng: đầu vào, phân công
name = input['What is your name?\n'] print ['Hi, %s.' % name]
3 dòng: Đối với vòng lặp, chức năng liệt kê tích hợp, định dạng kiểu mới
friends = ['john', 'pat', 'gary', 'michael'] for i, name in enumerate[friends]: print ["iteration {iteration} is {name}".format[iteration=i, name=name]]
4 dòng: fibonacci, gán tuple
parents, babies = [1, 1] while babies < 100: print ['This generation has {0} babies'.format[babies]] parents, babies = [babies, parents + babies]
5 dòng: Chức năng
def greet[name]: print ['Hello', name] greet['Jack'] greet['Jill'] greet['Bob']
6 dòng: nhập, biểu thức thông thường
import re for test_string in ['555-1212', 'ILL-EGAL']: if re.match[r'^\d{3}-\d{4}$', test_string]: print [test_string, 'is a valid US local phone number'] else: print [test_string, 'rejected']
7 dòng: Từ điển, biểu thức máy phát
prices = {'apple': 0.40, 'banana': 0.50} my_purchase = { 'apple': 1, 'banana': 6} grocery_bill = sum[prices[fruit] * my_purchase[fruit] for fruit in my_purchase] print ['I owe the grocer $%.2f' % grocery_bill]
8 dòng: Đối số dòng lệnh, Xử lý ngoại lệ
# This program adds up integers that have been passed as arguments in the command line import sys try: total = sum[int[arg] for arg in sys.argv[1:]] print ['sum =', total] except ValueError: print ['Please supply integer arguments']
9 dòng: Mở tệp
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
010 dòng: thời gian, điều kiện, từ..timport, for..else
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
111 dòng: Chuỗi được trích xuất ba, trong khi vòng lặp
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
212 dòng: Các lớp học
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
313 dòng: Kiểm tra đơn vị với Unittest
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
414 dòng: Thử nghiệm dựa trên tài liệu
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
515 dòng: itertools
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
616 dòng: Mô-đun CSV, Giải nén Tuple, CMP [] tích hợp
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
718 dòng: Vấn đề 8-Queens [đệ quy]
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
820 dòng: Số nguyên tố rây w/máy phát điện ưa thích
>>> if 1:
... def disable[self]:
... self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation
... self.OKBLUE = ''
... self.OKGREEN = ''
... self.WARNING = ''
... self.FAIL = ''
... self.ENDC = ''
...
>>>
921 dòng: phân tích cú pháp XML/HTML
print ['Hello, world!']0
28 Dòng: Vấn đề 8-Queens [Xác định ngoại lệ của riêng bạn]
print ['Hello, world!']1
33 dòng: trò chơi "đoán số" [chỉnh sửa] từ //inventwithpython.com
print ['Hello, world!']2
Tất cả đều chạy theo Python 3. Nếu bạn quan tâm đến sự khác biệt giữa Python 2 và Python 3, vui lòng xem phiên bản trước của trang này.
Thể loại