【Python基础】-02循环语句

循环结构

在编程中,循环结构是一种重要的程序结构,它可以让我们重复执行一段代码,直到满足某个条件为止。在 Python 中,常见的循环结构包括 while 循环和 for 循环。
循环学习纲要

1、while 循环

while 循环用于重复执行一段代码,直到满足某个条件为止。while 循环的语法如下:

while 条件:
    循环体

其中,条件是一个布尔表达式,循环体是需要重复执行的代码块。当条件为 True 时,循环体会一直重复执行,直到条件变为 False。

下面是一个使用 while 循环的例子,它会不断输入数字,直到输入的数字为 0:

num = 1
while num != 0:
    num = int(input("请输入一个数字:"))
    print("你输入的数字是:", num)
print("程序结束")

在这个例子中,我们使用 while 循环不断输入数字,当输入的数字为 0 时,循环结束。
举个栗子🌰
在这里插入图片描述

2、for 循环

for 循环用于重复执行一段代码,通常用于遍历序列或者集合。for 循环的语法如下:

for 变量 in 序列:
    循环体

其中,变量是用于遍历序列的变量名,序列可以是列表、元组、字符串等可迭代对象,循环体是需要重复执行的代码块。

下面是一个使用 for 循环的例子,它会遍历一个列表并打印列表中的每个元素:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

在这个例子中,我们使用 for 循环遍历了一个列表,并打印了列表中的每个元素。
举个栗子🌰
在这里插入图片描述

3、for 循环中的 range 函数

在 Python 的 for 循环中,经常使用内置的 range 函数来生成一系列数字,以便进行迭代。range 函数的用法如下:

range(stop)
range(start, stop[, step])

其中,参数的含义如下:

  • start:可选,起始数字,默认为 0。
  • stop:必需,终止数字,但不包含该数字。
  • step:可选,数字之间的间隔,默认为 1。

range 函数返回一个 range 对象,该对象表示一个数字序列,可以使用 for 循环来遍历这个数字序列。例如:

for i in range(5):
    print(i)

输出结果:

0
1
2
3
4

这个循环将会输出数字 0 到 4,因为 range(5) 返回的是包含数字 0、1、2、3、4 的数字序列。

你也可以使用 range 函数来指定一个起始数字、一个终止数字以及一个间隔,例如:

for i in range(1, 10, 2):
    print(i)

输出结果:

1
3
5
7
9

这个循环将会输出数字 1、3、5、7、9,因为 range(1, 10, 2) 返回的是包含数字 1、3、5、7、9 的数字序列。

除了用于 for 循环中,range 函数还可以用于创建列表、元组等其他数据类型。例如,下面的代码将会创建一个包含数字 0 到 4 的列表:

lst = list(range(5))
print(lst)

输出:

[0, 1, 2, 3, 4]

总之,range 函数是 Python 中非常有用的一个函数,可以用于创建数字序列,并进行迭代。

4、continue 和 break

当我们编写代码时,经常会遇到需要跳过某些循环或中止整个循环的情况。Python提供了两个语句来实现这一功能:continue 和 break。

4.1 continue语句

continue语句被用于跳过当前循环块中的剩余语句,然后继续执行下一次循环。

# 打印1到9之间的奇数
for i in range(1, 10):
    if i % 2 == 0:
        continue
    print(i)

输出:

1
3
5
7
9

在这个例子中,当 i 是偶数时,我们使用 continue 跳过了这个循环的剩余语句,然后进行下一次循环。当 i 是奇数时,我们使用 print(i) 输出了它的值。

4.2 break语句

break语句用于中止循环语句并跳出循环块。它可以在 for 循环和 while 循环中使用。

# 打印1到9之间的数字,直到遇到5为止
for i in range(1, 10):
    if i == 5:
        break
    print(i)

输出:

1
2
3
4

在这个例子中,当 i 的值为 5 时,我们使用 break 中止了循环,因此在 i 的值为 5 时,不再执行后面的代码。

5、pass语句

pass语句是Python中的一个空语句,它不执行任何操作。它通常用于占位符或作为某些代码的占位符,因为在语法上需要一些语句,但实际上不需要执行任何操作。

# 打印1到9之间的数字,但不执行任何操作
for i in range(1, 10):
    pass

在这个例子中,我们使用 pass 作为占位符,因为我们想要在循环中包含某些代码,但我们还没有决定要执行什么操作。

总结一下,continue 语句用于跳过当前循环的剩余语句并继续执行下一次循环,break 语句用于中止循环语句并跳出循环块,而 pass 语句是一个空语句,它不执行任何操作,通常用作占位符。在实际编程中,这些语句是非常有用的,因为它们可以帮助我们更好地控制程序的流程。

6、练习

6.1 P5718 【深基4.例2】找最小值 - 洛谷
题目描述

给出 n n n n n n 个整数 a i a_i ai,求这 n n n 个整数中最小值是什么。

输入格式

第一行输入一个正整数 n n n,表示数字个数。

第二行输入 n n n 个非负整数,表示 a 1 , a 2 … a n a_1,a_2 \dots a_n a1,a2an,以空格隔开。

输出格式

输出一个非负整数,表示这 n n n 个非负整数中的最小值。

样例 #1
样例输入 #1
8
1 9 2 6 0 8 1 7
样例输出 #1
0
提示

数据保证, n ≤ 100 n\le100 n100 0 ≤ a i ≤ 1000 0\le a_i \le 1000 0ai1000

代码
n = int(input())
lst = list(map(int,input().split())) # 同行输入一组数据
lst_min = lst[0]
for i in range(n):
    if(lst_min>lst[i]):
        lst_min = lst[i]
print(lst_min)

把列表的第一个值赋值给最小值变量,for循环遍历列表的值,遇到小于lst_min的,就将目标值赋值给lst_min

6.2 P2669 【NOIP2015 普及组】 金币 - 洛谷
题目背景

NOIP2015 普及组 T1

题目描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 n n n 天每天收到 n n n 枚金币后,骑士会在之后的连续 n + 1 n+1 n+1 天里,每天收到 n + 1 n+1 n+1 枚金币。

请计算在前 k k k 天里,骑士一共获得了多少金币。

输入格式

一个正整数 k k k,表示发放金币的天数。

输出格式

一个正整数,即骑士收到的金币数。

样例 #1
样例输入 #1
6
样例输出 #1
14
样例 #2
样例输入 #2
1000
样例输出 #2
29820
提示

【样例 1 说明】

骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 1 + 2 + 2 + 3 + 3 + 3 = 14 1+2+2+3+3+3=14 1+2+2+3+3+3=14 枚金币。

对于 100 % 100\% 100% 的数据, 1 ≤ k ≤ 1 0 4 1\le k\le 10^4 1k104

代码
# # n是有多少天
# # s是获得的金币总量
# # c是每天能获得的金币数
# # q表示往后数q天,获得的金币都是c个

n = int(input())
c = q = 1         # 第一天(往后的一天),获得1个金币
s = 0
while n:          # 要发n天金币
    s += c        # 累加
    q -= 1        # 已经发了一天
    if (q == 0):  # 要更新数据
        c = c+1   # 每天获得金币的数量+1
        q = c     # 根据题意,以后的c天都是c个金币,q就是c
    n -= 1
print(s)
6.3 九九乘法表

九九乘法表是数学学习中必须记忆的内容之一。

编写代码输出九九乘法表

代码
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j} X {i} = {j*i}",end="\t")
    print()

输出结果

在这里插入图片描述

类似题目练习

P8723 【蓝桥杯 2020 省 AB3】乘法表 - 洛谷

B3700 【语言月赛202301】 九九乘方表 - 洛谷

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

逸峰轻云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值