Python 循环结构

简介: 用户输入或者从文件读取的数据通常都是字符串类型, 如果需要进行数学运算,需要将字符串转换为数字类型后再运算。这个函数可以将这些序列并排的元素配对成元组后,组成一个新的可迭代对象。循环用于遍历序列(字符 串、列表和元组等)或任何可迭代对象内的元素,是一个通用的迭代器。在Python中,变量可以通过多重赋值的方式进行赋值,这种方式同样可以用在。两种循环结构,利用循环语句,可以让一个代码块一遍又一遍的执行。循环,脱离该循环后程序从循环后代码继续续执行。是一个函数, 也就是对序列中元素进行的操作。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 循环结构

1.while 循环语句

Python 中有 whilefor 两种循环结构,利用循环语句,可以让一个代码块一遍又一遍的执行。

对于while循环,只要while语句的条件为Truewhile子句中的代码就会执行。Python当中,while实现循环的方法如下:

while condition:
    statements
while语句看起来和 if语句类似。不同之处是它们的行为。 if子句结束时,程序继续执行 if语句之后的语句。但在 while子句结束时,程序执行跳回到 while语句开始处。 while子句常被称为“while 循环”,或就是“循环”。

代码实例:

count = 0
while count < 10:
    print(f'{count}的平方为{count ** 2}')

2.for 循环语句

通常, for循环用于遍历序列(字符 串、列表和元组等)或任何可迭代对象内的元素,是一个通用的迭代器。 for循环的一般形式是:
for item in iterable_obj:
    statements
如:
num_list = [5, 4, 6, 8, 34, 17]
sum_value = 0
for num in num_list:
    sum_value += num
print(f'数字总和为{sum_value}')
在Python中,变量可以通过多重赋值的方式进行赋值,这种方式同样可以用在 for循环的遍历中:
num_list = [[5, 4], [6, 8], [34, 17]]
value = 0
for num1, num2 in num_list:
    value += num1
    value -= num2
print(value)

使用range函数遍历

有一种遍历方式是利用序号(偏移量),此时需要将包含列表序号的可迭代对象放在 for循环首行的 in关键字后面,通常利用 range函数来实现。
range函数会得到一个按需产生整数元素的可迭代对象,其语法结构有两种形式:
range(stop)
range(start, stop, [step])
代码实例:
for num in range(0,10):
    print(f'{num}的平方为{num ** 2}')

3.break, continue和else语句

3.1 break语句

break用来跳出最内层 forwhile循环,脱离该循环后程序从循环后代码继续续执行。
s = 'Python'
for c in s:
    if c == 'o':
        print(f'在{s}中找到o了。')
        break
else:
    print(f'{s}中没有字母o了。')
每个 break语句只有能力跳出当前层次循环。
s = 'Python'
for c in s:
    for i in range(10):
        print(c, end='')
        if c == 'o':
        break

3.2 continue 语句

break语句一样, continue语句用于循环内部。如果程序执行遇到 continue语句,就会马上 跳回到循环开始处,重新对循环条件求值(这也是执行到达循环末尾时发生的事情)。

试试下面的用户验证:

while True:
    print('请输入用户名:')
    name = input()
    if name != '小嗷犬':
        print('用户不存在')
        continue
    print('你好, 小嗷犬!')
    password = input('请输入密码:')
    if password == '123456':
        break
print('登录成功')

3.3 else 语句

在有些场景中,需要根据循环结束的原因(正常结束还是因为执行 break而结束)来作出不同的操作。在其它程序设计语言中,通常使用一个标记变量来实现。在Python的循环,加入了 else子句,使得程序编写更加方便:
# 找出50以内的素数
result = [] 
for i in range(2,51):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        result.append(i) 
print(result)

4.循环的应用

4.1 使用 range 函数遍历

range 函数会得到一个按需产生整数元素的可迭代对象,其语法结构有两种形式:
range(stop)
range(start, stop, [step])
代码实例:
for num in range(0,10):
    print(f'{num}的平方为{num ** 2}')

4.2 列表推导式

推导式是从可迭代对象中快速简洁地创建数据类型的一种方法。它使得你用优美简短的代码就能实现循环甚至条件判断。

利用推导式可以得到列表、字典、集合以及生成器。列表推导式会产生一个新的列表,其语法形式如下所示:

[expr for item in iterable_obj]
用户输入或者从文件读取的数据通常都是字符串类型, 如果需要进行数学运算,需要将字符串转换为数字类型后再运算。编写程序,将输入的销售数量进行累加。
代码实例:
amt_str = input('请输入销售数量(用逗号隔开):') 
amt_str_list = amt_str.split(',') 
amt_int_list = [int(amt) for amt in amt_str_list] 
print('总销售数量为:{}件'.format(sum(amt_int_list)))
列表推导式也可以加上 if 关键字, 对原可迭代对象中的元素进行判断, 符合条件的元素在使用 expr 表达式运算后加入新列表中:
[expr for item in iterable_obj if condition]
在代码实例中,为了防止输入的销售数量是负数,可以对代码进行以下改造:
amt_str = input('请输入销售数量(用逗号隔开):') 
amt_str_list = amt_str.split(',') 
amt_int_list = [int(amt) for amt in amt_str_list if '-' not in amt] 
print('总销售数量为:{}件 '.format(sum(amt_int_list)))

4.3 并列遍历:zip 函数

Python 中提供了一个非常有用的函数: zip 函数。 这个函数可以将这些序列并排的元素配对成元组后,组成一个新的可迭代对象。其语法格式如下:
zip(*iterables)
代码实例:
stock_code = ('600000', '600036', '600048', '000001') 
stock_name = ('浦发银行', '招商银行', '保利地产', '平安银行') 
close_price = [11.54, 36.84, 16.61, 14.49] 
for item in zip(stock_code, stock_name, close_price):
    print('{1} 的代码是:{0},收盘价:{2:.2f} 元'.format(item[0], item[1], item[2]))

4.4 简单循环的替身:map 函数

在 Python 中,可以利用 map 函数简化这类代码。其语法格式如下:
map(func, *iterables)
map 函数有两个参数, func 是一个函数, 也就是对序列中元素进行的操作。

代码实例:

amt_str = input(' 请输入销售数量 ( 用逗号隔开 ):') 
amt_str_list = amt_str.split(',') 
amt_int_map_obj = map(int, amt_str_list) 
print(' 总销售数量为:{} 件 '.format(sum(amt_int_map_obj)))

4.5 序号和元素都需要时应用 enumerate 函数

在 Python 中,通过 enumerate 函数可以将代码写得更加简洁。

enumerate 函数的语法格式如下:

enumerate(iterable, start=0)
代码实例:
goods_list = [['华为笔记本', 1000], ['联想笔记本', 800], ['苹果笔记本', 600]] 
for idx, goods in enumerate(goods_list):
    print('第{}名{}销量:{}台'.format(idx + 1, goods[0], goods[1]))
目录
相关文章
|
6月前
|
算法 Python
Python中基本的循环结构
Python中基本的循环结构
73 1
C4.
|
6月前
|
存储 Python
Python的循环结构
Python的循环结构
C4.
49 0
Python语言基础---选择判断循环结构详解
Python语言基础---选择判断循环结构详解
|
Python
Python循环结构while\for-in
Python循环结构while\for-in
32 0
|
23天前
|
Python
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
38 2
|
5月前
|
存储 缓存 算法
【Python学习篇】Python实验小练习——循环结构(八)
【Python学习篇】Python实验小练习——循环结构(八)
37 1
|
2月前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
|
6月前
|
Python
Python中的循环结构
Python中的循环结构
71 0
|
2月前
|
机器学习/深度学习 Python
Python编程的循环结构小示例(一)
Python编程的循环结构小示例(一)
|
3月前
|
程序员 Python
深入理解Python中的循环结构
【8月更文挑战第20天】
45 0