Hướng dẫn how do you write a single line code in python? - làm thế nào để bạn viết một mã dòng duy nhất trong python?
Đây là một tài liệu đang chạy trong đó tôi sẽ trả lời tất cả các câu hỏi liên quan đến dòng mã Python duy nhất. Nếu bạn muốn trở thành một phù thủy một lớp, hãy xem cuốn sách của tôi, Py Python One-Liners! 🙂become a one-liner wizard, check out my book “Python One-Liners”! 🙂 Show
Tài liệu này chứa nhiều vỏ và video mã tương tác để giúp bạn hiểu biết. Tuy nhiên, nó khá chậm vì tất cả các kịch bản trong đó. Nếu bạn muốn có phiên bản nhanh hơn mà không có bất kỳ Video và mã tương tác nào, hãy xem phiên bản bị loại bỏ sau của bài viết này:faster version without any video and interactive code shell, check out the following stripped-off version of this article: [Hướng dẫn blog] 56 Python One-Liners để gây ấn tượng với bạn bè của bạn Vì vậy, bạn đã sẵn sàng để tìm hiểu về Python One-Liners chưa? Bắt đầu nào!
Python một dòng nếu khácBạn có thể sử dụng một câu lệnh nếu đơn giản trong một dòng mã. Đây được gọi là toán tử ternary. Toán tử ternary cơ bản nhất a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]3 trả về biểu thức a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 Nếu biểu thức boolean a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]5 đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6. Mặt khác, nếu biểu thức a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]5 đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8, toán tử ternary trả về biểu thức thay thế a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]9. Ở đây, một ví dụ tối thiểu: var = 21 if 3<2 else 42 # var == 420ter (từ Latin Ternarius) là một tính từ có nghĩa là bao gồm ba mặt hàng. (nguồn) Vì vậy, theo nghĩa đen, toán tử ternary trong Python bao gồm ba toán hạng. Ternary (from Latin ternarius) is an adjective meaning “composed of three items”. (source) So, literally, the ternary operator in Python is composed of three operands. Cú pháp: Ba toán hạng được viết là a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]3 which reads as “return a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 if a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]5 else return a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]9“. Let’s write this more intuitively as:
Biểu thức trả về của toán tử trong trường hợp điều kiện đánh giá thành Toán tử của toán tử ternary Hướng dẫn liên quan: Nhà điều hành Ternary trong Python - Mọi thứ bạn cần biết: Run the code and input your age. What’s the output? Run the code again and try to change the output! Hãy để một cái nhìn vào một ví dụ tối thiểu khác trong Shell mã tương tác của chúng tôi: Bài tập: Chạy mã và nhập tuổi của bạn. Những gì đầu ra? Chạy lại mã và cố gắng thay đổi đầu ra! Để tăng sức mạnh một lớp lót của bạn, bạn có thể nghe lời giải thích video chi tiết của tôi: If-then-else trong một dòng python Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn thêm một nhánh của Elif Elif vào nhà điều hành ternary của bạn? Điều này có thể trong một dòng duy nhất không? Đến bây giờ, bạn đã học cách viết câu lệnh if-else trong một dòng mã bằng toán tử ternary. Nhưng bạn có thể làm tương tự với một tuyên bố Elif nếu bạn có nhiều điều kiện? >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes Tất nhiên bạn có thể! . Giả sử, bạn muốn viết các điều kiện IF-Then-Else sau đây trong một dòng mã duy nhất: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes Chi nhánh Elif thắng: Bạn in đầu ra b = [x+1 for x in a] print(b) # [2, 3, 4, 5]6 vào vỏ. Nhưng làm thế nào để làm điều đó trong một dòng mã? Chỉ cần sử dụng toán tử ternary với một câu lệnh ELIF đã giành được công việc (nó sẽ ném lỗi cú pháp). Vì vậy, bằng cách làm tổ nhiều nhà khai thác ternary, chúng ta có thể tăng đáng kể sức mạnh một lớp Python của mình! Bài viết liên quan: Python ternary Elif: Python Ternary Elif Bây giờ, bạn biết làm thế nào bạn có thể thêm nhiều điều kiện vào một câu lệnh có điều kiện một dòng. Một câu hỏi thú vị là liệu bạn có thể thêm ít điều kiện hơn không? Python một dòng nếu không cóThủ công một lớp lót Python đẹp là một nghệ thuật cũng như một khoa học. Trong hướng dẫn này, bạn sẽ học cách nén một câu lệnh IF mà không có nhánh khác vào một dòng mã Python duy nhất. Python một dòng nếu không có Thủ công một lớp lót Python đẹp là một nghệ thuật cũng như một khoa học. Trong hướng dẫn này, bạn sẽ học cách nén một câu lệnh IF mà không có nhánh khác vào một dòng mã Python duy nhất.: What’s the one-liner equivalent of the simple if statement without an else branch? Vấn đề: Cái gì mà một lớp lót tương đương với câu lệnh nếu không có nhánh khác? condition = True if condition: print('hi') # hi Đây là một ví dụ: Bạn có thể muốn (i) in một cái gì đó, (ii) gán một giá trị cho một biến hoặc (iii) nối một phần tử vào danh sách nếu điều kiện giữ. Tiếp theo, tôi sẽ chỉ cho bạn bốn phương pháp để thực hiện mục tiêu này. Tất cả bốn phương pháp thường được áp dụng và bạn có thể dễ dàng tùy chỉnh chúng vào ứng dụng cụ thể của mình. Hãy để có một cái nhìn tổng quan nhanh về bốn phương pháp trong Shell mã tương tác của chúng tôi:: Run the code for both a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6 and a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8 conditions. Are all methods semantically equivalent? Bài tập: Chạy mã cho cả hai điều kiện a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6 và a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8. Có phải tất cả các phương pháp tương đương về mặt ngữ nghĩa? Đọc thêm về các phương pháp này trong bài viết blog chi tiết của tôi.Chức năng một dòng Python Cách pythonic nhất để xác định hàm trong một dòng là (1) tạo hàm Lambda ẩn danh và (2) gán đối tượng hàm cho một tên biến. Sau đó, bạn có thể gọi chức năng theo tên giống như bất kỳ hàm được xác định thường xuyên nào khác. Ví dụ: câu lệnh b = [x+1 for x in a] print(b) # [2, 3, 4, 5]9 tạo hàm 00 tăng đối số a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 theo một và trả về kết quả: 02 trả về 03. [Nguy hiểm] Cách tin tặc đóng gói các kịch bản độc hại vào một dòng mã Python duy nhất: How to define a function in a single line of Python code? Let’s explore this mission-critical question! Vấn đề: Làm thế nào để xác định một hàm trong một dòng mã Python? Hãy cùng khám phá câu hỏi quan trọng này!: Say, you want to write the following function in a single line of code: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython! Ví dụ: Giả sử, bạn muốn viết chức năng sau trong một dòng mã: Hãy để có được một cái nhìn tổng quan nhanh về cách thực hiện điều này trước:: Change the one-liner functions to return the uppercase version of the generated string using the 04 function. Then run the code to see if your output is correct! Bài tập: Thay đổi các hàm một lớp để trả về phiên bản chữ hoa của chuỗi được tạo bằng hàm Bài viết liên quan: 3 cách Pythonic để xác định hàm trong một dòng [cho tin tặc]Python một dòng cho vòng lặp Python One Line cho Loop [Một hướng dẫn đơn giản] Python rất mạnh mẽ - bạn có thể ngưng tụ nhiều thuật toán thành một dòng mã Python duy nhất. Vì vậy, câu hỏi tự nhiên đặt ra: Bạn có thể viết một vòng lặp trong một dòng mã duy nhất không? Bài viết này khám phá câu hỏi quan trọng này trong tất cả các chi tiết. Làm thế nào để viết một vòng lặp cho một dòng mã Python duy nhất?
Nếu mục đích của vòng lặp là tạo danh sách, thay vào đó hãy sử dụng danh sách hiểu biết: Bài viết liên quan: Python One Line cho LoopPython một dòng cho vòng lặp nếu Bạn cũng có thể sửa đổi câu lệnh Hiểu danh sách bằng cách hạn chế ngữ cảnh với câu lệnh IF khác:: Say, we want to create a list of squared numbers—but you only consider even and ignore odd numbers. Vấn đề: Giả sử, chúng tôi muốn tạo một danh sách các số bình phương, nhưng bạn chỉ xem xét và bỏ qua các số lẻ.: The multi-liner way would be the following. squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64] Ví dụ: Cách đa lớp lót sẽ là như sau. Bạn tạo một danh sách trống 07 và liên tiếp thêm một số vuông khác bắt đầu từ 0 ** 2 và kết thúc trong 8 ** 2, nhưng chỉ xem xét các số chẵn 0, 2, 4, 6, 8. Do đó, kết quả là danh sách 09 . print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64] Một lần nữa, bạn có thể sử dụng danh sách hiểu 10 với mệnh đề hạn chế nếu mệnh đề (in đậm) trong phần ngữ cảnh để nén điều này trong một dòng mã Python duy nhất: Dòng này hoàn thành cùng một đầu ra với ít bit hơn.: Python One Line For Loop With If Bài viết liên quan: Python một dòng cho vòng lặp với IFPython One Line cho Loop Lambda: Given a collection. You want to create a new list based on all values in this collection. The code should run in a single line of code. How do you accomplish this? Do you need a lambda function? Vấn đề: Cho một bộ sưu tập. Bạn muốn tạo một danh sách mới dựa trên tất cả các giá trị trong bộ sưu tập này. Mã sẽ chạy trong một dòng mã duy nhất. Làm thế nào để bạn thực hiện điều này? Bạn có cần một chức năng Lambda?: Given an array 11. You need to create a second array 12 with all values of 13—while adding 14 to each value. Here’s your multi-liner: a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5] Ví dụ: Cho một mảng 11. Bạn cần tạo một mảng thứ hai 12 với tất cả các giá trị của ________ 113, trong khi thêm 14 vào mỗi giá trị. Ở đây, nhiều người yêu thích của bạn: Làm thế nào để bạn hoàn thành điều này trong một dòng mã?: No, you don’t need a lambda function. What you’re looking for is a feature called list comprehension. Here’s the one-liner expression that accomplishes this without the lambda function: b = [x+1 for x in a] print(b) # [2, 3, 4, 5] Hãy cùng đi sâu vào một số thông tin cơ bản trong trường hợp bạn tự hỏi làm thế nào danh sách toàn diện hoạt động. Dựa trên câu hỏi của bạn, tôi cũng nghi ngờ rằng bạn không hoàn toàn hiểu các chức năng của Lambda, vì vậy tôi cũng sẽ thêm một phần khác về các chức năng Lambda. Cuối cùng, bạn cũng sẽ tìm hiểu về một phương pháp thay thế thứ ba để giải quyết vấn đề chính xác này bằng cách sử dụng hàm Lambda kết hợp với hàm bản đồ tích hợp Python () Python,! Vì vậy, hãy ở lại với tôi, bạn sẽ trở thành một lập trình viên tốt hơn trong quá trình! 🙂 Bài viết liên quan: Python One Line cho Loop Lambda: Python One Line For Loop Lambda Python một dòng trong khi vòng lặpCó ba cách viết một lớp trong khi vòng lặp:
Bài tập: Chạy mã. Bạn quan sát điều gì? Cố gắng sửa chữa vòng lặp vô hạn!: Run the code. What do you observe? Try to fix the infinite loop! Bạn có thể đọc thêm về các phương pháp này trong bài viết blog chi tiết của chúng tôi. Python One Line HTTP Web Server18 thủ thuật Python hay nhất hàng đầu Bạn muốn tạo máy chủ web của riêng bạn trong một dòng mã Python? Không có vấn đề gì, chỉ cần sử dụng lệnh này trong vỏ của bạn: 0 Thiết bị đầu cuối sẽ cho bạn biết: 1 Để tắt máy web của bạn, hãy tiêu diệt chương trình Python bằng 19. Điều này hoạt động nếu bạn đã cài đặt Python 3 trên hệ thống của mình. Để kiểm tra phiên bản của bạn, hãy sử dụng lệnh 20 trong vỏ của bạn.Python 3 installed on your system. To check your version, use the command 20 in your shell. Bạn có thể chạy lệnh này trong Windows PowerShell, Win Command Line, MacOS Terminal hoặc Linux Bash Script. Bạn có thể thấy trong ảnh chụp màn hình rằng máy chủ chạy trên máy chủ cục bộ nghe trên cổng 8000 (cổng HTTP tiêu chuẩn để phục vụ các yêu cầu web). Lưu ý: Địa chỉ IP không phải là 0,0.0.0. Đây là một sai lầm thường được sử dụng bởi nhiều độc giả. Thay vào đó, máy chủ web của bạn lắng nghe tại địa chỉ IP của địa phương của bạn 127.0.0.1 trên cổng 8000. Do đó, chỉ các yêu cầu web được phát hành trên máy tính của bạn sẽ đến cổng này. Máy chủ web không thể nhìn thấy với thế giới bên ngoài.: The IP address is NOT 0.0.0.0—this is an often-confused mistake by many readers. Instead, your webserver listens at your “local” IP address 127.0.0.1 on port 8000. Thus, only web requests issued on your computer will arrive at this port. The webserver is NOT visible to the outside world. Python 2: Để chạy cùng một máy chủ web đơn giản trên Python 2, bạn cần sử dụng một lệnh khác bằng cách sử dụng 21instead of 22: 2 Nếu bạn muốn khởi động máy chủ web của mình từ trong tập lệnh Python, không có vấn đề gì: 3 Mã này xuất phát từ tài liệu Python chính thức miễn phí để đọc thêm nếu bạn quan tâm đến việc thiết lập máy chủ (hầu hết các mã tương đối tự giải thích). Nguồn: Python One-Liner Webserver HTTP: Python One-Liner Webserver HTTP Python một dòng ghi chuỗi vào tệpPython One-Liner: Viết chuỗi vào tệp Vấn đề: Cho một chuỗi và tên tệp. Làm thế nào để ghi chuỗi vào tệp với tên tệp chỉ bằng một dòng mã python?: Given a string and a filename. How to write the string into the file with filename using only a single line of Python code? Ví dụ: Bạn có tên tệp 23 and you want to write string 24 into the file. 4 Làm thế nào để đạt được điều này? Dưới đây là bốn cách để thực hiện nó trong một dòng mã duy nhất! Ở đây, một cái nhìn tổng quan nhanh chóng trong vỏ Python tương tác của chúng tôi: Bài tập: Chạy mã và kiểm tra tệp 23. How many 26 are there in the file? Change the code so that only one 24 is in the file! Bạn có thể tìm hiểu thêm về các phương pháp này trong bài viết blog chi tiết của tôi! Python One Line quineHầu hết các nhà khoa học máy tính, lập trình viên và tin tặc thậm chí không biết ý nghĩa của từ ngữ quine quine trong bối cảnh lập trình. Vì vậy, những điều đầu tiên đầu tiên: Nói một cách thô bạo, một quine là một chương trình tự tái tạo: nếu bạn chạy nó, nó sẽ tự tạo ra. Ở đây, một định nghĩa tuyệt vời: : quine: / kwi: n / /n./ [từ tên của logician willard van orman quine, thông qua Douglas Hofstadter] một chương trình tạo ra một bản sao của văn bản nguồn riêng của nó làm đầu ra hoàn chỉnh của nó. Nghỉ việc quine ngắn nhất có thể trong một số ngôn ngữ lập trình nhất định là một trò giải trí hackish phổ biến. (nguồn)quine: /kwi:n/ /n./ [from the name of the logician Willard van Orman Quine, via Douglas Hofstadter] A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement. (source)
Quine ngắn nhất có thể là chương trình trống sau: 5 Chương trình tự tái tạo vì đầu ra của chương trình là chính chương trình. Hãy tiếp tục và chạy nó trong vỏ của riêng bạn! 😉 Ở đây, một quine một bộ lót ngắn, tôi tìm thấy ở tài nguyên này: 6
Để tìm hiểu về nhiều câu hỏi hơn, hãy xem bài viết blog chi tiết của tôi: Bài viết liên quan: Các câu hỏi một dòng Python: Python One-Line Quines Python One Line QuicksortTrong hướng dẫn một lớp này, bạn sẽ tìm hiểu về thuật toán phân loại phổ biến Quicksort. Đáng ngạc nhiên, một dòng mã Python duy nhất là tất cả những gì bạn cần để viết thuật toán Quicksort! Vấn đề: Đưa ra một danh sách các giá trị số (số nguyên hoặc float). Sắp xếp danh sách trong một dòng mã Python bằng thuật toán QuickSort phổ biến!: Given a list of numerical values (integer or float). Sort the list in a single line of Python code using the popular Quicksort algorithm! Ví dụ: Bạn có danh sách 29. You want to sort the list in ascending order to obtain the new list 30. Câu trả lời ngắn gọn: Giải pháp một lớp sau đây sắp xếp danh sách sử dụng thuật toán QuickSort:: The following one-liner solution sorts the list recursively using the Quicksort algorithm: 7 Bây giờ, hãy để đi sâu vào một số chi tiết! Phần giới thiệu sau đây dựa trên cuốn sách mới của tôi, Py Python One-Liners (liên kết Amazon) dạy cho bạn sức mạnh của dòng mã duy nhất (sử dụng nó một cách khôn ngoan)!“Python One-Liners” (Amazon Link) that teaches you the power of the single line of code (use it wisely)! Giới thiệu: Quicksort không chỉ là một câu hỏi phổ biến trong nhiều cuộc phỏng vấn mã - được Google, Facebook và Amazon hỏi - mà còn là một thuật toán sắp xếp thực tế nhanh chóng, súc tích và dễ đọc. Vì vẻ đẹp của nó, bạn đã giành được nhiều giới thiệu về các lớp thuật toán mà don don thảo luận về thuật toán Quicksort.: Quicksort is not only a popular question in many code interviews – asked by Google, Facebook, and Amazon – but also a practical sorting algorithm that is fast, concise, and readable. Because of its beauty, you won’t find many introduction to algorithm classes which don’t discuss the Quicksort algorithm. Tổng quan: Quicksort sắp xếp một danh sách bằng cách phân chia đệ quy vấn đề lớn (sắp xếp danh sách) thành các vấn đề nhỏ hơn (sắp xếp hai danh sách nhỏ hơn) và kết hợp các giải pháp từ các vấn đề nhỏ hơn theo cách giải quyết vấn đề lớn. Để giải quyết từng vấn đề nhỏ hơn, cùng một chiến lược được sử dụng đệ quy: các vấn đề nhỏ hơn được chia thành các vấn đề nhỏ hơn, được giải quyết riêng và kết hợp. Vì chiến lược này, Quicksort thuộc nhóm của các thuật toán phân chia và chinh phục.: Quicksort sorts a list by recursively dividing the big problem (sorting the list) into smaller problems (sorting two smaller lists) and combining the solutions from the smaller problems in a way that it solves the big problem. In order to solve each smaller problem, the same strategy is used recursively: the smaller problems are divided into even smaller subproblems, solved separately, and combined. Because of this strategy, Quicksort belongs to the class of “Divide and Conquer” algorithms. Thuật toán: Ý tưởng chính của QuickSort là chọn phần tử trục và sau đó đặt tất cả các phần tử lớn hơn hoặc bằng với phần tử trục bên phải và tất cả các phần tử nhỏ hơn phần tử trục bên trái. Bây giờ, bạn đã chia vấn đề lớn là sắp xếp danh sách thành hai vấn đề nhỏ hơn: sắp xếp phân vùng bên phải và bên trái của danh sách. Những gì bạn làm bây giờ là lặp lại quy trình này một cách đệ quy cho đến khi bạn có được một danh sách với các phần tử bằng không. Danh sách này đã được sắp xếp, vì vậy đệ quy chấm dứt.: The main idea of Quicksort is to select a pivot element and then placing all elements that are larger or equal than the pivot element to the right and all elements that are smaller than the pivot element to the left. Now, you have divided the big problem of sorting the list into two smaller subproblems: sorting the right and the left partition of the list. What you do now is to repeat this procedure recursively until you obtain a list with zero elements. This list is already sorted, so the recursion terminates. Hình sau đây cho thấy thuật toán Quicksort đang hoạt động: Hình: Thuật toán Quicksort chọn một phần tử trục, chia danh sách thành (i) một người bạn chưa được phân loại với tất cả các phần tử nhỏ hơn hoặc bằng với trục và (ii) một nhóm phụ chưa được phân loại với tất cả các phần tử lớn hơn trục. Tiếp theo, thuật toán Quicksort được gọi là đệ quy trên hai người con chưa được sắp xếp để sắp xếp chúng. Ngay khi những người con chứa tối đa một phần tử, chúng được sắp xếp theo định nghĩa - kết thúc đệ quy. Ở mọi cấp độ đệ quy, ba người con (trái, trục, phải) được nối trước khi danh sách kết quả được đưa ra mức đệ quy cao hơn.: The Quicksort algorithm selects a pivot element, splits up the list into (i) an unsorted sublist with all elements that are smaller or equal than the pivot, and (ii) an unsorted sublist with all elements that are larger than the pivot. Next, the Quicksort algorithm is called recursively on the two unsorted sublists to sort them. As soon as the sublists contain maximally one element, they are sorted by definition – the recursion ends. At every recursion level, the three sublists (left, pivot, right) are concatenated before the resulting list is handed to the higher recursion level. Bạn tạo một hàm 31 thực hiện thuật toán QuickSort trong một dòng mã Python duy nhất - và do đó sắp xếp bất kỳ đối số nào được đưa ra như một danh sách các số nguyên. 8 Đầu ra của mã này là gì? 9 Python một dòng với tuyên bốVấn đề: Bạn có thể viết câu lệnh 32 statement in a single line of code? Giải pháp: Có, bạn có thể viết câu lệnh 32 statement in a single line of code if the loop body consists only of one statement: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes0 Nói chung, bạn có thể viết bất kỳ khối vết lõm nào (như các câu lệnh 34, môi trường 32 hoặc các vòng lặp 36) trong một dòng mã nếu chỉ có một câu lệnh. Bài viết liên quan: Python One Line với tuyên bố: Python One Line With Statement Python một dòng xử lý ngoại lệTóm tắt: Bạn có thể hoàn thành một xử lý ngoại lệ một dòng với cách giải quyết 37 workaround by passing the one-linerized 38/ 39 block as a string into the function like this: 40. This general method works for all custom, even multi-line, try and except blocks. However, you should avoid this one-liner code due to the bad readability. Đáng ngạc nhiên, đã có một cuộc thảo luận về việc xử lý ngoại lệ một dòng trong danh sách gửi thư Python chính thức vào năm 2013. Tuy nhiên, kể từ đó, không có tính năng xử lý ngoại lệ nào của một dòng mới trong Python. Vì vậy, chúng ta cần gắn bó với các phương pháp được hiển thị trong hướng dẫn này. Nhưng họ sẽ rất vui vẻ! Python một dòng xử lý ngoại lệ Hãy để đi sâu vào vấn đề: Vấn đề: Làm thế nào để viết Thử/Ngoại trừ khối trong một dòng mã Python?: How to write the try/except block in a single line of Python code? Ví dụ: Hãy xem xét các thử sau/ngoại trừ khối.: Consider the following try/except block. >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes1 Giải pháp: Hãy để có một cái nhìn tổng quan nhanh chóng trong Shell mã tương tác của chúng tôi:: let’s have a quick overview in our interactive code shell: Bài tập: Chạy mã. Tại sao chỉ có ba dòng đầu ra? Sửa đổi mã sao cho mỗi trong bốn phương thức tạo ra một đầu ra!: Run the code. Why are there only three lines of output? Modify the code such that each of the four methods generate an output! Bài viết liên quan: Đọc thêm về các phương pháp xử lý ngoại lệ một dòng trong hướng dẫn blog chi tiết của tôi. Read more about the one-line exception handling methods in my detailed blog tutorial. Python One Line thi hành[Đừng làm điều này ở nhà] Làm thế nào để một bản viết Vấn đề: Đưa ra một tập lệnh mã đa dòng trong Python. Làm thế nào để thực hiện tập lệnh đa dòng này trong một dòng mã Python? Làm thế nào để làm điều đó từ dòng lệnh?: Given a multi-line code script in Python. How to execute this multi-line script in a single line of Python code? How to do it from the command line? Ví dụ: Giả sử, bạn có những điều sau đây cho vòng lặp với câu lệnh nếu được lồng vào cơ thể vòng. Bạn muốn chạy nó trong một dòng duy nhất từ dòng lệnh của bạn?: Say, you have the following for loop with a nested if statement in the for loop body. You want to run this in a single line from your command line? >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes2 Mã in năm số vào vỏ. Nó chỉ in các giá trị lẻ của a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4. Nếu a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 có giá trị chẵn, nó sẽ in biến vòng lặp 43. Bạn có thể viết bất kỳ mã nguồn nào vào một chuỗi và chạy chuỗi bằng hàm 37 tích hợp trong Python. Đây ít được biết đến, nhưng tin tặc thường sử dụng điều này để đóng gói mã độc vào một dòng duy nhất mà dường như vô hại. Nếu bạn có mã kéo dài nhiều dòng, bạn có thể đóng gói nó thành một chuỗi một dòng bằng cách sử dụng ký tự mới 45 trong chuỗi của bạn: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes3 Đoạn mã một lớp lót này tương đương về mặt ngữ nghĩa với các vòng lặp trên cho vòng lặp đòi hỏi bảy dòng mã! Đầu ra là như nhau: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes4 Bài viết liên quan: Làm thế nào để thực hiện nhiều dòng trong một dòng python từ dòng lệnh?: How to Execute Multiple Lines in a Single Line Python From Command-Line? Python One Line Reverse Shell[Tấn công vỏ ngược] Một con ngựa trojan trông như thế nào trong Python Ở đây, định nghĩa của một lớp vỏ ngược: Một vỏ ngược được sử dụng bởi các tin tặc để có quyền truy cập vào máy đích. Máy đích mở một vỏ để giao tiếp với máy tấn công. Máy tấn công nhận được kết nối (nghe trên một cổng nhất định) và hiện có thể truy cập vào máy tính đích. Để thực hiện một shell ngược, một hacker phải thực thi mã trên máy đích. Vỏ ngược cũng được sử dụng bởi các kỹ sư bảo mật để kiểm tra và ngăn chặn các cuộc tấn công vỏ ngược.reverse shell is used by hackers to gain access to a target machine. The target machine opens a shell to communicate to the attacking machine. The attacking machine receives the connection (listening on a given port) and is now able to access the target computer. To accomplish a reverse shell, a hacker must execute code on a target machine. Reverse shells are also used by security engineers to test and prevent reverse shell attacks. Tôi tìm thấy mã này trong một chủ đề blog. Bạn có thể chạy nó từ bất kỳ máy tính nào có Python được cài đặt và hiển thị từ vị trí hiện tại của bạn: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes5 Nhưng bạn không bao giờ nên thực thi mã mà bản sao và dán từ nguồn internet. Điều gì sẽ xảy ra nếu mã xóa tất cả các tệp khỏi máy tính của bạn? Bạn có thể đọc toàn bộ bài viết về các cuộc tấn công đảo ngược và ngựa Trojan ở Python ở đây. Python một dòng đọc tệpPython One -Liners - Trick 2 Đọc tệp và Dải () dòng Giả sử tệp của bạn được lưu trữ trong tệp 46. Bây giờ, bạn có thể mở tệp, đọc tất cả các dòng, loại bỏ các ký tự nào và theo dõi các ký tự khoảng trắng và lưu trữ kết quả trong danh sách Python trong một dòng mã. Đây là mã: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes6 Python thật đẹp! ? Bài viết liên quan: Một lần đọc một tập tin trong Python: One-Liner to Read a File in Python Python một dòng trở lại nếuVấn đề: Làm thế nào để trở về từ hàm hoặc phương thức python trong một dòng?: How to return from a Python function or method in single line? Ví dụ: Xem xét tuyên bố mục tiêu của mục tiêu sau đây:: Consider the following “goal” statement: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes7 Tuy nhiên, điều này dẫn đến lỗi cú pháp: Tại đây, cách viết câu lệnh trả về bằng biểu thức IF trong một dòng mã Python: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes8 Tôi nên lưu ý rằng PEP 8 thực sự tốt với việc viết nếu các câu lệnh khối thành một dòng. Tuy nhiên, giá trị trả về mặc định của một hàm là 47 vì vậy mã thực sự không có gì. Bài viết liên quan: Python một dòng trở lại nếu: Python One Line Return if Python một dòng đệ quyHai cách viết một lớp một lần đệ quy: (1) Viết hàm bằng câu lệnh trả về trong một dòng duy nhất như trong 48, or (2) assign a lambda function to a variable name and use the variable name in the return expression of the lambda function such as in 49. To define a recursion base case, you can use the ternary operator a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]3 to return a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 if condition a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]5 is met, else a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]9. Hãy để đi sâu vào vấn đề và một số ví dụ chi tiết! Vấn đề: Làm thế nào để viết một hàm đệ quy trong một dòng mã?: How to write a recursive function in a single line of code? Bạn có thể thấy điều này đầy thách thức bởi vì bạn cần xác định tên hàm, trường hợp cơ sở và chức năng đệ quy gọi tất cả trong một dòng mã Python! Bài viết liên quan: Để làm mới các kỹ năng đệ quy chung của bạn, hãy xem bài viết blog chi tiết của tôi (bao gồm cả video).: To refresh your general recursion skills, check out my detailed blog article (including video). Ở đây, một cái nhìn tổng quan về các thuật toán khác nhau, chúng tôi đã được một cách đệ quy một cách đệ quy! 😉 Bài tập: Chạy mã và kiểm tra kết quả. Họ có đúng không? Bây giờ thay đổi các đầu vào thành các trường hợp cơ sở đệ quy và chạy lại mã! Họ có đúng không?: Run the code and test the results. Are they correct? Now change the inputs to the recursion base cases and run the code again! Are they correct? Hãy cùng đi sâu vào từng phương pháp trong bài viết trên blog này! Python One Line RegexTóm tắt: Để phù hợp với 54 in a given 55 using only a single line of Python code, use the one-liner 56 that imports the regular expression library re and prints the result of the 57 function to the shell. Phương thức re.findall (mẫu, chuỗi, flag = 0) trả về danh sách các khớp chuỗi. Đọc thêm trong hướng dẫn blog của chúng tôi.re.findall(pattern, string, flags=0) method returns a list of string matches. Read more in our blog tutorial. >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes9 Không có cách nào tốt hơn để nhập thư viện 58 và gọi hàm 59 trong một dòng mã duy nhất bạn phải sử dụng dấu chấm phẩy 60 để phân tách các câu lệnh 61 và 62. Hàm 57 tìm thấy tất cả các lần xuất hiện của mẫu trong chuỗi. Bài viết liên quan: Trận đấu Regex của Python One Line: Python One Line Regex Match Python One Line thay thế[Python One-Liner] Làm thế nào để thay thế một chuỗi trong một tệp từ thiết bị đầu cuối của bạn? Vấn đề: Bạn sử dụng Python trong thiết bị đầu cuối và bạn muốn thay thế chuỗi 64 in a text file 65: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes0 Mục tiêu của bạn là hoàn thành văn bản sau: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes1 Cụ thể, bạn muốn mở tệp, thay thế văn bản và viết lại kết quả vào tệp, tất cả trong một dòng mã Python! Một Python One-Liner có thể thực hiện được điều này không? Giải pháp: Thay thế tất cả các lần xuất hiện của 66 with 67 and print the result to the standard input: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes2 Phương thức thay thế thay thế tất cả các lần xuất hiện của đối số thứ nhất bằng đối số thứ hai. Nó trả về chuỗi mới. Bây giờ bạn có thể in kết quả vào stdin hoặc viết lại cho một tệp. Bài viết liên quan: Python One Line thay thế: Python One Line Replace Python một dòng ternaryNhà điều hành Python Ternary-và một hack một lớp lót đáng ngạc nhiên Ternary (từ Latin Ternarius) là một tính từ có nghĩa là bao gồm ba mục. (nguồn) Vì vậy, theo nghĩa đen, toán tử ternary trong Python bao gồm ba toán hạng. (from Latin ternarius) is an adjective meaning “composed of three items”. (source) So, literally, the ternary operator in Python is composed of three operands. Cú pháp: Ba toán hạng được viết trong một kết hợp trực quan 68. >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes3
Biểu thức trả về của toán tử trong trường hợp điều kiện đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8 Toán tử của toán tử ternary: Run the code and input your age. What’s the output? Run the code again and try to change the output! Hãy cùng xem một ví dụ tối thiểu trong Shell mã tương tác của chúng tôi:Bài tập: Chạy mã và nhập tuổi của bạn. Những gì đầu ra? Chạy lại mã và cố gắng thay đổi đầu ra!: How to write a nested 71 loop as a Python one-liner? Roughly speaking, you want to iterate over two or more iterables that are nested into each other. Here’s an example of a multi-liner with two nested loops: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes4 Python One Line hai cho vòng lặp (Double) Vấn đề: Làm thế nào để viết một vòng lặp 71 lồng nhau như một python One-liner? Nói một cách thô bạo, bạn muốn lặp lại qua hai hoặc nhiều vòng lặp được lồng vào nhau. Dưới đây, một ví dụ về một lớp phủ với hai vòng lồng nhau: Ở đây, một tổng quan nhanh chóng:Đọc hết một bài báo ở đây.: Given multiple Python statements. How to write them as a Python One-Liner? Python một dòng hai lệnh: Consider the following example of four statements in a block with uniform indentation: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes5 Vấn đề: Cho nhiều câu lệnh Python. Làm thế nào để viết chúng như một con trăn một liner? Ví dụ: Xem xét ví dụ sau đây của bốn câu trong một khối có vết lõm đồng đều: Mỗi trong bốn câu lệnh được viết theo một dòng riêng biệt trong trình chỉnh sửa mã Đây là quy trình bình thường. Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn một lần giới hạn những điều đó:: The answer is simple if all statements have a uniform indentation and there’s no nested block. In this case, you can use the semicolon as a separator between the statements: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes6 Làm thế nào để viết tất cả bốn câu lệnh trong một dòng mã?: How to Write Multiple Statements on a Single Line in Python? Giải pháp: Câu trả lời rất đơn giản nếu tất cả các câu có thụt đồng đều và ở đó không có khối lồng nhau. Trong trường hợp này, bạn có thể sử dụng dấu chấm phẩy làm dấu phân cách giữa các câu lệnh:Bài viết liên quan: Làm thế nào để viết nhiều câu lệnh trên một dòng trong Python? Python một dòng đến nhiều dòng Để chia một dòng thành nhiều dòng trong Python, hãy sử dụng dấu ngoặc đơn mở trong dòng bạn muốn phá vỡ. Bây giờ, Python mong đợi dấu ngoặc đơn đóng trong một trong các dòng tiếp theo và biểu thức được đánh giá trên các ranh giới dòng. Thay vào đó, bạn cũng có thể sử dụng dấu gạch chéo ngược 72 ngay trước đường tắt để thoát khỏi ký tự mới. Làm thế nào để chia một dòng thành nhiều dòng trong Python?: Given a long line of Python code. How to break it into multiple lines? Sau khi xuất bản một bài viết về cách ngưng tụ nhiều dòng thành một dòng mã Python, nhiều Finxters đã hỏi: Làm thế nào để phá vỡ một dòng dài thành nhiều dòng trong Python? Vấn đề: Cho một dòng dài của mã Python. Làm thế nào để chia nó thành nhiều dòng?: Run the code. What’s the output? Modify Method 3 and write it as a one-liner again! Có nhiều cách phá vỡ điều này thành nhiều dòng. Hãy để nhận được một cái nhìn tổng quan trước: Bài tập: Chạy mã. Những gì đầu ra? Sửa đổi Phương pháp 3 và viết nó như một lần lặp lại!Mã hóa URL là một phương pháp để mã hóa thông tin trong Mã định danh tài nguyên thống nhất (URI). Nó cũng được gọi là mã hóa phần trăm vì các ký hiệu tỷ lệ phần trăm được sử dụng để mã hóa một số ký tự dành riêng nhất định:
>>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes7 Ở đây, một ví dụ sử dụng ví dụ: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes8 Nguồn Bài viết liên quan: Phương pháp giải mã URL URL Decoding Methods Python một đối tượngVấn đề: Làm thế nào để tạo một đối tượng Python trong một dòng mã? Và làm thế nào bạn có thể liên kết các thuộc tính tùy chỉnh với đối tượng này trong cùng một dòng?: How to create a Python object in a single line of code? And how can you associate custom properties to this object in the same line? Ví dụ: Giả sử, bạn muốn làm một cái gì đó như đoạn mã giả này:: Say, you want to do something like this pseudocode snippet: >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes9 Tuy nhiên, bạn không thể làm điều tương tự trong Python vì điều này sẽ tạo ra một từ điển: condition = True if condition: print('hi') # hi0 Điều này làm tăng một >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes11 vì không có thuộc tính >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes12 liên quan đến đối tượng từ điển. Để truy cập khóa từ điển trong trường hợp này, bạn phải sử dụng cú pháp >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes13. Vì vậy, làm thế nào để tạo một đối tượng Python nội tuyến với các thuộc tính trong một dòng mã Python? Ở đây, một cái nhìn tổng quan nhanh về ba phương pháp của chúng tôi: Bài tập: Có cả ba phương pháp tạo ra cùng một đầu ra không? Chạy mã để kiểm tra nó!: Do all three methods produce the same output? Run the code to test it! Bạn có muốn đi sâu vào từng phương pháp chi tiết hơn không? Đọc bài viết này: Bài viết liên quan: Làm thế nào để tạo các đối tượng nội tuyến với các thuộc tính? [Python One-Liner]: How to Create Inline Objects With Properties? [Python One-Liner] Python một dòng inVấn đề: Làm thế nào để sử dụng chức năng >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes14 function without printing an implicit newline character to the Python shell? Ví dụ: Giả sử, bạn muốn sử dụng chức năng >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes14 function within a for loop—but you don’t want to see multiple newlines between the printed output: condition = True if condition: print('hi') # hi1 Đầu ra tiêu chuẩn mặc định là như sau: condition = True if condition: print('hi') # hi2 Nhưng bạn muốn có được đầu ra sau trong một dòng mã Python. condition = True if condition: print('hi') # hi3 Làm thế nào để thực hiện điều này trong Python 3? Giải pháp: Tôi sẽ cung cấp cho bạn giải pháp nhanh chóng trong vỏ Python tương tác ở đây:: I’ll give you the quick solution in an interactive Python shell here: Bằng cách đọc tiếp, bạn sẽ hiểu cách thức hoạt động của nó và trở thành một lập trình viên tốt hơn trong quá trình. Bài viết liên quan: Cách in mà không có dòng mới trong Python: How to Print Without Newline in Python Python One Line Parse JsonVấn đề: Làm thế nào để phân tích một đối tượng JSON là một người liner?: How to Parse a JSON object as a Python One-Liner? Ví dụ: Giả sử, bạn đã rút một đối tượng JSON từ một máy chủ bằng lệnh >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes16 command: condition = True if condition: print('hi') # hi4 Nguồn Bài viết liên quan: Phương pháp giải mã URL Python một đối tượng: The following one-liner accomplishes this: condition = True if condition: print('hi') # hi5 Vấn đề: Làm thế nào để tạo một đối tượng Python trong một dòng mã? Và làm thế nào bạn có thể liên kết các thuộc tính tùy chỉnh với đối tượng này trong cùng một dòng? Ví dụ: Giả sử, bạn muốn làm một cái gì đó như đoạn mã giả này:: How to Parse JSON in a Python One-Liner? Tuy nhiên, bạn không thể làm điều tương tự trong Python vì điều này sẽ tạo ra một từ điển:Điều này làm tăng một Vì vậy, làm thế nào để tạo một đối tượng Python nội tuyến với các thuộc tính trong một dòng mã Python?: You have given the following JSON object: condition = True if condition: print('hi') # hi6 Ở đây, một cái nhìn tổng quan nhanh về ba phương pháp của chúng tôi: condition = True if condition: print('hi') # hi7 Bài tập: Có cả ba phương pháp tạo ra cùng một đầu ra không? Chạy mã để kiểm tra nó! Bạn có muốn đi sâu vào từng phương pháp chi tiết hơn không? Đọc bài viết này:in a Python script is to import the >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes19 library to solve the issue: Bài viết liên quan: Làm thế nào để tạo các đối tượng nội tuyến với các thuộc tính? [Python One-Liner]: Execute the script. What’s the output? Now change the number of indentation spaces to 2! Python một dòng in Vấn đề: Làm thế nào để sử dụng chức năng Ví dụ: Giả sử, bạn muốn sử dụng chức năng >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes14 trong vòng lặp cho vòng lặp nhưng bạn không muốn thấy nhiều dòng mới giữa đầu ra in:Đầu ra tiêu chuẩn mặc định là như sau: Nhưng bạn muốn có được đầu ra sau trong một dòng mã Python. Làm thế nào để thực hiện điều này trong Python 3? Giải pháp: Tôi sẽ cung cấp cho bạn giải pháp nhanh chóng trong vỏ Python tương tác ở đây: Bằng cách đọc tiếp, bạn sẽ hiểu cách thức hoạt động của nó và trở thành một lập trình viên tốt hơn trong quá trình.
condition = True if condition: print('hi') # hi8 Ví dụ: Giả sử, bạn đã rút một đối tượng JSON từ một máy chủ bằng lệnh >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes16: condition = True if condition: print('hi') # hi9 Làm thế nào để phân tích đối tượng JSON và trích xuất kết quả, giả sử, giá trị >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes17 được liên kết với khóa >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes18? Giải pháp: Một lớp sau đây hoàn thành điều này:: How to Filter a List in Python? Bạn có thể tìm thấy một lời giải thích chi tiết, từng bước về một lớp học này trong bài viết sau.Bài viết liên quan: Làm thế nào để phân tích JSON trong một chiếc Python One-Liner?: How can we append multiple elements to a list in a for loop but using only a single line of Python code? Ví dụ: Giả sử, bạn muốn lọc một danh sách các từ so với danh sách khác và lưu trữ các từ kết quả trong danh sách mới bằng phương thức append () trong một vòng lặp.: Say, you want to filter a list of words against another list and store the resulting words in a new list using the append() method in a for loop. def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!0 Trước tiên, bạn tạo một danh sách các từ được lọc và lưu trữ trong danh sách trống ban đầu >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes27. Thứ hai, bạn tạo một tập hợp các từ dừng chống lại bạn muốn kiểm tra các từ trong danh sách. Lưu ý rằng nó có hiệu quả hơn nhiều khi sử dụng cấu trúc dữ liệu đã đặt cho việc này vì việc kiểm tra tư cách thành viên trong các bộ nhanh hơn nhiều so với việc kiểm tra tư cách thành viên trong danh sách. Xem hướng dẫn này để biết hướng dẫn đầy đủ về các bộ Python. Bây giờ bạn lặp lại tất cả các yếu tố trong danh sách >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes28 và thêm chúng vào danh sách >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes27 nếu chúng không có trong tập >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes30. Giải pháp: Bạn có thể một lần điều chỉnh quy trình lọc này bằng mã sau:: You can one-linerize this filtering process using the following code: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!1 Giải pháp sử dụng danh sách hiểu, về cơ bản, tạo một dòng cho vòng lặp. Ở đây, mã hoàn chỉnh giải quyết vấn đề bằng phương pháp lọc một lớp lót: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!2 Tại đây, một hướng dẫn ngắn về lọc trong trường hợp bạn cần thêm giải thích: Những bài viết liên quan::
Python một dòng và hoặcLàm thế nào để boolean >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes31 và >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes32 Các nhà khai thác hoạt động trong bối cảnh của Python One-Liners? Bạn có thể biết việc sử dụng tiêu chuẩn của các toán tử logic được áp dụng cho các giá trị Boolean: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!3 Nhưng có nhiều hơn nữa cho các nhà khai thác này rằng chỉ có các chuyên gia về nghệ thuật viết Python một câu nói ngắn gọn biết. Chẳng hạn, việc sử dụng nhà điều hành >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes32 được áp dụng cho các giá trị phi Boolean ít được biết đến: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!4 Tương tự, việc sử dụng và toán tử sau đây thường gây ra sự nhầm lẫn ở độc giả của một lớp lót Python tiên tiến: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!5 Làm thế nào để nhà điều hành >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes31 và >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes32 hoạt động khi áp dụng cho các vở kịch không phải là Boolean? Để hiểu những gì đang xảy ra, bạn cần xem xét các định nghĩa của các nhà khai thác Boolean:
Nghiên cứu những giải thích kỹ lưỡng này! Giá trị trả về cùng loại dữ liệu của toán hạng, chúng chỉ trả về giá trị boolean nếu các toán hạng đã được boolean! Tối ưu hóa này được gọi là ngắn mạch và nó thực tế phổ biến trong nhiều ngôn ngữ lập trình. Ví dụ, nó không cần thiết để đánh giá kết quả của toán hạng thứ hai của hoạt động và hoạt động nếu toán hạng đầu tiên đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8. Toàn bộ hoạt động phải đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8 trong trường hợp này vì logic và chỉ trả về a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6 nếu cả hai toán hạng là a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6. Python tiến thêm một bước bằng cách sử dụng thuộc tính chuyển đổi boolean ngầm. Mỗi đối tượng có thể được chuyển đổi hoàn toàn thành một giá trị boolean. Đó là lý do tại sao bạn thấy mã như thế này: def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!6 Bạn chuyển một danh sách vào điều kiện nếu điều kiện. Python sau đó chuyển đổi danh sách thành giá trị boolean để xác định chi nhánh nào sẽ truy cập tiếp theo. Danh sách trống đánh giá đến a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]8. Tất cả các danh sách khác đánh giá thành a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6, vì vậy kết quả là >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes56. Cùng với nhau, chuyển mạch ngắn và chuyển đổi boolean tiềm ẩn cho phép các toán tử logic và hoặc hoặc được áp dụng cho bất kỳ hai đối tượng Python nào làm toán hạng. Giá trị trả về luôn luôn là một trong hai toán hạng sử dụng các quy tắc ngắn mạch được mô tả trong bảng. Python một dòng phân công có điều kiệnVấn đề: Làm thế nào để thực hiện một dòng nếu các bài tập có điều kiện trong Python?: How to perform one-line if conditional assignments in Python? Ví dụ: Giả sử, bạn bắt đầu với mã sau.: Say, you start with the following code. def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!7 Bạn muốn đặt giá trị của a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 thành >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes58 nếu >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes59 là a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]6 và không làm gì khác. Hãy cùng đi sâu vào những cách khác nhau để thực hiện điều này trong Python. Chúng tôi bắt đầu với một cái nhìn tổng quan: Bài tập: Chạy mã. Có phải tất cả các đầu ra giống nhau?: Run the code. Are all outputs the same? Tiếp theo, bạn sẽ đi sâu vào từng phương pháp đó và tăng cường siêu năng lực một lớp lót của bạn! Những bài viết liên quan:
Hãy cùng đi sâu vào những cách khác nhau để thực hiện điều này trong Python. Chúng tôi bắt đầu với một cái nhìn tổng quan:Bài tập: Chạy mã. Có phải tất cả các đầu ra giống nhau?: Given two variables 13 and 12. Use a single line of Python code to swap the variables to assign the value of 13 to 12 and the value of 12 to 13. Tiếp theo, bạn sẽ đi sâu vào từng phương pháp đó và tăng cường siêu năng lực một lớp lót của bạn!: Say, you have to integers >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes67 and >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes68. You want to swap the variables so that >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes69 and >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes70. def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!8 Làm thế nào để trao đổi thành các biến như một python một lớp? Để trao đổi hai biến A và B, hãy sử dụng biểu thức gán nhiều >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes71 gán giá trị của 13 cho 12 và giá trị của 12 cho 13. def f(x): return str(x * 3) + '!' print(f(1)) # 3! print(f('python')) # pythonpythonpython!9 Tìm một lời giải thích chi tiết về một lớp lót này theo hướng dẫn mã tương tác của chúng tôi: Hướng dẫn liên quan: Làm thế nào để trao đổi hai biến trong một dòng Python?: How to Swap Two Variables in One Line Python? Python một dòng tổngVấn đề: Làm thế nào để tổng hợp tất cả các giá trị trong một danh sách Python nhất định?: How to sum over all values in a given Python list? squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]0 Bạn muốn tính tổng của tất cả các giá trị trong danh sách chỉ sử dụng một dòng mã Python duy nhất! squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]1 Giải pháp: Chức năng >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes76 function helps you to sum over all values in an iterable, such as a Python list. Here’s the minimal code example. squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]2 Làm thế nào nó hoạt động? Cú pháp là >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes77:
Danh sách Python Sum () - Hướng dẫn minh họa đơn giản Vui lòng tìm thêm chi tiết trong hướng dẫn đầy đủ về việc tổng kết tất cả các giá trị trong danh sách và danh sách lồng nhau: Hướng dẫn liên quan: Danh sách tổng của Python One Line: Python One Line Sum List Python một loại sắp xếpĐể sắp xếp và trả lại danh sách Python trong một dòng mã duy nhất, hãy sử dụng phương thức >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes86 trả về danh sách mới các yếu tố được sắp xếp. Nó chỉ sao chép các tham chiếu đến các phần tử gốc để danh sách được trả về không phải là một bản sao nông. Vấn đề: Đưa ra một danh sách các đối tượng có thể so sánh như số nguyên hoặc phao. Có cách nào để sắp xếp danh sách và trả lại danh sách được sắp xếp trong một dòng mã Python không?: Given a list of comparable objects such as integers or floats. Is there a way to sort the list and return the sorted list in a single line of Python code? Ví dụ: Giả sử, bạn đã có danh sách sau.: Say, you’ve got the following list. squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]3 Bạn muốn sắp xếp danh sách này và trả về kết quả trong một dòng duy nhất. Nếu bạn sử dụng phương thức >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes87, giá trị trả về là 47: squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]4 Giá trị trả về của phương thức >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes87 là 47, nhưng nhiều lập trình viên hy vọng nó sẽ là danh sách được sắp xếp. Vì vậy, họ đã ngạc nhiên khi phát hiện ra rằng các biến của họ chứa loại 47 chứ không phải là một danh sách được sắp xếp. Ở đây, một cái nhìn tổng quan nhanh về các phương pháp để thực hiện điều này: Bài tập: Thay đổi danh sách sẽ được sắp xếp bằng cách thêm phao âm. Nó vẫn hoạt động?: Change the list to be sorted by adding negative floats. Does it still work? Bạn có muốn tìm hiểu thêm về từng phương pháp? Kiểm tra hướng dẫn liên quan của tôi: Hướng dẫn liên quan: Làm thế nào để sắp xếp và trả lại danh sách Python trong một dòng?: How to Sort and Return a Python List in One Line? Python One Line SemicolonỞ đây, cách người ta có thể sử dụng dấu chấm phẩy: squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]5 Nếu bạn chạy Python One-Liner này với dấu chấm phẩy, bạn sẽ nhận được đầu ra sau: squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]6 Ở chế độ xem đầu tiên, nó thậm chí không giống như mã Python! C ++ có dấu chấm phẩy. Java có dấu chấm phẩy. Nhưng Python được cho là một ngôn ngữ không có dấu chấm phẩy, phải không? Ý nghĩa của dấu chấm phẩy trong các ngôn ngữ lập trình như Java và C ++ là chấm dứt câu lệnh hiện tại. Trong các ngôn ngữ đó, bạn sẽ sử dụng nó sau mỗi dòng. Không có nó, thông dịch viên tin rằng mã chưa chấm dứt và nó bắt đầu tìm kiếm thêm. Bất kỳ lập trình viên Java hoặc C ++ nào cũng biết các tình huống xảy ra lỗi vì họ quên sử dụng dấu chấm phẩy trong mã của họ.terminate the current statement. In those languages, you’ll use it after every single line. Without it, the interpreter believes that the code has not terminated yet and it starts looking for more. Any Java or C++ coder knows situations where an error occurred because they forgot to use a semicolon in their code. Tuy nhiên, trong Python, dấu chấm phẩy có ý nghĩa hơi khác. Chúng cho phép bạn tạo cái gọi là câu lệnh ghép. Cấu trúc 34 là một tuyên bố ghép. Vòng lặp 71 là một tuyên bố ghép. Và, một số câu lệnh Python được phân tách dấu chấm phẩy là các tuyên bố hỗn hợp. Bài viết liên quan: Bán kết Python: Cách họ làm việc và tại sao những người ghét nói với bạn để tránh chúng: Python Semicolons: How They Work and Why Haters Tell You to Avoid Them Định nghĩa hàm một dòng PythonHàm Lambda cho phép bạn xác định một hàm trong một dòng. Nó bắt đầu với từ khóa >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes94, tiếp theo là một danh sách được phân tách bằng dấu phẩy bằng 0 hoặc nhiều đối số, tiếp theo là dấu hai chấm và biểu thức trả lại. Ví dụ: >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes95 tính toán tổng của hai giá trị đối số >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes96 trong một dòng mã Python. Vấn đề: Làm thế nào để xác định một hàm trong một dòng mã Python?: How to define a function in a single line of Python code? Ví dụ: Giả sử, bạn đã có chức năng sau trong ba dòng. Làm thế nào để nén chúng vào một dòng mã Python?: Say, you’ve got the following function in three lines. How to compress them into a single line of Python code? squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]7 Mã xác định một hàm >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes97 lấy một mục tiêu là đầu vào, tên của bạn bè của bạn và in >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes98 cho mỗi phần tử a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 trong ITEBELBELE của bạn. Đầu ra là: squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]8 Hãy cùng đi sâu vào các phương pháp khác nhau để thực hiện điều này! Đầu tiên, ở đây, một tổng quan tương tác nhanh để kiểm tra vùng biển: Bài tập: Chạy mã là đầu ra giống nhau cho cả bốn phương pháp?: Run the code—is the output the same for all four methods? Trong bài viết sau, bạn sẽ tìm hiểu về từng phương pháp chi tiết hơn! Bài viết liên quan: Định nghĩa chức năng Python One Line: Python One Line Function Definition Từ điển một dòngThử thách: Nói, bạn muốn có các chỉ số danh sách là khóa và các yếu tố danh sách là giá trị.: Say, you want to have the list indices as keys and the list elements as values. squares = [] for i in range(10): if i%2==0: squares.append(i**2) print(squares) # [0, 4, 16, 36, 64]9 Đầu tiên, >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes00 tạo ra một bộ dữ liệu >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes01 từ danh sách 13 bằng cách sử dụng >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes03Function. Chất xây dựng >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes04 hơn là biến đổi ánh xạ >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes05 này thành ánh xạ >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes05. Giá trị tuple >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes06 trở thành >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes07 mới. Giá trị tuple >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes08 trở thành >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes09 mới. Tìm hiểu thêm về các lớp lót khác nhau trong bối cảnh từ điển trong bài viết blog này: Bài viết liên quan: Từ điển Python One Line Python One Line Dictionary Python One Line DictribreHiểu từ điển là một cách ngắn gọn và tiết kiệm bộ nhớ để tạo và khởi tạo từ điển trong một dòng mã Python. Nó bao gồm hai phần: biểu thức và bối cảnh. Biểu thức xác định cách ánh xạ các phím đến các giá trị. Các vòng lặp bối cảnh trên một điều đáng tin cậy bằng cách sử dụng một dòng cho vòng lặp và xác định các cặp (khóa, giá trị) nào để đưa vào từ điển mới. is a concise and memory-efficient way to create and initialize dictionaries in one line of Python code. It consists of two parts: expression and context. The expression defines how to map keys to values. The context loops over an iterable using a single-line for loop and defines which (key,value) pairs to include in the new dictionary. Từ điển Python Hiểu - Hướng dẫn một lớp học mạnh mẽ Bài viết liên quan: Từ điển Python Hiểu Python Dictionary Comprehension Python One Line DocStringTheo quy ước, bạn sử dụng các tài liệu một dòng nếu hàm, mô-đun, lớp hoặc phương thức là đủ rõ ràng để đảm bảo một lời giải thích ngắn nhưng không có gì nữa. Bạn có thể gửi kèm theo tài liệu một lớp trong các trích dẫn đơn, trích dẫn kép hoặc thậm chí trích dẫn ba. Tuy nhiên, việc kèm theo tài liệu một lớp trong một trích dẫn ba là cách pythonic nhất. Ví dụ, chức năng sau đây có thể dễ dàng hiểu được. Do đó, một tài liệu một lớp là đủ để mô tả hành vi của nó: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]0 Bài viết liên quan: Python One Line DocString: Python One Line Docstring Tệp tải xuống một dòng PythonTóm tắt: Tải xuống một tệp trên web bằng cách sử dụng các bước sau trong Python.: Download a file over the web by using the following steps in Python.
Tại đây, cách bạn có thể làm điều này để tải xuống favicon Facebook (nguồn): Khi bắt đầu cuộc đấu tranh của chúng tôi với việc quét web, bạn có thể gặp khó khăn khi tải xuống các tệp bằng Python. Tuy nhiên, bài viết sau đây cung cấp cho bạn một số phương pháp mà bạn có thể sử dụng để tải xuống, ví dụ, bìa của một cuốn sách từ trang. & NBSP; Bài viết liên quan: Làm thế nào để tải xuống một tập tin trên HTTPS trong Python? How to Download a File Over HTTPS in Python? Python One Line for Loop nốiTuy nhiên, một tùy chọn tốt hơn nhiều để nối tất cả các yếu tố trong một danh sách nhất định vào một danh sách nhất định là sử dụng phương thức >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes11: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]1 Một lớp lót ngắn hơn nhiều và thậm chí nhanh hơn. Bạn có thể tìm thấy một so sánh tốc độ chi tiết ở đây. Phương thức Python Danh sách mở rộng () [NO-BS] Bài viết liên quan: Python One Line for Loop ExpendPython One Line For Loop Append Trình tạo một dòng PythonChức năng của trình tạo là một cách pythonic để tạo ra một điều đáng tin mà không lưu trữ rõ ràng nó trong bộ nhớ. Điều này làm giảm việc sử dụng bộ nhớ của mã của bạn mà không phải chịu bất kỳ chi phí bổ sung nào. This reduces memory usage of your code without incurring any additional costs. Vấn đề: Chúng ta có thể viết một trình tạo một dòng không?: Can we write a one-line generator? Đây là mã hoàn thành điều này: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]2 Mã này bao gồm các phần sau:
Bằng cách này, chúng tôi vẫn không lưu trữ toàn bộ danh sách 1000 số trong bộ nhớ nhưng tạo ra chúng một cách linh hoạt. Bài viết liên quan: Trình tạo một dòng Python Python One Line Generator Trình tạo mật khẩu một dòng PythonShell mã tương tác sau đây tạo ra một mật khẩu ngẫu nhiên cho bạn chỉ sử dụng một dòng mã Python duy nhất! Bài viết liên quan: Trình tạo mật khẩu một dòng PythonPython One-Line Password Generator Python một dòng http nhận đượcHướng dẫn này chỉ cho bạn cách thực hiện HTTP nhận và đăng yêu cầu đơn giản cho một máy chủ web hiện có!HTTP get and post requests to an existing webserver! Vấn đề: Với vị trí URL của máy chủ web phục vụ các trang web thông qua HTTP. Làm thế nào để truy cập phản hồi của WebServer trong một dòng mã Python?: Given the URL location of a webserver serving websites via HTTP. How to access the webserver’s response in a single line of Python code? Ví dụ: Giả sử, bạn muốn hoàn thành những điều sau:: Say, you want to accomplish the following: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]3 Bạn có thể tự mình thử trong vỏ Python tương tác của chúng tôi: Bài tập: Tập lệnh này có tải xuống mã nguồn đầy đủ của trang web Google.com không?: Does this script download the complete source code of the Google.com website? Hãy cùng tìm hiểu về ba phương pháp quan trọng nhất để truy cập một trang web trong một dòng mã Python duy nhất và cách chúng hoạt động! Python toàn cầu trong một dòngĐể cập nhật biến toàn cầu trong một dòng Python, hãy truy xuất từ điển biến toàn cầu với hàm >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes15 và truy cập biến bằng cách truyền tên biến làm khóa chuỗi như >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes16. Sau đó, ghi đè biến biến toàn cầu bằng cách sử dụng ký hiệu bằng nhau, ví dụ trong >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes17 để ghi đè biến biến có giá trị >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes58. print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]4 Mã trước tiên truy cập tất cả các biến toàn cầu bằng cách sử dụng hàm >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes15 trả về tên ánh xạ từ điển cho các đối tượng. Bạn truy cập giá trị liên quan đến khóa >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes20. Giá trị trả về là đối tượng mà biến toàn cầu 13 điểm. Bài viết liên quan: Python One Line Global Python One Line Global Python One Line FizzBuzzVấn đề FizzBuzz là một bài tập phổ biến được đặt ra trong các cuộc phỏng vấn mã để kiểm tra sự thành thạo của bạn bằng cách viết mã Python đơn giản. Vấn đề: In tất cả các số từ 1-100 vào vỏ với ba ngoại lệ:: Print all numbers from 1-100 to the shell with three exceptions:
Ví dụ: 15 số đầu tiên của chuỗi FizzBuzz là như sau.: The first 15 numbers of the FizzBuzz sequence are the following. print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]5 Làm thế nào để viết một con trăn một lớp lót giải quyết vấn đề này? Ở đây, một tổng quan tương tác: Tập thể dục: Cả hai lớp lót có tạo ra kết quả giống nhau không? Chạy mã để kiểm tra!: Do both one-liners produce the same results? Run the code to check! Hãy cùng đi sâu vào những lớp lót đó để có được sự hiểu biết sâu sắc hơn về vấn đề này! Hướng dẫn liên quan: Python One Line FizzBuzz: Python One Line FizzBuzz Python One Line Hello WorldBước 1: Ở đây, một shell dựa trên trình duyệt tương tác:Here’s an interactive browser-based shell: Shell chạy bất kỳ chương trình Python nào trong trình duyệt của bạn. Bước 2: Nhập chức năng in trong trình duyệt trình duyệt của bạn với dấu ngoặc đơn mở và đóng ban đầu trống:: Type the print function in your browser shell with opening and closing parentheses that are initially empty: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]6 Hàm >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes14 lấy một chuỗi và in nó vào vỏ của bạn. Bằng cách này, bạn có thể tạo ra các đầu ra trong chương trình của mình. Hãy nghĩ về nó: một chương trình Python chỉ là một phương tiện để kết thúc. Nó biến đổi một đầu vào thành đầu ra. Một cách để tạo đầu ra là in các giá trị chương trình vào shell. Trong Hello World One-Liner của chúng tôi, đầu ra là dữ liệu văn bản (= chuỗi) >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes26. Bước 3: Chuyển chuỗi >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes26 string into the >>> x = 42 >>> if x > 42: >>> print("no") >>> elif x == 42: >>> print("yes") >>> else: >>> print("maybe") yes14 function between the parentheses. print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]7 Xin chúc mừng, Hello World One-Liner đầu tiên của bạn đã sẵn sàng! Bây giờ, chỉ còn một điều còn lại: Bước 4: Chạy chương trình Hello World One-Liner bằng cách nhấn biểu tượng Run Run ▶.: Run the hello world one-liner program by hitting the “Run” symbol ▶. Bạn có thể thấy đầu ra được tạo bởi chương trình của bạn không? Khi chạy chương trình của bạn trong vỏ tương tác, kết quả phải là đầu ra sau: print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]8 Bài viết liên quan: Xin chào Thế giới! Một con trăn một lớp để bắt đầu với Python một cách nhanh chóng: Hello World! A Python One-Liner to Get Started with Python Quickly Python One Line bình luậnNhận xét một dòng bắt đầu bằng ký tự băm ( 74) character and reach to the end of the line. The newline character terminates the meaning of the comment—which is for the Python interpreter to ignore the commented text. A special case are inline comments that are used after a regular Python statement but before the newline character. The PEP 8 standard recommends to use them sparingly. print([i**2 for i in range(10) if i%2==0]) # [0, 4, 16, 36, 64]9 Bài viết liên quan: Nhận xét Python-Hướng dẫn 2 phút với bài tập: Python Comments — 2-Minute Guide with Exercise Lớp Python One LineVấn đề: Làm thế nào để tạo một lớp Python trong một dòng mã?: How to create a Python class in a single line of code? Ví dụ: Giả sử, bạn muốn tạo một lớp >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes30 with two attributes >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes31 and >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes32. Here would be the lengthy definition: a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]0 Làm thế nào để bạn làm điều này trong một dòng mã? Đọc thêm: Lớp Python One Line Python One Line Class Python xác định nhiều biến trong một dòngTrong bài viết này, bạn sẽ tìm hiểu về hai biến thể của vấn đề này.
Hãy để có một cái nhìn tổng quan nhanh về cả hai trong Shell mã tương tác của chúng tôi: Tập thể dục: Tăng số lượng biến lên 3 và tạo một lớp lót mới!: Increase the number of variables to 3 and create a new one-liner! Bài viết liên quan: Python xác định nhiều biến trong một dòng: Python Define Multiple Variables in One Line Python một dòng nếu (không) khôngVấn đề: Làm thế nào để gán một giá trị cho một biến nếu nó không bằng ________ 147 chỉ sử dụng một dòng mã python?: How to assign a value to a variable if it is not equal to 47—using only a single line of Python code? Giải pháp: Một phần mở rộng tuyệt đẹp của Python 3.8 là người vận hành Walrus. Toán tử Walrus a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]1 Đây là một cách rất sạch sẽ, dễ đọc và pythonic. Ngoài ra, bạn không có sự gán danh tính dự phòng trong trường hợp điều kiện IF không được đáp ứng. Toán tử Walrus Python 3.8 (Biểu thức gán) Những bài viết liên quan:
Bản đồ một dòng PythonLàm chủ hàm bản đồ Python [+Video] Hãy xem xét các >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes35 một lớp sau đây thay đổi từng phần tử a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]4 của danh sách thành giá trị của >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes37: a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]2 Bạn tạo một danh sách với ba yếu tố. Sau đó, bạn tạo một hàm ẩn danh có một đối số (một số nguyên trong trường hợp của chúng tôi) và tăng thêm một đối số. Hàm >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes38 áp dụng chức năng cho từng phần tử trong danh sách và trả về một đối tượng bản đồ mới. Điều này được chuyển đổi trở lại danh sách bằng hàm >>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe") yes39. Bài viết liên quan: Bản đồ Python One Line Python One Line Map Cuốn sách Python One-Liners: Master The Single Line đầu tiên!Các lập trình viên Python sẽ cải thiện các kỹ năng khoa học máy tính của họ với các lớp lót hữu ích này. Python One-Linerswill dạy bạn cách đọc và viết một bộ bài viết: Các câu nói ngắn gọn về chức năng hữu ích được đóng gói thành một dòng mã. Bạn sẽ học cách giải nén một cách có hệ thống và hiểu bất kỳ dòng mã Python nào và viết python được nén mạnh mẽ, mạnh mẽ như một chuyên gia.concise statements of useful functionality packed into a single line of code. You’ll learn how to systematically unpack and understand any line of Python code, and write eloquent, powerfully compressed Python like an expert. Cuốn sách năm chương bao gồm (1) mẹo và thủ thuật, (2) biểu thức thông thường, (3) học máy, (4) chủ đề khoa học dữ liệu cốt lõi và (5) thuật toán hữu ích. Giải thích chi tiết về một lớp lót giới thiệu các khái niệm khoa học máy tính quan trọng và tăng cường kỹ năng mã hóa và phân tích của bạn. Bạn có thể tìm hiểu về các tính năng Python nâng cao như hiểu danh sách, cắt lát, chức năng Lambda, biểu thức thông thường, bản đồ và giảm các chức năng và bài tập cắt lát.key computer science concepts and boost your coding and analytical skills. You’ll learn about advanced Python features such as list comprehension, slicing, lambda functions, regular expressions, map and reduce functions, and slice assignments. Bạn cũng sẽ học cách:
Đến cuối cuốn sách, bạn sẽ biết cách viết Python ở tinh tế nhất và tạo ra những tác phẩm nghệ thuật Python Python ngắn gọn, đẹp đẽ chỉ trong một dòng.write Python at its most refined, and create concise, beautiful pieces of “Python art” in merely a single line. Nhận Python Oneer của bạn trên Amazon !! Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính. Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới. Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây. |