Python入门3:循环

一、前言

1.1、什么是循环?

        在我们日常生活中,比如学生每天的上课,总是:起床---吃早餐---上课---吃午饭---午休---上课---吃晚饭---晚自习---睡觉,每天都是重复着这一个过程。像这种条件重复地做⼀件事,每⼀次做的事情不同但类似的事情我们就可以用循环。程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环

1.2、循环的作用

        循环的作用就是要代码高效的重复执行。比如我们遇到要重复输出一百遍一样的print语句的时候,假如我们没有循环,那么我们就需要复制粘贴一百份相同的代码,其实不⽤这么麻烦,以上输出代码中有很多重复的地⽅,我们只要重复执⾏100次相同的代码即 可,这就是循环!

1.3、循环的种类

        在Python中,循环一共分为两类,一类是是while循环,另一类是for循环。那么我们该如何选择循环的类型:

        ① 对于循环次数已知的情况,建议使⽤while循环
        ② 对于循环次数未知的情况,建议使⽤for循环

1.4、循环的注意事项

        在大家之前学过的C语言或者Java中,我们的循环条件一般都是通过小括号括起来的,而循环体都是通过大括号包起来的。但是Python里面没有这些繁琐的格式,我们的循环条件不需要小括号,直接写就可以了,而我们的循环体是有严格的缩进原则的,是通过缩进来判断循环体的范围的。

二、while循环

2.1、while循环的基本语法

# ① 定义⼀个计数器(初始化⼀个计数器)
i = 0或1
# ② 编写while循环结构
while 循环条件(判断 计数器 是否达到了⽬标位置):
 循环体1
 循环体2
 ...
 # ③ 在循环内部更新计数器
 i = i + 1 或 i += 1

 while循环四步走:

        1、定义计数器

        2、编写循环条件

        3、编写循环体

        4、更新计数器

2.2、while循环的案例

1、使用while循环求0-100之和

# 1-100的累计求和
i = 1
result = 0
while i <= 100:
    result += i
    print(i)
    i += 1
print(f"1-100的累加结果是:{result}")

2、1-100之间的偶数的累计求和

# 1-100的偶数累计求和
i = 1
result = 0
while i <= 100:
    if i % 2 == 0:
        result = result + i
    i = i + 1
print(f"1-100的偶数和为:{result}")

3、从键盘输入数字,求这个数字的阶乘和阶乘的表达式

number = int(input("请输入一个要求阶乘的数字:"))
start = 1
result = 1
# 存储最后的结果
str_result = ""
while start <= number:
    # 阶乘的计算结果
    result = result * start
    # 阶乘的计算表达式
    if start == 1:
        str_result = str(start)
    else:
        str_result = str_result + f"x{start}"
    start += 1
print(f"{str_result} = {result}")

4、猜数字大小的综合案例

        电脑随机生成一个0-10的数字,用户手工从键盘输入一个数字,总共有三次机会。

# 第⼀步:定义⼀个计数器
i = 0
# 第四步:⽣成1 ~ 10之间的随机数
secretNum = random.randint(1, 10)
# 第⼆步:编写循环条件
while i < 3:
 # 第五步:提示⽤户输⼊⼀个数字
 userNum = int(input('请输⼊您猜的数字(范围1~10之间):'))
 # 第六步:判断⽤户输⼊的数字是否与随机数相等
 if secretNum == userNum:
 print('恭喜你,才对了')
 break
 elif secretNum < userNum:
 print('猜⼤了')
 elif secretNum > userNum:
 print('猜⼩了')
 # 第三步:更新计数器
 i += 1

三、循环的两大关键词:continue和break 

        在刚刚的例子里面,我们看到了偶一个叫break的关键词。在Python循环中,经常会遇到两个常⻅的关键词:break 与 continue。break:代表终⽌整个循环结构。continue:代表中⽌当前本次循环,继续下⼀次循环。

3.1、break关键词

如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第5个苹果,即是吃苹果的动作停
⽌,这⾥就是break控制循环流程,即终⽌此循环。
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
 # 当变量i == 4的时候,终⽌循环
 if i == 4:
 print('我已经吃饱了,实在吃不下了...')
 break
 
 # 正在吃第⼏个苹果
 print(f'正在吃第{i}个苹果')
 
 # 更新计数器
 i += 1

3.2、continue关键词

计算1-10的奇数之和:

num = 1
sum_odd = 0
while num <= 10:
    if num % 2 == 0:
        num += 1
        continue
    sum_odd += num
    num += 1
print("1到10之间奇数的和为:", sum_odd)

四、for循环

        for循环结构主要⽤于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作。 另外当循环次数未知的情况,建议使⽤for循环。

4.1、语法

for 临时变量 in 序列:
 重复执⾏的代码1
 重复执⾏的代码2

4.2、案例

# 使⽤for循环遍历字符串"python"
char = "Python"
for i in char:
    print(i,end=",")

4.3、range()方法(函数)

        Python2 range() 函数返回的是列表,⽽在Python3中 range() 函数返回的是⼀个可迭代对象(类型是对 象),⽽不是列表类型, 所以打印的时候不会打印列表。 (由于我们还未学习⾯向对象,为了⽅便⼤家 理解,你可以简单的将其理解为⼀个序列结构)
range(stop)
range(start, stop, step)
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5
step:步⻓,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)

4.4、range()结合for循环案例

#案例:for循环与range⽅法,使⽤for循环,循环5次
for i in range(5):
 print(i)
# 使⽤for循环,求1 ~ 100的和
result = 0
for i in range(1,101,1):
    result += i
print(result)
# 使⽤for循环,求1 ~ 100的偶数和
result = 0
for i in range(0,101,2):
    result += i
print(result)
# 或者
result = 0
for i in range(1,101):
    if i % 2 == 0:
        result += i
print(result)
# 案例:⽤for循环实现⽤户登录
# ① 输⼊⽤户名和密码
# ② 判断⽤户名和密码是否正确(username='admin',password='admin888')
# ③ 登录仅有三次机会,超过3次会报错
zhanghao = "abcabc"
mima = "abcabc123123"
for i in range(1,4):
    username = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if zhanghao == username and mima == password:
        print("登录成功!")
        break
    else:
        print(f"你还有{3-i}次机会!")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值