day 03-3 Python基础-运算符

发布时间 2023-12-22 15:56:23作者: 琳仔的后花园

3.运算符

3.1 常见的运算符

算数运算符

运算符 描述 示例
+
-
*
/
% 取模-返回除法的余数 10%3结果输出1
** 指数-幂,x的y次幂 2**3结果输出位8
// 整除-返回商的整数部分 9//2 结果输出为4 9.0//2.0结果输出位4.0

比较运算符

运算符 描述
== 等于:比较对象是否相等
!= 不等于:比较对象是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符

运算符 描述
and 如果两个操作数都为 True,则为 True,否则为 False
or 如果两个操作数中有一个为 True,则为 True,否则为 False
not 如果操作数为 True,则为 False,否则为 True

赋值运算符

运算符 描述 示例
= 简单赋值运算符 C=A+B将A和B的运算结果赋值给C
+= 加法赋值运算符 C+=A:等效于C=C+A
-= 减法赋值运算符 C-=A:等效于C=C-A
*= 乘法赋值运算 C*=A:等效于C=C * A
/= 除法赋值运算 C/=A:等效于C=C/A
%= 取模赋值运算符 C%=A:等效于C=C%A
**= 幂赋值运算符 C ** =A:等效于C=C ** A
//= 取整除赋值运算符 C//=A:等效于C=C//A

成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

3.2 运算符优先级

  • 算数优先级大于比较运算符
if 2 + 10 > 11 :
    print ("真的")
else :
    print ("假的")
  • 比较运算符优先级大于逻辑运算符
if 2 > 10 and 2 < 11 : 
    print ("真的")
else :
    print ("假的")
  • 逻辑运算符内部三个优先级 not > and > or
if not 1 and 1 > 2 or 3==8 : # 逻辑运算符内部三个优先级 not > and > or
    print ("真的")
else :
    print ("假的")
结果输出:假的

注意:上述3个优先级从高到低总结:加减乘除 > 比较 > not and or

绝招:加括号

3.3 面试题

v1 =  "linzai" and "123455"
# 第一步:将and前后的值转换成布尔值, True and  True
# 第二部:判断本次操作取决于谁?由于前面的是 True,所以本次取决于后面的值
# 所以后面的值等于多少,结果最终就是多少。v1=123455
print (v1)

v2 =  "" and "linzai"
# 第一步:将and前后的值转换成布尔值,False and  True
# 第二部:判断本次操作取决于谁?由于前面的是 False,所以本次取决于前面的值
# 所以后面的值等于多少,结果最终就是多少。v2=" "
print (v2)

v3 =  1 or 8
# 第一步:将or前后的值转换成布尔值,True and  True
# 第二部:判断本次操作取决于谁?由于前面的是True,所以本次取决于前面的值
# 所以后面的值等于多少,结果最终就是多少。v3=1
print (v3)

v4 =  0 or 8
# 第一步:将or前后的值转换成布尔值,False and  True
# 第二部:判断本次操作取决于谁?由于前面的是False,所以本次取决于后面的值
# 所以后面的值等于多少,结果最终就是多少。v4=8
print (v4)

# or 主要是看第一个值,如果第一个是真的,结果就是第一个值,否则结果是第二个值
# and 先看第一个值,如果第一个是真的,结果就是第二个值,否则结果是第一个值
# 如果同时出现and和or,先计算and后计算or

3.4 练习题

1.实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使用字符串格式化)。

# 方法1
count = 0
while count < 3:
    count += 1
    name = input("请输入您的名字:")
    password = input("请输入您的密码:")
    if name == "琳仔" and password == "123567" :
        print ("登录成功")
        break
    else :
        print ("用户名或密码输入错误,剩余输入次数为{}次" .format(3 - count))
        
# 方法2
count = 3
while count > 0:
    count -= 1
    name = input("请输入您的名字:")
    password = input("请输入您的密码:")
    if name == "琳仔" and password == "123567" :
        print ("登录成功")
        break
    else :
        print ("用户名或密码输入错误,剩余输入次数为{}次" .format(count))

2.猜年龄游戏
要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

count = 0
while count < 3 :
    count += 1
    age = int(input ("请输入数字:")) # 必须转换成整型
    if age == 26 :
        print ("猜对了")
        break
    else :
        print ("猜错了,还有{}次机会。" .format(3-count))

3.猜年龄游戏升级版
要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。

count = 0
while count < 3:
    count += 1
    age = int(input("请输入数字:"))
    if age == 26:
        print("猜对了")
        break
    else:
        print("猜错了,还有{}次机会。".format(3 - count))

    if count == 3:
        choice = input("请输入是否继续尝试:Y/N")
        if choice == "N":
            print("尝试结束")
            break
        elif choice == "Y":
            count = 0
            continue
        else:
            print("输入错误")
            break
print("游戏结束")