4.Python运算符

算数运算符
 + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
 - 减法运算符
 * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
 / 除法运算符,运算时结果总会返回一个浮点类型
 // 整除,只会保留计算后的整数位,总会返回一个整型
 ** 幂运算,求一个值的几次幂
 % 取模,求两个数相除的余数

>>> print(1+2)
3
>>> print('a'+2)  #字符串不能和其他数字相加
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int
>>> 
>>> print('a'+'bb') #字符串和字符串相加,是两个字符串的拼接
abb
>>> print(2-1)
1
>>> print('abcd'-'abc') #字符串之间不能相减
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> 
>>> 
>>> print(4/2) #除法运算
2.0
>>> print(5//2) #整除运算
2
>>> print(5**2) #幂运算
25
>>> print(5%2) #取模运算
1
>>> print('abcd'*2) #字符串乘以数字,是复制字符多次次
abcdabcd
>>> 

赋值运算符

 =: 可以将等号右侧的值赋值给等号左侧的变量
 +=:  a += 5 相当于 a = a + 5 
 -= : a -= 5 相当于 a = a - 5 
 *= : a *= 5 相当于 a = a * 5 
 **=: a **= 5 相当于 a = a ** 5 
 /=:  a /= 5 相当于 a = a / 5 
 //=: a //= 5 相当于 a = a // 5 
 %=:  a %= 5 相当于 a = a % 5 

>>> a=10
>>> a+=5
>>> print(a)
15

>>> a=10
>>> a-=5
>>> print(a)
5

>>> a=10
>>> a*=5
>>> print(a)
50

>>> a=10
>>> a**=5
>>> print(a)
100000

>>> a=10
>>> a/=5
>>> print(a)
2.0

>>> a=10
>>> a//=5
>>> print(a)
2

>>> a=10
>>> a%=5
>>> print(a)
0

关系运算符

 关系运算符用来比较两个值之间的关系,总会返回一个布尔值
 如果关系成立,返回True,否则返回False
 > 比较左侧值是否大于右侧值
 >= 比较左侧的值是否大于或等于右侧的值
 < 比较左侧值是否小于右侧值
 <= 比较左侧的值是否小于或等于右侧的值
 == 比较两个对象的值是否相等
 != 比较两个对象的值是否不相等
   相等和不等比较的是对象的值,而不是id
 is 比较两个对象是否是同一个对象,比较的是对象的id
 is not 比较两个对象是否不是同一个对象,比较的是对象的id

>>> a=10
>>> b=20
>>> c=10
>>> print(a>b)
False
>>> print(a<b)
True
>>> print(a==c)
True
>>> print(a!=c)
False
>>> id(a)
9080128
>>> id(c)
9080128
>>> print(a is c)
True
>>> print(a is not c)
False

字符串比较

在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
   当对字符串进行比较时,实际上比较的是字符串的Unicode编码
   比较两个字符串的Unicode编码时,是逐位比较的
   利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
   注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较

>>> print(3>'1') #字符串不能和其他类型的值,比较大小
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
>>> 
>>> print('abc'>'abd')
False
>>> print('2'>'1')
True
>>> print('2'>'11')
True

逻辑运算符

 逻辑运算符主要用来做一些逻辑判断
 not 逻辑非
   not可以对符号右侧的值进行非运算
       对于布尔值,非运算会对其进行取反操作,True变False,False变True
       对于非布尔值,非运算会先将其转换为布尔值,然后再取反
       
 and 逻辑与
   and可以对符号两侧的值进行与运算
    只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
    与运算是找False的
    Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
   
 or 逻辑或
   or 可以对符号两侧的值进行或运算
    或运算两个值中只要有一个True,就会返回True
    或运算是找True的
    Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值

>>> result=True
>>> print(result)
True
>>> print(not result) # 对result进行非运算
False

# 非布尔值的与或运算
#   当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
#   与运算的规则
#       与运算是找False的,如果第一个值是False,则不看第二个值
#       如果第一个值是False,则直接返回第一个值,否则返回第二个值
#   或运算的规则
#       或运算是找True的,如果第一个值是True,则不看第二个值
#       如果第一个值是True,则直接返回第一个值,否则返回第二个值    
>>> result=True and False
>>> print(result)
False
>>> result=True or False
>>> print(result)
True
>>> True and print('我要打印...')#第一个值是True,会看第二个值,所以print()会执行
我要打印...
>>> False and print('我要打印...')#第一个值是False,不会看第二个值,所以print()不会执行
False
>>> True or print('我要打印...')#第一个值是True,不会看第二个值,所以print()不会执行
True
>>> False or print('我要打印...')#第一个值是False,会看第二个值,所以print()会执行
我要打印...

条件运算符

 语法: 语句1 if 条件表达式 else 语句2
 执行流程:
   条件运算符在执行时,会先对条件表达式进行求值判断
       如果判断结果为True,则执行语句1,并返回执行结果
       如果判断结果为False,则执行语句2,并返回执行结果

>>> a=10
>>> b=20
>>> c=30
>>> print('a的值比较大') if a>b else print('b的值比较大')
b的值比较大
>>>
>>> max=a if a>b else b #赋值的优先级低于条件运算符的判断,所以先执行a if a>b else b,再执行max=的赋值语句
>>> print(max)
20
# 运算符的优先级
# 和数学中一样,在Python运算也有优先级,比如先乘除 后加减
# 运算符的优先级可以根据优先级的表格来查询,
#   在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
#   如果优先级一样则自左向右计算
#  关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
#  在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序

练习:定义3个变量并赋值,获取3个变量的最大值

>>> a=10
>>> b=20
>>> c=30
>>> max=a if a>b else b
>>> max if max>c else c
30

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值