手记

python的选择结构

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
0人推荐
随时随地看视频
慕课网APP