Python基础第三课——条件语句和循环语句

前言

书接上回,上篇文章中,我们讲了python的输入输出函数,还有变量以及运算符,不知道大家有没有看懂,能不能理解,如果有什么问题的话可以发在评论区,我们一起交流。

这篇文章,将为大家讲解一下python中条件语句和循环语句的用法

条件语句

条件语句就是通过一条语句或者多条语句的执行结果(True或者False)来判断执行的代码块,这么说是不是感觉有些抽象,没有关系,我们用一个流程图来理解他的代码执行逻辑

高中数学应该是看到过这种流程图的,解释起来也很简单,就是如果满足if的条件,则执行if下面的部分代码,如果不满足,则不执行这一块

最基本的if语句:

if 判断语句:
          需要执行的代码

举个小例子

grade = int(input(""))
if grade>=60 :
    print("恭喜上岸")

如果我们输入的数字大于等于60,输出结果就是:恭喜上岸,如果输入的数字在0到60,便不会有任何输出
(也希望看到这篇文章的朋友们期末不挂科,都能顺利上岸)

if-else语句:

if-else语句的语法结构:

if 判断条件:
    执行语句……
else:
    执行语句……

if-else语句比if语句的判断范围更大,刚才的单一个if语句,如果不满足if的条件,则不执行if区域代码,直接跳出if接着往下运行,而if-else语句中,如果不满足if的条件,则其他一律按else下面的代码执行,else后是不用跟判断条件的,因为else的判断条件就是非if区域

也来举个小例子

num = int(input(""))
if num % 2 == 0:
    print("这个数是偶数")
else:
    print("这个数是奇数")
#输入一个整数,如果这个数可以被2整除,则输出这个数是偶数
#如果这个数不能被2整除,则输出这个数是奇数

if-elif-else语句:

if-elif-else语法:

if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

当判断条件为多个值时,就可以使用以上形式,elif和if的逻辑其实是一样的,但是只有在判断条件为多个时使用elif,elif可以使用很多个

还是来举个小例子:

score = float(input("请输入学生的分数:"))
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "E"
print("学生的评级为:" + grade)

if的嵌套

 还是一样,我们先来看逻辑图:

简单来说就是在一个if语句的条件下,再判断执行另一个if语句

来一个小例子(我一直认为单纯的讲代码没有你自己敲一遍代码理解的更深,所以我总是喜欢在文章中以举代码例子的方式来讲解语法):

score = 85
if score >= 60:
    if score < 80:
        print("成绩及格了,还不错,继续加油呀!")
    else:
        print("成绩挺优秀的呢,保持住哦!")
else:
    print("成绩不太理想呀,要努力提高啦。")

在这个例子中,首先通过外层的 if 判断成绩是否及格(score >= 60),如果及格了,再通过内层的 if 判断成绩是否达到 80 分,根据不同情况输出不同的评语;要是外层 if 判断成绩不及格,就直接执行外层 if 对应的 else 语句块,输出相应提示。

好了,条件语句就讲到这里啦,是不是很简单,然后我们就进入循环语句的讲解

循环语句

while循环

while的语法结构:

while 判断条件(为一个布尔表达式):
    执行代码块

只要条件(布尔表达式)为真就执行里面的代码块,如果不满足该条件了(即布尔表达式为假了)就跳出循环

我们来给出一个例子,在这个例子中,我们初始化了一个变量 sum_num 用于存放累加的结果,变量 i 作为计数器从 1 开始。while 循环的条件是 i <= 100,只要这个条件满足,就会执行循环体内部的操作:将当前的 i 值累加到 sum_num 中,然后将 i 的值增加 1。当 i 超过 100 时,循环结束,最后输出累加的结果。

sum_num = 0
i = 1
while i <= 100:
    sum_num += i
    i += 1
print("1到100的整数累加和为:", sum_num)

如果我想要一个死循环呢,我可以将while后边的这个布尔表达式一直判断为真,我们可以给出一个绝对为真的表达式例如4<5,或者直接while True,便会进入一个死循环的状态

例如:

while True:
    username = input("请输入用户名:")
    password = input("请输入密码:")
    # 这里只是一个非常简单的模拟验证
    if username == "admin" and password == "123456":
        print("登录成功!")
        break
    else:
        print("用户名或密码错误,请重新输入!")

程序通过 while True 循环不断要求用户输入用户名和密码,然后简单模拟验证(实际中会有更严谨复杂的验证流程),如果输入的用户名和密码匹配(这里设定为用户名 admin 和密码 123456),就打印登录成功并通过 break 语句跳出循环;要是不匹配,就提示用户名或密码错误,接着进入下一轮循环,让用户再次尝试输入

for循环

for循环和while循环都是python的循环结构,两种用法可执行的功能近似,但语法差异很大

for 循环最常用于遍历序列中的元素,遍历的对象可以是列表、元组、字符串或其他可迭代对象。语法如下:

for 循环变量 in 要遍历的序列:
    循环体(即循环过程中需要执行的代码块)

看一看for循环的执行逻辑图,有助于更好的理解:

该图来源于网络

一个简单的小例子:

a_list = [1,2,3,4,5,6]
for i in a_list:
    print(i)

该行代码的输出结果为:

range是一个经常在for循环中使用的迭代结构
语法也很简单,类似于我们数学中的开区间
range(start,stop,step=1)
start值的是开始迭代的元素的下标,第一个元素的下标是0,(类似于C语言中的数组)所以,默认是从0开始。
stop是结束位置,结束的位置下标为(元素个数-1),例如range里面有4个元素,那么结束下标最大为3,大于3则跳出range。
step是步长,如果step是2,那么每次会隔开1个元素,默认步长为1,即每个元素都会取到

举个例子:

for i in range(4,8):
    print(i)

输出结果为:

break语句和continue语句

continue的作用是跳过本次循环,后面的循环继续执行,例如,我们对刚才的那个例子作出修改:

for i in range(4,8):
    if i==6 :
        continue
    print(i)

输出结果就变成了:

break语句就更简单了,就是跳出循环,还是在上述程序的基础上修改:

for i in range(4,8):
    if i==6 :
        break
    print(i)

i等于6的时候,就结束循环的运行,所以就没有了后面6,7的输出,现在的输出结果就变成了:

条件语句和循环语句理解上和语法上都很简单,但是在写代码时会经常用到,所以各位务必要把这弄懂,理解清楚,在文章最后我会给出几个经典的条件语句和循环语句的应用题目示例,可以自己写着练手

对前面知识的一点补充

写到今天的这篇文章,我突然想到在前面两篇文章中没有提到缩进和换行这个问题,对于新手编写python程序时确实会造成不小的影响,所以在这里补充一下

Python 最具特色的就是使用缩进来表示代码块。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,一般用 Tab 健进行操作,一个Tab键是4个空格的长度。比如:

这是正确的代码

if True:
    print("Answer")
    print("True")
else:
    print("Answer")
    print("False") 

如果说我们没有缩进正确的话,编译器就会报错

if True:
    print("Answer")
    print("True")
else:
    print("Answer")
  print("False")    # 缩进不一致,会导致运行错误

 这也是python编译过程中的一点特色,也许你会觉得这样严格的要求格式很麻烦,但是想一想,一段整齐的代码也会给人的阅读带来很大的便利,而且和C语言相比,python的语法结构已经简化了太多了,只是在缩进上有所要求罢了,在适应这一点之后,相信以后在学习其他编程语言的时候,已经学习过python的你,写出来的代码会更加漂亮,有更强的观赏性

经典题目示例

猜数字

这个题目可真是太经典了,根据不同的难度也有不少的版本

猜数字1.0

# 猜数字游戏示例,循环猜数字直到猜对为止
import random   #引入random库
key = random.randint(1, 100)   #这一句的意思是随机生成一个1到100之间的数
found = False  #初始化一个布尔变量 found,用于标记玩家是否猜对了数字,初始值设为 False,表示还未猜对。
while not found:   #开启一个 while 循环,只要 found 的值为 False(也就是玩家还没猜对数字),循环就会持续进行
    guess = int(input("请输入你猜的数字(1 - 100之间): "))
    if guess == key:
        found = True
        print("恭喜你,猜对了!")
    elif guess < key:
        print("猜小了,再试试吧。")
    else:
        print("猜大了,再试试吧。")

猜数字2.0(规定了猜的次数)

import random
computer = random.randint(1, 100)
count = 6    #初始化一个整型变量count,用于记录玩家剩余的猜测次数,初始值设为6,表示玩家一开始拥有 6次猜测机会
while (count > 0):  #开启一个while循环,只要count的值大于0,也就是玩家还有剩余猜测次数时,循环就会持续进行,让玩家继续猜测数字
    count -= 1     #在每次循环开始时,先将count的值减 1,表示玩家已经用掉了一次猜测机会,无论此次猜测结果如何,机会数都会减少
    number = int(input("请输入100以内的整数:"))
    if (number > computer):
        print("你猜大了")
    elif (number < computer):
        print("你猜小了")
    else:
        print("恭喜你赢了")
        break
    if count == 0:
        print('游戏结束')
        break
    print(f'你还剩余{count}次机会')   #如果玩家猜中了数字或者猜测次数为0,则结束循环

判断一个数是否为质数

num = int(input("请输入一个大于1的整数: "))
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
    if num % i == 0:
        is_prime = False
        break
if is_prime and num > 1:
    print(f"{num} 是质数")
else:
    print(f"{num} 不是质数")

打印九九乘法表

for num in range(100, 201):
    if num % 7 == 0 and num % 5!= 0:
        print(num)

就先给这些吧,还有些经典题目,例如石头剪刀布,词频统计,在我之前发的博客python经典基础题目集里有总结过,不在这个专栏里,如果感兴趣的可以在我的主页查找,当然,后续也会更新更多的题目集分享

结语

很高兴你能看到这里,不知道对于本篇文章中条件语句和循环语句的使用是否还有什么疑问,如果有问题的话可以发在评论区,我们一起交流

这周我应该会尽量保持一个日更或者说两天一更的状态,往后的话更新频率应该不会特别快,因为要到大学的考试周了,等考试周过了之后,尽量恢复现在的更新频率

谢谢观看,希望能对你有所帮助,可以给个三连支持一下,欢迎你的关注和收藏,谢谢啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值