day2 运算符

day2 运算符和if分支

一、数学运算符:+(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余、取模)、**(幂运算)

1、+、-、*、/和数学中的加减乘除功能和用法一模一样

print(1+1)
print(2*5)
print(5/2)
# 运算结果还可以保存在变量中
result = 2-5
print(result)

2、// - 求商,然后商保留整数部分,向小取整

  • 当被除数和除数都是整数的话,如果没有余数的话,商就是整数型,如果是整除的话商也是整数型

  • print(5/2)     # 2.5
    print(5//2)    # 2
    print(4//2)    # 2
    
  • 只要除数和被除数中有一个是小数的话,无论是不是整除,商都是浮点型

  • print(1.5/2)   # 0.75
    print(1.5//2)  # 0.0
    print(-2.8//2)  # -2.0
    print(1.5//0.3) # 5.0
    
  • 应用:取高位数和去低位数

  • 取高位数

  • num = 980
    print(980//100)   # 9
    
  • 去掉任意整数的个位数

  • num = 687
    print(687//10)   # 68
    

3、% - 取余、取模、求余数

(1)固定格式

x % y - 求x除以y的余数

print(5 % 2)    # 1
print(14 % 5)   # 4

(2)应用

  • 应用场景一:判断一个数是否能够被另一个数整除,如果一个数能被另一个数整除,那么结果会是0

  • print(7 % 3)  # 1不为0,所以7不能被3整除
    print(9 % 3)  # 0是0,所以能被整除
    
  • 应用场景二:判断一个数的奇偶

  • print(13 % 2)   # 余1数为,为奇数
    
  • 应用场景三:取低位数

  • num = 824
    print(num % 10)     # 4
    num = 824
    print(num % 100)  # 24
    

4、** - 幂运算

(1)固定格式

x ** y - 求x 的y次方

print(2**3)  # 8
print(5**2)  # 25

(2)注意:次方数如果是N分之一就是开N次方,开方的结果是浮点数

print(16**0.5)    # 对16 进行开平方
print(27**(1/3))  # 对27进行开三次方

二、比较运算符:>(大于)、<(小于)、==(判断两个数是否相等)、>=(大于等于)、<=(小于等于)、!=(不等于)

(1)所有比较运算符的运算结果都是布尔值

print(10 > 20)  # False
print(20 < 50)   # True
print(10 == 50)  # False

(2)python支持表示范围的连写方式,别的语言是不行的

num = 10
print(0 < num < 20)  # True

(3)运算结果不是一定要打印,也可以用变量保存

result = num < 18
print('result:', result)  # result: True

三、逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)

1、and - 逻辑与运算

(1)应用场景:相当于生活中的并且

(2)运算规则:条件1 and 条件2 - 如果条件1和条件2都成立结果就是True,只要一个不成立就是False

num = 23
print('是否能同时被3和7整除:', (num % 3) and (num % 7))
num = 21
print('是否能同时被3和7整除:', num % 3 and num % 7)
# 方法一:
num = 21
num % 3 == 0
num % 7 == 0
print('是否能同时被3和7整除:', (num % 3 == 0) and (num % 7 == 0))
# 方法二:
print('是否能同时被3和7整除:', num % 21 == 0)

2、or - 逻辑或运算

(1)应用场景:相当于生活中的或者;用于需要多个条件中只要有一个条件满足的场景

(2)运算规则:条件1 or 条件2 - 如果条件中,只要有一个成立,结果都是True,条件全部不成立,结果就是False

# 练习1:写出判断一个数是否能够被2或者5整除
num = 13
print('是否能够被2或者5整除:', num % 2 == 0 or num % 5 == 0)
num = 15
print('是否能够被2或者5整除:', num % 2 == 0 or num % 5 == 0)

# 练习2:判断指定的年是否是闰年
# 闰年的条件:1)能被400整除 2)能被4整除但是不能被100整除
year = 2005
print('是否是闰年:', year % 400 == 0 or (year % 4 == 0 and year % 100 != 0))

3、not - 逻辑非运算,单步运算符,只针对一个条件

(1)应用场景:对一个条件进行否定(当正面写一个条件很复杂,我们可以写他的反面再加not)

(2)运算规则:not 条件 - 对指定条件进行否定

age = 20
print(age > 18)
print(not age > 18)
print(age <= 18)

四、逻辑运算符的拓展

1、逻辑运算符的短路操作

(1)逻辑与运算的短路

条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不执行,结果直接是False

(2)逻辑或运算的短路

条件1 or 条件2 - 如果条件1是True,那么条件2对应的代码不执行,结果直接是True
需要避免的短路条件尽量放在前面,不需要避免的短路就可以把它放在后面

True and print('hello')   # hello
False and print('hello')  # print不执行
False or print('word')    # word

2、运算对象不是布尔值

(1)逻辑与的通用运算规则

  • 数据1 and 数据2 - 判断数据1的布尔值是否是True,如果是,整个结果就是数据2,否则整个结果是数据1

  • 补充: 数据的布尔值(任意数据怎么转换成布尔)(重要):
    在python中,所有数据,不管什么类型的数据都有布尔值,所有的零值(比如0,0.0)和空值(空字符串、空列表、空集合等)的布尔值是False,其他都是True

(2)逻辑或的通用运算规则

  • 数据1 or 数据2 - 判断数据1的布尔值是否是False,如果是,整个结果就是数据2,否则整个结果是数据1
print(True and 10)   # 10
print(False and 10)  # False
print(8 and 10)     # 10
print(7 or 8)       # 7
print(False or 8)    # 8

五、赋值运算符

  • 类型:=、+=、-=、*=、/=、//=、%=、**=,符号之间不能有空格
  • 要求:赋值运算符的左边必须是变量,右边可以是任何有结果的表达式;复合赋值运算符(+=、-=、*=、/=、//=、%=、**=)的左边必须是已经赋值过的变量
  • 注意:赋值语句没有结果,最终目的是为了给变量赋值

1、=

a = 19
age = 10
a = 19

2、复合赋值运算符

a += 10   # a加上10得到的新的结果再重新赋予给a
print(a)  # 29

a -= 9     # a= a-9=29-9=20
print(a)   # 20

a %= 10     # a=a%10=0
print(a)    # 0

3、运算符的优先级

(1)数学运算符> 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

(2)数学运算符中,** > *./.%.// > +.-

(3)有括号先算括号里的(这儿的括号是小括号)

num = 23
print(num % 3 == 0 and num % 7 == 0)

4、如果布尔值参与运算的话,True就是1,False就是0

print(True+1)      # 2
print(False+1)     # 1

六、if分支结构

1、流程控制

  • 顺序执行 - 代码从上往下一条一条的按顺序执行
  • 分支结构 - 根据条件选择执行或者不执行某些代码(if语句)
  • 循环结构 - 让一段代码重复执行(for循环、while循环)

2、分支结构:Python中能够实现分支结构的只有if

(1)if单分支结构 - if

  • 应用场景:如果满足某个条件就执行某段代码,条件不满足计划不执行
  • 语法:if 条件语句:(冒号必须是英文状态下的冒号)

​ 代码段

  • 说明:a、if - 关键字:固定写法;b、条件语句 - 任何有结果的表达式(包括具体的数据、已经赋值过的变量、运算表达式-赋值表达式,即不能出现赋值符号除外)都可以;c、代码段 - 和if保持一个缩进的一条或者多条语句:需要在满足条件才会执行的代码
  • 执行过程:先判断if后面的条件语句是否为True(如果不是布尔就看结果的布尔值是否是True),如果是True,就执行代码段,否则代码段不执行
# 练习:如果指定的年龄已成年就打印可以进网吧
age1 = 12
if age1 >= 18:
    print('可以进网吧')
age2 = 19
if age2 >= 18:
    print('可以进网吧')

(2)if双分支结构:if-else

  • 应用场景:满足条件执行某个操作,不满足的时候执行另外一个操作
  • 语法:if 条件语句:

​ 代码块1(满足条件需要执行的代码)

​ else:

​ 代码块2(不满足条件的时候需要执行的代码)

  • 执行过程:判断条件语句是否为True,如果为True就执行代码段1;否则就执行代码段2
# 练习;根据number的值,打印偶数或者奇数
# 练习2:根据year的值打印闰年或者非闰年
# 闰年的条件:1)能被400整除 2)能被4整除但是不能被100整除
print('========练习1=======')
num = 17
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')
print('========练习2=========')
year = 2020
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
    print('闰年')
else:
    print('非闰年')
print('=========练习3=========')
year2 = 2021
request = year2 % 400 == 0 or (year2 % 4 == 0 and year2 % 100 != 0)
if request:
    print('闰年')
else:
    print('平年')

你可能感兴趣的:(python初学,python,数据库,数据结构,talkingdata,数据挖掘)