本文章将作为博主对Python学习从基础开始的笔记与整理,也将自己的某些针对Python的理解分享出来有便于跟博主一样的大学新手一起学习和理解Python。?
本文将介绍编程中必不可少的分支语句(Switch Statement)和循环(Loop)。
if语句:if?条件判定/真值表达式: 执行操作
只有在条件判定为真或跟随真值1的时候才会执行后面的操作
if 1:# 注意,不建议长期使用真值表达式
print('1是真值')
if 0:
print('0不是真值')
print('后续代码')
注意,在分支语句中,只有在语句内部的代码会被影响执行,而在外部的不会。比如上面的?print('后续代码')语句在外部能够正常执行。
if else语句: if 条件判定/真值表达式:执行操作1
? ? ? ? ? ? ? ? ? ?else:执行操作2
条件判定为真或跟随真值1的时候会执行操作1,其他任何情况都会执行操作2
age = int(input('输入你的年龄: '))
if age >= 18:
print('已满18岁')
else:
print('未满18岁')
这里来一道针对程序员的脑筋急转弯:程序员的老婆对程序员说:”下班回来买十个包子,要是看见有卖西瓜的,就买一个。“ 那么程序员回家的路上看见西瓜后最后买了什么?
为什么是针对程序员呢,其实大家都明白答案应该是是个包子加一个西瓜对吧,但很可惜答案错误。
咱们来以程序员的角度来看,那这不就是一个分支语句:如果看见有卖西瓜的,就买一个包子,反之,买十个。
if 看见卖西瓜的:
????????买一个包子
else:
????????买十个包子
所以,答案应该是一个包子。
?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。
while 条件判定/真值表达式: #循环逻辑
n = 5
while n > 0:
print(n)
n -= 1
?
在循环中只要条件判定为真就会会一直进行循环,可以使用break提前结束循环。在一个程序中可以使用循环解决重复的有规律的问题和操作。
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}只')
?
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操作无法进行,但之后的循环仍在继续。?