[Python学习笔记]分支语句&循环

发布时间:2024年01月20日

本文章将作为博主对Python学习从基础开始的笔记与整理,也将自己的某些针对Python的理解分享出来有便于跟博主一样的大学新手一起学习和理解Python。?

本文将介绍编程中必不可少的分支语句(Switch Statement)和循环(Loop)。

分支语句(Switch Statement)

1.单分支——if语句

if语句:if?条件判定/真值表达式: 执行操作

只有在条件判定为真或跟随真值1的时候才会执行后面的操作

if 1:# 注意,不建议长期使用真值表达式
    print('1是真值')
if 0:
    print('0不是真值')
print('后续代码')

注意,在分支语句中,只有在语句内部的代码会被影响执行,而在外部的不会。比如上面的?print('后续代码')语句在外部能够正常执行。

2.双分支——if else语句

if else语句: if 条件判定/真值表达式执行操作1

? ? ? ? ? ? ? ? ? ?else:执行操作2

条件判定为真或跟随真值1的时候会执行操作1,其他任何情况都会执行操作2

age = int(input('输入你的年龄: '))
if age >= 18:
    print('已满18岁')
else:
    print('未满18岁')

这里来一道针对程序员的脑筋急转弯:程序员的老婆对程序员说:”下班回来买十个包子,要是看见有卖西瓜的,就买一个。“ 那么程序员回家的路上看见西瓜后最后买了什么?

为什么是针对程序员呢,其实大家都明白答案应该是是个包子加一个西瓜对吧,但很可惜答案错误。

咱们来以程序员的角度来看,那这不就是一个分支语句:如果看见有卖西瓜的,就买一个包子,反之,买十个。

if 看见卖西瓜的:

????????买一个包子

else:

????????买十个包子

所以,答案应该是一个包子。

3.多分支——elif语句

?elif语句:if 条件判定/真值表达式执行操作1

? ? ? ? ? ? ? ? elif:条件判定/真值表达式执行操作2

????????????????elif:条件判定/真值表达式执行操作3

? ? ? ? ? ? ? ? ......

age = int(input('输入你的年龄: '))
if age < 18:
    print('你还未成年')
elif 18 <= age < 22:
    print('你成年了但还未到结婚年龄')
elif age >= 22:
    print('你已经到了结婚年龄')

嵌套问题

?在程序中我们是可以在一个分支语句中嵌入多个分支语句的,这样就可以对条件进行更加细致的分类。

user_name = input('请输入用户名:')
password = input('请输入密码:')
if user_name == 'admin':
    if password == '123456':
        print('登陆成功')
    else:
        print('密码错误')
else:
    if password == '123456':
        print('用户名错误')
    else:
        print('用户名和密码错误')

?但要注意最好少使用嵌套,不要超过4层,将会增大代码的复杂性,不利于后期的阅读和找bug。

循环(Loop)

1.While循环

while 条件判定/真值表达式#循环逻辑

n = 5
while n > 0:
    print(n)
    n -= 1

?

在循环中只要条件判定为真就会会一直进行循环,可以使用break提前结束循环。在一个程序中可以使用循环解决重复的有规律的问题和操作。

?2.For循环

for 临时变量 in 容器操作

临时变量是容器里面的数据,用完就会回收

容器:可以保存数据的结构:字符串,使用range()函数获得容器:range(起始,结束,步长)->结束值是取不到的,默认初始位置是0,步长是1

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

这里放一道思考题,很经典的奥数问题‘鸡兔同笼’:鸡兔同笼,一共有36个头,92只脚,问鸡有多少只,兔有多少只?

用数学的思想来做这道题的话我们都知道可以利用一元方程,但对于计算机来讲,它没办法像我们一样跳转思维,于是对于程序员来做的话,穷举法就是最简单的办法。但是我们当然不能一个个的列,于是就需要使用循环:

从全是兔开始:j=0,t=26->脚有j*2 + t*4 判断是否等于92。利用循环,当脚为92时停止,此时的变量即为答案

for i in range(37):
    j = i
    t = 36 - i
    if j * 2 + t * 4 == 92:
        print(f'鸡有{j}只'+f'兔有{t}只')

?

?3.break&continue

break:结束当前整个循环,break后面的代码不再执行循环也就这样停止

for i in range(10):
    if i % 2 != 0:
        break
    print(i)

?可以看到,当满足if条件后我们读取了break,此时整个循环部分彻底停止,并没有继续接下来的循环操作了。

continue:结束此时满足条件的循环,继续下一次循环

for i in range(10):
    if i % 2 != 0:
        continue
    print(i)

可以看到每次读取continue后,只是此时的这一次小循环被提前终止,也就是这一次后面的print操作无法进行,但之后的循环仍在继续。?

文章来源:https://blog.csdn.net/m0_74039945/article/details/135652970
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。