Hướng dẫn how do you copy a line of code in python? - làm thế nào để bạn sao chép một dòng mã trong python?

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 = ''
... 
>>>
0

10 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 = ''
... 
>>>
1

11 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 = ''
... 
>>>
2

12 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 = ''
... 
>>>
3

13 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 = ''
... 
>>>
4

14 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 = ''
... 
>>>
5

15 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 = ''
... 
>>>
6

16 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 = ''
... 
>>>
7

18 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 = ''
... 
>>>
8

20 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 = ''
... 
>>>
9

21 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ừ http://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