判断语句
在python中通常用if函数来判断是否满足一个条件,然后执行if函数内的代码块。一般将判断语句分为单分支和多分支两种结构。
单分支
单分支比较简单,一般只有True或者False两个结果。它的结构如下:
if <代码块1> :
<代码块2>
else:
<代码块3>
在这个结构中,先执行if后面的代码,假如判断成功了,那么就会执行代码块2的内容,否则就会执行代码3的内容。举个梨子尝尝
name = "jon"
passwd = "12345"
if name == "jon" and passwd == "12345": #代码块1
print("Login success!") #代码块2
else:
print("Login failed!") #代码块3
#and 表示两个条件(name和passwd)都要满足
#输出的结果是Login success!
单分支结构比较简单,但有时候我们需要细分着判断,而不是只有是或不是这两个结果是就需要多分支结构了。
多分支
其实多分支只是在单分支的基础上添加了一个以上的elif,从而形成了其结构:
if <条件1> :
<代码块1>
....省略
elif <条件2>:
<代码块2>
elif <条件3>:
<代码块3>
....省略
else:
<代码块4>
在多分支结构中的elif是可以无限多的,视情况而定。现在我们知道了多分支的结构,那就先看看它是怎么用的:
age = eval(input("请输入年龄:\n>>>"))
if age < 18:
print("未成年")
elif age < 45:
print("青年")
elif age < 59:
print("中年")
elif age < 74:
print("年轻老人")
elif age < 89:
print("老年")
else:
print("长寿老人")
这里要注意的是在python执行过程中是从上到下执行的,也就是说先判定age是否小于18,而不会先去判断age小于45,。因此又有另一个问题那就是假如 age > 45在age > 18之前的话,那不就是判断有误了吗?其实只要把条件改为18 >= age > 45 就可以解决问题了。
特殊用法
- 三元表达式
在进行判断单分支结构时,通常会使用四句以上的代码来实现一个功能,但是python中有一种写法,只需要一句代码就能达到这个效果。先看一看它的结构:
< TRUE时执行的代码 > if < 条件 > else < False时执行的代码 >
其中,
< TRUE时执行的代码 >, if < 条件 > ,else < False时执行的代码 >三个分别为一个元,因此称为三元表达式。
然后我们再举一个列子看看:
age = input("请输入你的年龄 ")
print("你已经成年了") if age >= 18 else print("你还是好好在家待着吧")
上面这个例子明显我们也能通过五行代码去解决,但是很明显,使用三元表达式更加的简洁。
循环语句
再说循环之前,必须要提一句,循环的好坏将会影响着程序运行的快慢。
在python中有两种循环方式
- while循环
- for循环
这两个循环都是在满足一定条件是不断执行循环内代码块的操作,先说一下while循环吧。
while循环
while循环的结构如下
while <条件>:
<代码块>
当while后面的条件为True时,将会执行while下面的代码块,直到判断到false时才会跳到下一步去。
因此编写代码时应该要注意条件的内容,根据要求去处理。
for循环
for循环是python的一个强大的功能,它可以使用迭代器协议将字符串、列表、元组、字典、集合和文件对象转化为可迭代对象。因此,for 后面的数据只能跟上述的一些可以转换为可迭代对象地数据类型,而不能是像数字这样的不可迭代的类型,否则会报错。
我们先看一看它是怎么用的:
items = [ 1,2,3,4,5,6 ]
for item in items:
print(item)
for item in items就是将items中的每一个元素逐一取出,然后执行下面的代码。所以上面代码的执行结果为
1
2
3
4
5
6
但假如是
items = 123456
for item in items:
print(item)
那么就会报错:
for item in items:
TypeError: 'int' object is not iterable
特殊用法
- continue
- break
运用 这两个保留字可以完成一些特定的功能。
continue:不再执行while里面的continue之后的代码了。相当于跳过下面的内容。
continue的工作流程实际上正如上图:当if函数没有判定为True时将会跳过continue直接执行print()函数,而当for循环遍历到5时,即item = 5时,会直接跳过print函数,然后在使item = 6 ,print(item),结束程序运行。
#结果
1
2
3
4
6
break:直接跳出循环,执行当前循环之外的代码。
上面的图是break的工作流程,若break执行,则直接跳出循环,所以5和6是不会被打印出来的。而是直接打印最后一行代码。
#结果
1
2
3
4
我是循环之外的代码。
若有其他的用法或者补充,欢迎留言。
不胜感激