「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」
前言
话说在编程的世界中,流传着这样一句话:没有不能实现的功能,有就多加几个if...else,哈哈,这当然是作者杜撰的,实际编码中,嵌套复杂的if...else是不可取的,可读性差且容易出错。但是它作为编码中不可或缺的一部分,使用规则却不得不掌握。记得在某个论坛看过一篇文章,说是高手一般不用if...else?excuse me? 看完整的大家都不会写代码了。
条件语句
从上图中可知if的语法规则;即条件只有两个结果:True、False;那么这多与咱们上篇中讲到的比较运算符、成员运算符、身份运算符、逻辑运算符等搭配使用。
比较运算符
注意:python中没有switch这样的开关条件语句,如果出现多个条件只能使用elif多增加条件语句块
n=4
if n>4:
print("大于条件为True")
elif n<4:
print("小于条件为True")
else:
print("都不在条件内为False")
复制代码
成员运算符
这个使用频率很高
li=["a",3,"4"]
print(bool("s" in li)) # 输出:False
# 使用条件
if "a" in li:
i=li.index("a")
print("输出字符a在li中的索引位:{}".format(i))
else:
print("字符a不在li中")
复制代码
身份运算符
这个使用频率相对较低
- 前面说了它要比较的是两个变量,切勿使用值与变量或值与值
>>> s="a"
>>> print("a" is s)
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
True
>>> print("a" is "a")
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
True
复制代码
- 正确的用法
>>> a="s"
>>> b="s"
>>> print(a is b)
True
>>> if a is b:
... print("说明结果为True")
...
说明结果为True
复制代码
逻辑运算符
当一个条件不足以判断时,就需要借助and、or、not逻辑运算符来完成了,再回忆一下逻辑运算符的优先级是小于比较运算符的
>>> a=4
>>> b=4
>>> c=5
>>> if a>b or a<c:
... print("只要满足一个条件即为True")
... elif a==b and c>b:
... print("需要同时满足and两边的条件则为True")
... else:
... print("上面只是为了演示,本来条件都满足的,但是只会在第一个正确的时候输出,下面一个就不再执行了")
...
只要满足一个条件即为True
复制代码
if嵌套
这个也比较常用,但是不是很建议用,if条件的使用规则,将最易满足条件放在最前头,如使用or的时候,第一容易为True则放在or的昨天,and则可以相反,最容易为False可以放在and的左边,根据运算符的优先级,如果前边不满足条件,and右边的是不会执行的。
a=4
b=6
c=7
if a>b and c>a:
print("不会有结果输出,并且不会执行c>a")
elif a<c or c>a:
print("or的左边为true,即已满足条件,则输出,并不会指向性c>a")
# 这个结论是怎么得出的?咱们可以在ide工具debug调试一下
复制代码
- 咱们稍微修改一下代码,可以修改abc变量的值来达到效果并输出在控制台
a=4
b=6
c=7
if a<b and print("左边为True才会执行右边"):
print("为了演示效果")
elif a<c or print("左边为False才会执行右边") or True:
print("为了演示效果")
复制代码
练习
在前面的语法基础中,没有讲的两个函数,就是python的交互;input和print,输入的是变量的值,输出的是值,但都是字符串
var1=input("请任意输入一个值:")
print(type(var1)) # 输出:<class 'str'>
print(var1) # 输出输入的字符
复制代码
- 猜年龄,假设一个目标年龄a=18,输入一个值赋给c,然后进行条件判断
c=int(input("请请猜猜我的年龄:<只能输入数字>"))
# 为啥要在input外包一层int(),为的是将用户输入的数字字符转成int类型,是可以进行比较运算
a=18
if c==a:
print("恭喜你猜对了")
elif: c>a:
print("不好意思,猜大了")
else:
print("这回猜小了,请重猜")
复制代码




近期评论