【20212121】Python基础 04运算符

04 运算符

在这里插入图片描述

运算符的优先级

在这里插入图片描述

算术运算符

  • 四则运算:
    加法运算符 表现形式 +
    减法运算符 表现形式 -
    乘法运算符 表现形式 *
    除法运算符 表现形式 /
  • 其他:
    // 整除(取整),只会保留计算后的整数位,总会返回一个整型
    % 取模,求两个数相除的余数
    ** 幂运算,求一个值的几次幂

赋值运算符

赋值运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的。

运算符解释说明
+=x+= 3 相当于 x = x + 3
-=x -= 3 相当于 x= x - 3
*=x = 3 相当于 x = x 3
**=x **= 3 相当于 x = x ** 3
/=x /= 3 相当于 x = x/ 3
//=x //= 3 相当于 x = x // 3
%=x %= 3 相当于 x= x % 3

比较运算符(关系运算符)

• 比较运算符用来比较两个值之间的关系,总会返回一个布尔值。如果关系成立,返回True,否则返回False

运算符解释说明
>比较左侧值是否大于右侧值
<比较左侧值是否小于右侧值
>=比较左侧的值是否大于或等于右侧的值
<=比较左侧的值是否小于或等于右侧的值
==比较两个对象的值是否相等
!=比较两个对象的值是否不相等

逻辑运算符

not 逻辑非

• not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True

and 逻辑与

• and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
• 与运算是找False的,如果第一个值为False,则不再看第二个值

or 逻辑或

• 或运算两个值中只要有一个True,就会返回True
• 或运算是找True的

非布尔值的与或运算

• 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
*Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
• 非布尔值“与”和“或”的运算规则:
(0,空字符串’’,None都是False)
①and:and找False,找到返回第一个值;否则,返回第二个
True and True --> True
True and False --> False
False and False --> False
②or:or找True,找到返回第一个值;否则,返回第二个
True or True --> True
True or False --> True
False or False --> False
*详细:
•与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

条件运算符(三元运算符)

<表达式1>if <条件>>else <表达式2>
*表达式不是语句。例如,99+1是表达式,99+1=100是语句。
在这里插入图片描述
举个栗子:

# 判断所输入数字的某个属性
s = eval(input("请输入一个整数"))
token = ""if s%3 == 0 and a%5 ==0 else"不"
print("这个数字{}能够同时被3和5整除".format(token))

课后作业

第四讲作业
第一题:以4种格式化字符串的方式来实现521 xXx嫁给我好吗?

# 我只会两种……QwQ
# 1.format()
print("521,{}嫁给我好吗?".format('Ain'))
# 2.%s
print("521,%s嫁给我好吗?" % "Ain")

参考的答案:
来源:https://www.jianshu.com/p/8f93dc05556c(甩手掌柜)

list1 = ["521,","嫁给我好吗?"]
#第1种方法
print("女神".join(list1))

#第2种方法
print("521,%s嫁给我好吗?"%"女神")

#第3种方法
s = "女神"
print(f"521,{s}嫁给我好吗?")

#第4种方法
print("521,{}嫁给我好吗?".format("女神"))

第二题:现在有abc三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
在这里插入图片描述

# (╯▔皿▔)╯第一次自己写的,三元运算符不知道怎么用进去。
import random
a = random.randint(0, 100)
b = random.randint(0, 100)
c = random.randint(0, 100)
print("a={},b={},c={}".format(a, b, c))
if a > b:
    top = a
    if top < c:
        top = c
else:
    top = b
    if top < c:
        top = c
print("a,b,c三个数中最大的是%s" % top)
# 额,我好像会了。=w=
a = random.randint(0, 100)
b = random.randint(0, 100)
c = random.randint(0, 100)
print("a={},b={},c={}".format(a, b, c))
if a > b > c:
    top = a
else:
    top = b
print("a,b,c三个数中最大的是%s" % top)
# 然后想改成条件运算符,然后报错了。
# SyntaxError: cannot assign to conditional expression
import random
a = random.randint(0, 100)
b = random.randint(0, 100)
c = random.randint(0, 100)
print("a={},b={},c={}".format(a, b, c))
top = a if a > b > c else top = b
print("a,b,c三个数中最大的是%s" % top)
# 错误原因是else后面出现了语句,但此处应该是表达式。
# 所以把“top =”去掉就可以了。o(* ̄▽ ̄*)ブ
import random
a = random.randint(0, 100)
b = random.randint(0, 100)
c = random.randint(0, 100)
print("a={},b={},c={}".format(a, b, c))
top = a if a > b > c else b
print("a,b,c三个数中最大的是%s" % top)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值