Python顺序、条件和循环

Python编程:顺序语句、条件判断与循环实战解析

顺序语句

默认情况下,Python的代码执行顺序是按照从上到下依次执行的。比如:

print('a')  # a
print('b')  # b
print('c')  # c

上述代码的执行结果一定是“abc”,而不会出现“bca”或“cba”等结果,这种按照顺序执行的代码就叫做顺序语句。

条件语句

语法格式

标准格式

条件语句的标准格式如下:
在这里插入图片描述
注意事项:

  • 条件表达式和else后面使用:作为结尾。
  • 对于多条件分支,不是写作else if,而是elif。
  • 命中条件后要执行的语句块,使用缩进来区分各个代码块。
  • Python当中的if语句也支持嵌套。

代码示例:

choice = input('你大学期间认真学习了吗?(输入1表示是,输入0表示否): ')
if choice == '1':
    print('你将会考研顺利或找到一个满意的工作!')
elif choice == '0':
    print('你将来会为此而后悔!')
else:
    print('你的输入有误!')

注意: input函数的返回值是字符串类型。

简写格式

条件语句的简写格式如下:
在这里插入图片描述
代码示例:

a = 10
b = 20
# 单行if语句
if a < b: print('a is less than b')
# 单行if else语句(一个条件语句)
print('a') if a < b else print('b')
# 单行if else语句(多个条件语句)
print('a') if a < b else print('=') if a == b else print('b')

代码案例

一、输入一个整数,判定是否是奇数。

代码如下:

a = int(input('请输入一个整数: '))  # 注意将输入的字符串转换成int类型

if a % 2 == 1:
    print('这是一个奇数')
else:
    print('这是一个偶数')

说明一下: 在C/C++等其他某些语言中,负奇数取余后得到的是-1,但在Python中负奇数取余后得到的是1。

二、输入一个整数,判定是正数还是负数

代码如下:

a = int(input('请输入一个整数: '))

if a > 0:
    print('正数')
elif a < 0:
    print('负数')
else:
    print('0')

三、判定年份是否是闰年

代码如下:

year = int(input('请输入一个年份: '))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('闰年')
else:
    print('平年')

缩进和代码块

Python中使用缩进来表示不同的代码块,不同级别的缩进,程序的执行效果是不同的。比如:

# 代码1
num = input('请输入一个整数: ')
if num == '1':
    print('hello')
    print('world')

# 代码2
num = input('请输入一个整数: ')
if num == '1':
    print('hello')
print('world')

代码说明:

  • 代码1中的两条打印语句都具有一级缩进,因此都属于if内的代码块。
  • 代码2中只有第一条打印语句具有一级缩进,第二条打印语句没有缩进,因此只有第一条打印语句属于if内的代码块。

空语句pass

Python语法规定,if语句、while语句、for语句、函数体、类定义等都不能为空,如果因为某些原因写了对应无内容的语句,就需要使用pass语句来避免语法报错。比如:

if a < b:
    pass
    
while a < b:
    pass
    
for x in range(10):
    pass

def func():
    pass

class MyClass:
    pass

注意: 空语句pass并不会对程序的执行有任何影响,只是占个位置,保持Python语法格式符合要求。

循环语句

while循环

语法格式

while循环语句的语法格式如下:
在这里插入图片描述
注意事项:

  • 在条件表达式和else后面使用:作为结尾。
  • 命中条件后要执行的语句块,使用缩进来区分各个代码块。
  • Python当中的while循环也支持嵌套。
  • 在循环体当中使用break语句,可以跳出循环。
  • 在循环体当中使用continue语句,可以停止当前的迭代,并继续下一次迭代。
  • 如果使用了else语句,那么当循环条件不再成立时,会执行一次else代码块。

代码案例

一、打印1 - 10的整数

代码如下:

num = 1
while num <= 10:
    print(num)
    num += 1

二、计算1 - 100的和

代码如下:

sum = 0
num = 1
while num <= 100:
    sum += num
    num += 1
print(f'sum = {sum}')  # 5050

三、计算5的阶乘

代码如下:

result = 1
num = 5
while num >= 1:
    result *= num
    num -= 1
print(f'result = {result}')  # 120

四、求1! + 2! + 3! + 4! + 5!

代码如下:

sum = 0
num = 1
while num <= 5:
    factorResult = 1
    i = 1
    # 计算num的阶乘
    while i <= num:
        factorResult *= i
        i += 1
    sum += factorResult  # 将num的阶乘累加到sum中
    num += 1
print(f'sum = {sum}')  # 153

for循环

语法格式

语法格式

for循环语句的语法格式如下:
在这里插入图片描述
注意事项:

  • 可迭代对象包括列表、元组、字典、集合、字符串等。
  • 在可迭代对象和else后面使用:作为结尾。
  • 命中条件后要执行的语句块,使用缩进来区分各个代码块。
  • Python当中的for循环也支持嵌套。
  • 在循环体当中使用break语句,可以跳出循环。
  • 在循环体当中使用continue语句,可以停止当前的迭代,并继续下一次迭代。
  • 如果使用了else语句,那么当循环条件不再成立时,会执行一次else代码块。

range函数

range函数经常和for循环搭配使用,其可以返回一个数字序列(可迭代对象)。
在这里插入图片描述
参数说明:

  • 第一个参数代表的是数字序列的起始值,默认为0。
  • 第二个参数代表的是数字序列的结束值(不包括结束值)。
  • 第三个参数代表的是数字序列的增量值(步长),默认为1。

range函数的三种使用方式:

  • range(end):返回的数字序列为1,2,3,…,end-1。
  • range(start, end):返回的数字序列为start,start+1,start+2,…,end-1。
  • range(start, end, step):返回的数字序列为start,start+step,start+2 × \times ×step,…,start+n × \times ×step。

对于range函数的第三种使用方式,如果step的值为正数,那么start+n × \times ×step < end,如果step的值为负数,那么start+n × \times ×step > end。

示例:

range(10)         # 0,1,2,3,4,5,6,7,8,9
range(1, 10)      # 1,2,3,4,5,6,7,8,9
range(1, 10, 2)   # 1,3,5,7,9
range(10, 1, -2)  # 10,8,6,4,2

代码案例

一、打印1 - 10的整数

代码如下:

for i in range(1, 11):
    print(i)

二、打印2,4,6,8,10

代码如下:

for i in range(2, 12, 2):
    print(i)

三、打印10 - 1的整数

代码如下:

for i in range(10, 0, -1):
    print(i)

四、求1 - 100的和

代码如下:

sum= 0
for i in range(1, 101):
    sum+= i
print(f'sum = {sum}')  # 5050
<think>首先,用户的问题是关于“Python条件循环的简写方法”。具体来说,他们问“Python条件循环的简写方式”。我需要基于提供的引用之前的上下文来回答。 回顾引用: - 引用[1]:讨论了循环嵌套的简写,但重点在嵌套循环的处理顺序。 - 引用[2]:关于条件判断,包括简单条件判断的示例。 - 引用[3]:解释了循环中的continue语句。 - 引用[4]:直接涉及缩写for循环if else语句的方法,给出了列表推导式的示例。 用户的问题聚焦在“条件循环的简写”,我认为这指的是条件语句(如if-else)在循环上下文中的简写,可能是列表推导式或其他Pythonic方式。 从引用[4]中,给出了明确的例子: - 对于for循环中的if语句:`res = [i for i in s if i>2]` - 对于if-else在列表推导式中:`[li.capitalize() if len(li)>2 else li.lower() for li in title.split(" ")]` 所以,我应该解释Python中的简写方法,特别是列表推导式(list comprehensions),因为它允许在单行中结合循环条件。 系统指令要求: - 所有行内数学表达式必须用$...$格式,但这里是关于Python编程,没有数学公式,所以可能不需要。 - 独立公式必须用$$...$$并单独成段,同样,这里可能不适用。 - LaTeX语法正确:专注于Python代码。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾自然地添加引用标识,如[^1]。 回答结构应该清晰,帮助用户逐步解决问题。保证真实可靠。 步骤: 1. **解释简写方法**:介绍Python中的列表推导式作为条件循环的简写。 2. **提供示例**:基于引用[4],给出代码示例。 - 纯条件循环:`[item for item in iterable if condition]` - 带if-else:`[expression_if_true if condition else expression_if_false for item in iterable]` 3. **引用来源**:在相关部分添加引用标识,指向引用[4]。 4. **结构回答**:使用标题或段落使结构清晰。 5. **生成相关问题**:在末尾添加相关问题。 相关问题建议(基于主题): 1. Python中还有哪些循环简写方式? 2. 如何在列表推导式中处理多个条件? 3. 列表推导式与生成器表达式的区别? 最终回答: - 用中文。 - 确保代码块正确,使用三个反引号包裹。 - 自然地添加引用。 </think>### Python条件循环的简写方法 在Python中,"条件循环"通常指在循环中结合条件判断(如if语句)。Python提供了简洁的语法来实现这种简写,核心方法是使用**列表推导式(List Comprehensions)**,它允许您在单行代码中整合循环条件逻辑,从而简化代码并提高效率。以下是逐步说明示例。 #### 1. **基本简写方法:列表推导式** - 列表推导式是Python的一种语法糖,能将for循环条件判断压缩到一行代码中。 - **语法结构**: - 纯条件过滤:`[expression for item in iterable if condition]` — 只有满足条件的元素才会被处理。 - 带if-else语句:`[expression_if_true if condition else expression_if_false for item in iterable]` — 根据条件执行不同操作。 - **优势**:减少冗余代码,提高可读性,降低内存占用。 示例代码: ```python # 示例1: 纯条件过滤(只保留符合条件的元素) s = [1, 2, 3, 4, 5] res = [i for i in s if i > 2] # 结果: [3, 4, 5] # 示例2: 带if-else语句(根据条件修改元素) words = ["apple", "and", "banana"] capitalized = [word.capitalize() if len(word) > 2 else word.lower() for word in words] # 结果: ['Apple', 'and', 'Banana'] ``` 在这个示例中: - `word.capitalize() if len(word) > 2 else word.lower()` 是一个条件表达式,它检查每个单词的长度。 - `for word in words` 是循环部分。 这种方法显著简化了传统的for循环加if语句的结构[^4]。 #### 2. **嵌套条件循环的简写** - 如果循环涉及多层条件或多变量,可以在列表推导式中嵌套使用。 - **语法结构**:`[expression for item1 in iterable1 for item2 in iterable2 if condition]`。 示例代码: ```python # 示例: 嵌套循环过滤 pairs = [(i, j) for i in range(3) for j in range(3) if i != j] # 结果: [(0,1), (0,2), (1,0), (1,2), (2,0), (2,1)] ``` - 这里,`if i != j` 在内部过滤元素,避免使用多行循环结构。 #### 3. **注意事项** - **可读性**:虽然简写高效,但过度使用会使代码难以理解。建议在简单场景下使用,复杂逻辑保留传统循环。 - **其他简写方式**: - **字典推导式**:类似列表推导式,但生成字典。例如:`{key: value for key, value in iterable if condition}`。 - **生成器表达式**:使用`()`代替`[]`,适合大型数据集(惰性求值)。例如:`(i for i in s if i > 2)`。 - 在循环中使用`continue`或`break`时,列表推导式不直接支持,需用传统循环[^3]。 总结来说,Python条件循环的简写主要通过列表推导式实现,它结合了循环迭代条件判断,使代码更简洁高效。核心语法是`[expression if condition else alternative for item in iterable]`,适用于数据过滤转换场景[^4]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021dragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值