day 3 运算符及if的分支结构

一、运算符

运算符的分类:数学运算符、比较运算符、逻辑运算符、赋值运算符。(位运算)
1、数学运算符:+、 -、 *、 %。
2、比较运算符:<、>、==(等于)、!=(不等于)、<=、>=。
所有的比较运算符的运算结果都是布尔值(True False)
print(100 > 10) 
print(100 < 10)
print(100 == 10)
print(100 != 10)
print(100 >= 10)
print(100 <= 10)
注意: python支持数学中表示范围的写法
num = 10
print(1<=num<=100)
result = 200 > 100
print(result)
3、逻辑运算符:and(逻辑运算) 、or(逻辑运算)、not(逻辑运算)

TIP: 所有逻辑运算符的运算对象都是布尔值,结果也是布尔值

1)逻辑与运算:两个都是true才是true,只要有一个false结果就是false
口诀:
 true   and    true   ----------------->   true
 true   and   false  ----------------->   false
 false   and  true    ----------------->  false
 false   and   false   -----------------> false
用处: 当要求多个条件同时满足的时候,就用and连接,相当于生活中的并且
practice:获取奖学金的条件是:操评分不小于95并且绩点不小于4.0
score = 98
grade = 3.5
print('是否能拿奖学金:',score>=95 and grade >=4.0)
practice:判断age对应的人是否属于儿童(年龄大于等于3小于等于12)
age = 18
print ('是否是儿童:',3 <= age <=12)
print ('是否是儿童:',age >= 3 and age <=12)
2) 逻辑或运算:两个都是false结果才是false,只要结果有一个true结果就是true
口诀:
true and true   --------->  true
true and false   --------->  true
false and true   --------->  true
false and false  ---------> false
练习:获取奖学金的条件是:操评分大于95或者绩点大于4.0
score = 98
grade = 3.5
print('是否能拿奖学金:',score>=95 or grade >=4.0)
练习:获取奖学金的条件是:a、操评分大于95但是绩点不低于2.0 b,绩点大于4.5 操评分不低于80, a和b有一个条件满足就可以拿奖学金。
score = 98
grade = 3.5
a = score > 95 and grade >=2.0
b = score >= 80 and grade > 4.5
print ('是否能拿奖学金:', a or b)
用处: 当要求多个条件中只有一个满足的时候,就用or连接,相当于生活中的或
3)短路操作
条件1 and 条件2 如果条件1的结果是false 那么系统不会去判断条件2 整句结果变成false。
条件1 or 条件2 如果条件1的结果是true 那么系统不会去判断条件2 整句结果变成true
4) 逻辑非运算:布尔值取反,True变False,False变True
TIPS:
not Ture--------> False
 not False--------->  Ture 
对某个条件进行否定的时候使用
 
年龄不大于18
age=18
print (age<=18)
print (not age>18)

4. 赋值运算符:=,+=,=,/=,-=,//=,*=,%=。

1). 所有的赋值运算符左边必须是变量,复合赋值运算符的左边除了变量以外,这个变量还必须是已经声明过的变量。
2). 赋值符号的右边可以是数据、也可以是已经声明的变量、运算表达式
示例:
name= 'bob'
sum1 = 10 + 20 
age1 = age 
3). 变量 += 数据 ----------->将变量中保存的值加上指定的数据,将结果重新保存在变量中
num2 = 10 
num2 += 2                          # num2 = num2 + 2 
print(num2,id(num2))           # id(num2) 数据存储的地址
num2 *= 10
print (num2)
num2 /= 10
print (num2)

5.运算符的优先级

1). 数学运算符>比较运算符>逻辑运算符(not > and > or)>赋值运算符
2). 先算优先级高的,再算优先级低的。有括号先算括号里的。
num3 = 10 + 2 > 9 and 3 * 2 < 4 
# num3 = 12 > 9 and 6 < 4
# num3 = true and false
# num3 = false
print (num3)

二 if的分支结构

1. 什么时候需要if条件语句

程序中某些代码不是一定会执行,而是在满足某些条件的时候才执行就可以用if条件语句。

2.if结构

'''
1)语法:
if条件语句:
代码块

2)说明
if ---- 关键字,固定写法
条件语句 ------ 结果是布尔的表达式;本质可以是除了赋值语句以外的任何语句,
例如:数据,已经声明过的变量,运算表达式
:-----固定写法 ,(一般有冒号的地方,后边都会产生缩进)
代码块 ---- 和if保持一个缩进的一条或多条语句;满足条件才会执行
3)执行过程
先判断条件语句是否为True(如果条件语句不是布尔值,先转换成布尔再判断),
如果为True就执行代码块的语句,否则不执行,直接执行后面的其他语句。
'''

练习 如果num是偶数,就打印偶数,否则不打印
num = 11 
if num % 2 == 0:
    print ('偶数')

3. if-else结构

满足条件执行一个操作,不满足这个条件就执行另外操作

'''
1)语法
if 条件语句:
代码块1
else:
代码块2

2)说明
if -- 关键字,固定写法
条件语句 -- 可以是数据、声明过的变量、不包含赋值符号的运算表达式
: -- 固定写法
代码块1 -- 和if保持一个缩进的一条或者多条语句
else -- 关键字 固定写法
代码块2 -- 和else保持一个缩进的一条或者多条语句
3)执行过程
先判断条件语句是否为True(如果不是布尔值,转换成布尔在判断)
如果为True,执行代码块1,否则执行代码块2。
'''

练习 如果num是偶数,就打印偶数,否则不打印
num = 19
if num % 2 == 0:
    print ('偶数')
else:
    print('奇数')

4) if-elif-else

'''

  1. 语法
    if 条件语句:
    代码块1
    elif 条件语句2:
    代码块2
    elif 条件语句:
    代码块3
    ···
    else:
    代码块4
    2)执行过程
    先判断条件语句1是否为True,如果为True就执行代码块1,然后整个if-elif-else结束
    否则就直接往后面继续执行、判断,如果前面的语句都不为True,就执行else。

'''

5. if嵌套

可以在任何if结构中根据需求在写其他的if结构
练习:如果一个数是偶数就打印偶数,否则打印奇数。如果这个数能被4整除,就打印4的倍数。如果个位数是3,打印最后一位数是3.
num = 47
if num % 2  == 0:
    print ('偶数')
    if num % 4 == 0:
        print ('4的倍数')
else:
    print('奇数')
    if num % 10 == 3:
        print ('最后一位数是3')
    else:
        print ('最后一位数不是3')
练习:判断一个三位数是否是水仙花数(个位的三次方+十位的三次方+百位的三次方刚好等于这个数的本身)
例子:153=13+53+3**3=1+125+27
num = 153
ge = num % 10
shi = num // 10 % 10
bai = num // 100
if ge ** 3 +shi ** 3 + bai ** 3 == num:
    print(num,'是水仙花数')
else:
    print(num,'不是水仙花数')

你可能感兴趣的:(day 3 运算符及if的分支结构)