python的逻辑运算符:and(逻辑与),or(逻辑或),not(逻辑非).
和其它语言与[&&],或[||],非[!]不一样,感觉有些怪。
>>> not 0
True
>>> not ''
True
>>> not ' '
False
>>> 1+True
2
判断闰年
(year%4==0 and year%100!=0) or year%400==0
判断字母
(ch>='a' and ch<='z') or ( ch>='a' and ch<='z')
逻辑运算具有短路的性质,可以进行一些操作,在shell命令中,或者替代一些if语句
>>> 2>3 and 8>6
False
>>> 22 or 1+1!=2
22
>>> 1+1!=2
False
>>> 22 and '333'
'333'
测试运算
in运算符用于在指定的序列中查找某一值,存在返回True,否则False.
>>> 6 in [1,2,6]
True
>>> a=(1,2,3)
>>> 1 in a
True
>>> 2 not in a
False
身份测试
身份测试用于测试二个变量是否指向同一个对象。
>>> a=68
>>> b=68
>>> c=66
>>> a is b
True
>>> a is not c
True
选择结构
单分直格式:
if 条件表达式:
语句块。
双分支结构
格式:
if 条件表达式:
语句块1
else:
语句块2
if (1+1==2):
print('yes')
yes
条件表达式后面的语句块必须向右缩进,默认4个空格,类似其它语言的 { },其它比如for语句,def等都需要缩进,注意一下就行了。
a,b=eval(input("put into a,b"))
if(a>b):
max=a
else:
max=b
print('max={0}'.format(max))
put into a,b6,8
max=8
多分支语句
if 条件表达式1:
语句块1
elif 条件表达式2:
语句块2
elif 条件表达式3:
语句块3
[else:
语句块n]
看一个相关的代码:
a,b,c=eval(input("input a,b,c:"))
if a>b:
max=a
if max<c:
max=c
elif a<b:
max=b
if max<c:
max=c
print("max=",max)
input a,b,c:55,88,+55
max= 88
条件运算符
python的条件运算符相当于一个三元运算符,有3个分量。
形式: 表达式1 if 条件表达式 else 表达式2
规则,先求条件表达式的值,如果其值为true,则求表达式1,并以表达式1的值为结果,如果条件表达式的值为flase,则求表达式2,并以表达式2的值为条件运算符的结果。
x,y=eval(input("x,y:"))
max=x if x>y else y
print("max=",max)
x,y:66,88
max= 88
其它语言,比如c,是 max=a>b?a:b这样,相当于简写了if else,但是其可读性差,不好理解。
求3个数最大值
x,y,z=eval(input("x,y,z:"))
max1= x if x>y else y
max= max1 if max1>z else z
print("max=",max)
x,y,z:231,-88,999
max= 999
这样或许,读起来还行。
x,y,z=eval(input("x,y,z:"))
max= x if x>y else y if (x if x>y else y)>z else z
print("max=",max)
x,y,z:34,68,22
max= 68