03python

 
 

python运算符
小游戏(全局变量/异常处理);奇数偶数;猜年龄(while/break/continue/);while + continue + else vs while + break + else





1

python运算符

True 真 正确的
False 假 错误的

num += 1 等价于 num = num + 1
num -= 1 等价于 num = num - 1
num *= 2 等价于 num = num * 2
num /= 2 等价于 num = num / 2
num //= 2 等价于 num = num // 2
num %= 2 等价于 num = num % 2
num = 2 等价于 num = num 2

>>> 5/2
2.5
>>> 5//2 # 地板除/整除
2
>>> 9%2 # 取余
1


// 取整除  返回商的整数部分
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

9//2.0
4.0

Python位运算符:

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

  1. & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
  2. l 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
  3. ^ 按位异或运算符:当两对应的二进位相异时,结果为1
  4. ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
  5. << 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
  6. >> 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
  • # 下面是二进制运算
  •   a = 0011 1100
  •      b = 0000 1101
  •  a&b = 0000 1100
  •   a|b = 0011 1101
  •   a^b = 0011 0001
  •    ~a = 1100 0011

Python成员运算符

  • in 如果在指定的序列中找到值返回 True,否则返回 False。

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

  • not in 如果在指定的序列中没有找到值返回 True,否则返回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

Python身份运算符

  • is is是判断两个标识符是不是引用自一个对象

x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis not 

  • is not 是判断两个标识符是不是引用自不同对象

x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

 id() 函数用于获取对象内存地址

Python运算符优先级

  • ** 指数 (最高优先级)
    • ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
      • * / % // 乘,除,取模和取整除
        • + - 加法减法
          • >> << 右移,左移运算符
            • & 位 ‘AND’
              • ^ l 位运算符
                • <= < > >= 比较运算符
                  • <> == != 等于运算符
                    • = %= /= //= -= += = *= 赋值运算符
                      • is is not 身份运算符
                        • in not in 成员运算符
                          • not or and 逻辑运算符

and 且,并且
只有两个条件全部为True(正确)的时候, 结果才会为True(正确)

条件1 and 条件2
5>3 and 6<2 True

or 或,或者
只要有一个条件为True,则结果为Ture,
5>3 or 6<2
真 或 假

not 不,雅蠛蝶

not 5>3 == False
not 5<3 == True

短路原则
对于and 如果前面的第一个条件为假,那么这个and前后两个条件组成的表达式 的计算结果就一定为假,第二个条件就不会被计算

对于or
如果前面的第一个条件为真,那么这个or前后两个条件组成的表达式 的计算结果就一定为真,第二个条件就不会被计算

True or True and False => True
前面为真 后面(包括and后面)就不计算了

not not True or True and False => True
同理

and or 无先后顺序,即从左往右算(遵循短路原则)

2

小游戏(全局变量/异常处理);奇数偶数;猜年龄(while/break/continue/);while + continue + else vs while + break + else

  • 1,return # 可以让一个函数结束
  • 2,break # 可以让一个循环结束
  • 3,exit() # 可以让一个程序结束
global a_  # 定义全局变量
# 一直执行程序
while True:
    a_ = input('>>')  # 同级缩进,否则报错
    # 异常处理
    try:
        a_ = int(a_)
    except:
        print('您输入非数字类型')
        a_ = 0

    b_ = 100
    c_ = 1000

    if b_ <= a_ <= c_:
        print("True")
    else:
        print("False")

>>12
False
>>123
True
>>fgh
您输入非数字类型
False
>>


# 奇数偶数
num = 1

while num <= 100:  # num<=100 等价于 True
    # while num<=100:   等价于 while True:
    if num % 2 == 0:
        print(num)
    num += 1

num = 1

while num <= 100:
    if num % 2 == 1:
        print(num)
    num += 1

# 猜年龄
age = 50

flag = True

while flag:
    user_input_age = int(input("Age is :"))
    if user_input_age == age:
        print("Yes")
        flag = False
    elif user_input_age > age:
        print("Is bigger")
    else:
        print("Is smaller")

print("End")

# break  # 终止
age = 50

while True:
    user_input_age = int(input("Age is :"))
    if user_input_age == age:
        print("Yes")
        break
    elif user_input_age > age:
        print("Is bigger")
    else:
        print("Is smaller")

print("End")

continue 继续

# continue
# 总共10次循环, 当执行continue,结束当次循环
num = 1
while num <= 10:
    num += 1
    if num == 3:
        continue

    print(num)

2
4
5
6
7
8
9
10
11


# continue
# 总共10次循环, 当执行continue,结束当次循环
num = 1
while num <= 10:
    num += 1
    if num == 3:
        continue
    print(num)
else:
    print('This is else statement')

2
4
5
6
7
8
9
10
11
This is else statement

num = 1
while num <= 10:
    num += 1
    if num == 6:
        break
    print(num)
else:
    print('This is else statement')

2
3
4
5

while + continue + else vs while + break + else

  • else 在程序正常循环的情况下执行,例如continue,
  • else 在程序被中断的情况下不执行,例如break 或者程序前面错误

猜你喜欢

转载自www.cnblogs.com/LL-HLK/p/11080008.html
今日推荐