day 03-3 Python基础-运算符
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("游戏结束")
                    
                
                
            
        
浙公网安备 33010602011771号