Python xóa số chẵn

Sử dụng vòng lặp. Lặp lại từng phần tử trong danh sách bằng vòng lặp for và kiểm tra xem num % 2. = 0. Nếu điều kiện thỏa mãn thì chỉ in ra số.  

Python3




21 45 93 
0

 

21 45 93 
1

21 45 93 
2
21 45 93 
3
21 45 93 
4
[21, 45, 93]
53
21 45 93 
6
21 45 93 
93
21 45 93 
6
21 45 93 
9
21 45 93 
6
21 45 93 
91
21 45 93 
6
[21, 45, 93]
8
21 45 93 
6

Trên mỗi lần lặp, chúng tôi sử dụng toán tử modulo

21 45 93 
7 để kiểm tra xem số hiện tại có phần còn lại khi chia cho
21 45 93 
8

Toán tử modulo [%] trả về phần còn lại từ phép chia giá trị thứ nhất cho giá trị thứ hai

Nếu số có dư khi chia cho 2 thì nó là số lẻ, vì vậy chúng tôi sử dụng phương pháp

21 45 93 
9 để loại bỏ nó khỏi danh sách

Danh sách. phương thức remove[] loại bỏ mục đầu tiên khỏi danh sách có giá trị bằng với đối số được truyền vào

Phương thức

21 45 93 
0 thay đổi danh sách ban đầu và trả về
21 45 93 
1

Sau lần lặp cuối cùng, danh sách chỉ chứa các số chẵn

Ngoài ra, bạn có thể sử dụng cách hiểu danh sách đơn giản

Xóa các số Lẻ khỏi Danh sách bằng cách hiểu danh sách #

Để xóa các số lẻ khỏi danh sách

  1. Sử dụng khả năng hiểu danh sách để lặp lại danh sách
  2. Kiểm tra xem mỗi mục không có số dư khi chia cho 2
  3. Danh sách mới sẽ chỉ chứa các số chẵn

Chúng tôi đã sử dụng cách hiểu danh sách để lặp lại danh sách

Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện

Trên mỗi lần lặp, chúng tôi sử dụng toán tử modulo

21 45 93 
7 để kiểm tra xem số hiện tại không có phần còn lại khi chia cho
21 45 93 
8

Nếu số không có phần dư khi chia cho

21 45 93 
8, thì đó là một số chẵn và được thêm vào danh sách mới

Danh sách mới chỉ chứa các số chẵn từ danh sách ban đầu

Ngoài ra, bạn có thể sử dụng phương pháp

21 45 93 
82

Xóa các số Lẻ khỏi Danh sách bằng bộ lọc[] #

Để xóa các số lẻ khỏi danh sách

  1. Truyền hàm
    21 45 93 
    83 và danh sách cho hàm
    21 45 93 
    82
  2. Hàm lambda sẽ kiểm tra xem mỗi số không có phần dư khi chia cho
    21 45 93 
    8
  3. Sử dụng lớp
    21 45 93 
    86 để chuyển đổi đối tượng
    21 45 93 
    87 thành danh sách

Hàm bộ lọc lấy một hàm và một iterable làm đối số và xây dựng một iterator từ các phần tử của iterable mà hàm trả về một giá trị trung thực

Hàm

21 45 93 
83 mà chúng tôi đã chuyển cho bộ lọc được gọi với từng mục trong danh sách

Hàm kiểm tra xem mặt hàng được cung cấp có dư không khi chia cho

21 45 93 
8 và trả về kết quả

ở đây tôi đã sử dụng hàm del để xóa phần tử đầu tiên trong danh sách, hoạt động tốt nếu danh sách chứa số chẵn cũng như số lẻ, nhưng nếu nó chứa tất cả các số chẵn thì nó sẽ xóa mọi số chẵn khỏi danh sách và trả về một danh sách trống, nhưng

21 45 93 
5

nó cho đầu ra như

21 45 93 
6

thay vì tạo một danh sách trống

Vui lòng trả lời với một lời giải thích cho cả hai câu hỏi.

Sự khác biệt được tạo ra bởi vòng lặp while hơn là vòng lặp for

Vòng lặp while sẽ tiếp tục cho đến khi thỏa mãn điều kiện. Điều này có thể dẫn đến các vòng lặp vô hạn. Bạn cần phải rất cẩn thận về các điều kiện trong những. Tuy nhiên, nó cho phép bạn chỉnh sửa danh sách mà không gặp lỗi do kích thước danh sách đang thay đổi

Vòng lặp for sẽ chỉ đi qua tất cả các mục trong danh sách mà nó được đưa ra. Điều này không bao giờ có thể dẫn đến một vòng lặp vô hạn. Tuy nhiên, nói chung không nên xóa hoặc thêm các mục vào danh sách mà bạn đang lặp lại. Điều này có thể và sẽ dẫn đến lỗi

Ở đây tôi đã sử dụng hàm del để xóa phần tử đầu tiên trong danh sách, hoạt động tốt nếu danh sách chứa số chẵn cũng như số lẻ, nhưng nếu nó chứa tất cả các số chẵn thì nó sẽ xóa mọi số chẵn khỏi danh sách và trả về một danh sách trống, nhưng

Bạn đang gặp sự cố do chỉnh sửa danh sách đang được sử dụng trong vòng lặp for. Đừng làm điều này. Giải pháp tốt nhất, nếu bạn định thêm hoặc xóa khỏi danh sách, là sử dụng vòng lặp while

Bây giờ tôi nhìn lại nó, nó vẫn hoạt động tốt ngay cả khi không hoán đổi danh sách. Tôi vừa chỉ ra rằng nếu việc lặp qua một danh sách thay đổi trong vòng lặp for dễ xảy ra lỗi, bạn có thể tạo một danh sách khác để sửa đổi

Theo công cụ trực quan này, vấn đề chính với mã đầu tiên là

21 45 93 
3 khiến python bỏ qua các sự kiện xóa khi tương tác. http. //www. gia sư trăn. com/visualize_for_i_in_lst Vì vậy, tại lần lặp i=lst[0], nó sẽ xóa lst[0]. Lần lặp lại tiếp theo, i=lst[1], sẽ xem xét lst[0] của lst=[8, 10]. Điều này vượt qua logic modulo để xóa lst[0]=8. Lần lặp lại tiếp theo sẽ là i=lst[2] của lst=[10], giá trị này là null nên nó không thực thi logic modulo trên lst và trả về lst=[10]

Khi bạn thay đổi thành

21 45 93 
4, tôi nghi ngờ nó tạo ra một đối tượng/biến phạm vi mới ở đầu vòng lặp for, nhưng đây chỉ là dự đoán của tôi. Tôi chỉ đang học những thứ này. Công cụ trực quan hiển thị mã lặp lại từ 0 đến 2 mặc dù ở lần lặp cuối cùng, lst=[10] và len[lst]=1. http. //www. gia sư trăn. com/visualize_for_i_in_range[len[lst]]

Nếu lst là 10 tỷ số đầu tiên trong pi, một vòng lặp while sẽ xem xét và xóa 3 và 1. Khi đến 4, nó sẽ nhìn vào nó và dừng lại, trả về phần còn lại của danh sách. Vòng lặp for mà tôi đặt ở đó sẽ xem xét mọi số trong danh sách ngay cả sau khi lst[0] là số chẵn. Cái có điểm ngắt xa hơn sẽ dừng lại nhưng nó có thể vẫn tiêu tốn một số tài nguyên khi thiết lập phạm vi [len [lst]]

Có chức năng xóa trong Python không?

Phương thức remove[] - Tổng quan về cú pháp . Phương thức remove[] xóa một mục khỏi danh sách theo giá trị của nó chứ không phải theo số chỉ mục của nó. The remove[] method is one of the ways you can remove elements from a list in Python. The remove[] method removes an item from a list by its value and not by its index number.

Có chức năng chẵn và lẻ trong Python không?

Python chẵn hay lẻ? . Chỉ toán tử mô đun được sử dụng để đưa ra quyết định như vậy. There is no specified function provided in the Python library to check whether Python even or odd. Only the modulus operator is used to make such decisions.

isEven trong Python là gì?

def isEven[n. int]. return " Số đã cho là số chẵn . " if n % 2 == 0 other "Số đã cho là số lẻ. " محمد منصور • 6 months ago. num = int[input["Nhập số. "]]

Chủ Đề