Home Backend Development Python Tutorial Tips for nesting if and else statements in for loops in Python

Tips for nesting if and else statements in for loops in Python

Jul 21, 2016 pm 02:53 PM
else for if python

for...[if]...Construct List (List comprehension)
1. Simple for...[if]... statement
In Python, the for...[if]... statement is a concise way to construct a List. It selects elements that meet the if condition from the list given by for to form a new List, where if can be omitted. of. Here are a few simple examples to illustrate.

1

2

3

4

5

6

7

>>> a=[12, 3, 4, 6, 7, 13, 21]

>>> newList = [x for x in a]

>>> newList

[12, 3, 4, 6, 7, 13, 21]

>>> newList2 = [x for x in a if x%2==0]

>>> newList2

[12, 4, 6]

Copy after login

With if omitted, newList constructs a List with the same elements as a. However, newList and a are different Lists. Executing b=a, b and newList are different. newList2 is a List composed of elements selected from a that satisfy x%2==0. If you do not use the for...[if].. statement, the following operations are required to build newList2.

1

2

3

4

5

6

>>> newList2=[]

>>> for x in a:

...  if x %2 == 0:

...    newList2.append(x)

>>> newList2

[12, 4, 6]

Copy after login

Obviously, using the for...[if]... statement is more concise.

2. Nested for...[if]... statements
The nested for...[if]... statement can select elements that meet the if condition from multiple Lists to form a new List. Here are a few examples.

1

2

3

4

5

6

7

8

>>>a=[12, 3, 4, 6, 7, 13, 21]

>>>b=['a', 'b', 'x']

>>>newList=[(x, y) for x in a for y in b]

>>>newList

[(12, 'a'), (12, 'b'), (12, 'x'), (3, 'a'), (3, 'b'), (3, 'x'), (4, 'a'), (4, 'b'), (4, 'x'), (6, 'a'), (6, 'b'), (6, 'x'), (7, 'a'), (7, 'b'), (7, 'x'), (13, 'a'), (13, 'b'), (13, 'x'), (21, 'a'), (21, 'b'), (21, 'x')]

>>>newList2=[(x, y) for x in a for y in b if x%2==0 and y<'x']

>>>newList2

[(12, 'a'), (12, 'b'), (4, 'a'), (4, 'b'), (6, 'a'), (6, 'b')]

Copy after login

The nested for...[if]... statement is equivalent to multiple for statements. The first for statement is the outermost loop.

Make good use of python’s else clause
In daily coding, the use of branch statements is very common. The logic of code execution is often controlled based on whether certain conditions are met, so everyone will be familiar with if[elif[else]]. The else clause in the branch statement will be executed when other conditions are not met. Appropriate use of branch statements can make our code logic richer.
The use of else clauses in branch statements is basically the same in some common programming languages. It is similar to providing a default execution path and used with conditional judgment statements such as if. Compared with other programming languages ​​​​(c#, java, js etc.) In python, else has some special usages. It can be used with loop statements such as for and while, and can even be used with exception handling try except statements, which can make our code more concise.

1. Use with for/while loop statement
The else clause is immediately followed by the for loop statement. When the loop ends normally (without early exit such as return or break), the logic of the else clause will be executed. Let’s look at an example first:

1

2

3

4

5

6

7

8

9

10

11

def print_prime(n):

  for i in xrange(2, n):

    # found = True

    for j in xrange(2, i):

      if i % j == 0:

         # found = False

        break

    else:

      print "{} it's a prime number".format(i)

    # if found:

         # print "{} it's a prime number".format(i)

Copy after login

1

print_prime(7)

Copy after login

Result:

1

2

3

2 it's a prime number

3 it's a prime number

5 it's a prime number

Copy after login

A simple example of printing prime numbers. When judging whether a number is a prime number, you need to traverse integers smaller than itself. If any one satisfies divisibility, the judgment ends. Otherwise, print the info that this is a prime number. With else With the blessing, the logic of the entire example is quite "self-expressive", as easy to understand as pseudo code, and compared to setting the flag value when judging divisibility and then judging the flag value at the end of the function to decide whether to print the number when the prime number message , the code is cleaner and there aren't as many "procedural" preparations to describe how to do.
ps: You can run the commented code in the example to compare the effects.

2. Use with try except error control
In exception handling statements, else has similar usage. When the try code block does not throw any exception, the else statement block will be executed.

1

2

3

4

5

6

7

def my_to_int(str_param):

  try:

    print int(str_param)

  except ValueError:

    print 'cannot convert {} to a integer'.format(str_param)

  else:

    print 'convert {} to integer successfully'.format(str_param)

Copy after login

1

2

my_to_int("123")

my_to_int("me123")

Copy after login
Result:

1

2

3

123

convert 123 to integer successfully

cannot convert me123 to a integer

Copy after login

As shown in the print log, when the conversion is successful and no error occurs, the logic in the else statement will be executed. Of course, this example may not have much practical use, but it can roughly illustrate the role of else in error handling. Uses: Simplify logic, avoid using some flag values, and accurately grasp whether an error occurs to perform some actual operations (for example, if an error occurs when saving data, perform a rollback operation in the else statement block, and then immediately Then you can add finally statements to complete some cleaning operations

.

Making good use of the else statement block allows us to write code that is more concise and closer to the semantics of natural language. Of course, it will also be more pythonic. You can slowly understand the subtleties.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Do mysql need to pay Do mysql need to pay Apr 08, 2025 pm 05:36 PM

MySQL has a free community version and a paid enterprise version. The community version can be used and modified for free, but the support is limited and is suitable for applications with low stability requirements and strong technical capabilities. The Enterprise Edition provides comprehensive commercial support for applications that require a stable, reliable, high-performance database and willing to pay for support. Factors considered when choosing a version include application criticality, budgeting, and technical skills. There is no perfect option, only the most suitable option, and you need to choose carefully according to the specific situation.

HadiDB: A lightweight, horizontally scalable database in Python HadiDB: A lightweight, horizontally scalable database in Python Apr 08, 2025 pm 06:12 PM

HadiDB: A lightweight, high-level scalable Python database HadiDB (hadidb) is a lightweight database written in Python, with a high level of scalability. Install HadiDB using pip installation: pipinstallhadidb User Management Create user: createuser() method to create a new user. The authentication() method authenticates the user's identity. fromhadidb.operationimportuseruser_obj=user("admin","admin")user_obj.

Can mysql workbench connect to mariadb Can mysql workbench connect to mariadb Apr 08, 2025 pm 02:33 PM

MySQL Workbench can connect to MariaDB, provided that the configuration is correct. First select "MariaDB" as the connector type. In the connection configuration, set HOST, PORT, USER, PASSWORD, and DATABASE correctly. When testing the connection, check that the MariaDB service is started, whether the username and password are correct, whether the port number is correct, whether the firewall allows connections, and whether the database exists. In advanced usage, use connection pooling technology to optimize performance. Common errors include insufficient permissions, network connection problems, etc. When debugging errors, carefully analyze error information and use debugging tools. Optimizing network configuration can improve performance

Navicat's method to view MongoDB database password Navicat's method to view MongoDB database password Apr 08, 2025 pm 09:39 PM

It is impossible to view MongoDB password directly through Navicat because it is stored as hash values. How to retrieve lost passwords: 1. Reset passwords; 2. Check configuration files (may contain hash values); 3. Check codes (may hardcode passwords).

How to solve mysql cannot connect to local host How to solve mysql cannot connect to local host Apr 08, 2025 pm 02:24 PM

The MySQL connection may be due to the following reasons: MySQL service is not started, the firewall intercepts the connection, the port number is incorrect, the user name or password is incorrect, the listening address in my.cnf is improperly configured, etc. The troubleshooting steps include: 1. Check whether the MySQL service is running; 2. Adjust the firewall settings to allow MySQL to listen to port 3306; 3. Confirm that the port number is consistent with the actual port number; 4. Check whether the user name and password are correct; 5. Make sure the bind-address settings in my.cnf are correct.

Does mysql need the internet Does mysql need the internet Apr 08, 2025 pm 02:18 PM

MySQL can run without network connections for basic data storage and management. However, network connection is required for interaction with other systems, remote access, or using advanced features such as replication and clustering. Additionally, security measures (such as firewalls), performance optimization (choose the right network connection), and data backup are critical to connecting to the Internet.

How to optimize MySQL performance for high-load applications? How to optimize MySQL performance for high-load applications? Apr 08, 2025 pm 06:03 PM

MySQL database performance optimization guide In resource-intensive applications, MySQL database plays a crucial role and is responsible for managing massive transactions. However, as the scale of application expands, database performance bottlenecks often become a constraint. This article will explore a series of effective MySQL performance optimization strategies to ensure that your application remains efficient and responsive under high loads. We will combine actual cases to explain in-depth key technologies such as indexing, query optimization, database design and caching. 1. Database architecture design and optimized database architecture is the cornerstone of MySQL performance optimization. Here are some core principles: Selecting the right data type and selecting the smallest data type that meets the needs can not only save storage space, but also improve data processing speed.

How to use AWS Glue crawler with Amazon Athena How to use AWS Glue crawler with Amazon Athena Apr 09, 2025 pm 03:09 PM

As a data professional, you need to process large amounts of data from various sources. This can pose challenges to data management and analysis. Fortunately, two AWS services can help: AWS Glue and Amazon Athena.

See all articles