第002篇:变量、运算符、位运算

2019-11-06  本文已影响0人  yydafx

1、变量

1.1、什么是变量和变量的声明?

 - 变量是用来申请空间保存数据的(变量就是用来存数据的)

 1.1.1、声明变量的语法

  变量名 = 值
   - 声明完变量后,使用变量就相当于使用变量存储的值
  说明

age = 20
if age > 18:
    print('老了啊')

1.2、变量的使用
age = 18
print(age)
age = '大帅'
print(age)
1.3、同时声明多个变量
a1 = a2 = a3 = 10
print(a1, a2, a3)
b1, b2, b3 = 12, 21, 23
print(b1, b2, b3)
1.4、python声明变量的原理
a = 10
print(a, type(a), id(a))
a = 11
print(a, type(a), id(a))
b = a
print(id(a), id(b))

2、运算符

2.1、数学运算符
 2.1.1、加(+)、减(-)、乘(*)、除(/)功能与小学数学中的功能一样
 2.1.2、% 求余数(取余、取模)

  - 应用1:判断整数的奇偶性 --> 这个数对2取余是否为0

print(15 % 2)
print(20 % 2)

  - 应用2:是否整数 --> 判断余数是否为0
  - 应用3:取低位数 --> 获取一个整数的位数

num = 123
print(num % 10)  # 3
print(num % 100)  # 23
 2.1.3、// 整除(商只取整数部分)
print(5 // 2)  # 2
print(3.9 // 3)  # 1.0
 2.1.4、** 幂运算 --> x**a(x的a次方)
print(2 ** 3)
print(16 ** (1 / 2))
print(8 ** (1 / 3))
2.2、比较运算符
 2.2.1、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)功能与小学数学中的功能一样
print(10 > 20)  # False
print(10 < 20)  # True
 2.2.2、== 判断两个值是否相等; != 判断两个值是否不相等
print(10 == 10)  # True
print(10 != 10)  # False
 2.2.3、python中可以像数学一样用比较运算符连写的方式表示范围(Java/C/Js等不可以)
age = 20
print(18 < age < 23)
2.3、逻辑运算符
 2.3.1、and 一假为假
# eg:获取奖学金的条件是gpa不低于4,成绩大于90
gpa = 4.5
score = 90
print('获取奖学金的条件', gpa >= 4 and score > 95)
# 练习:判断一个数是否能够同时被3和7整数,
num = 35
print('判断一个数是否能够同时被3和7整数', num % 3 == 0 and num % 7 == 0)
print('判断一个数是否能够同时被3和7整数', num % 21 == 0)
 2.3.2、or 一真为真
# eg:获取奖学金的条件是gpa不低于4或者成绩大于90
gpa = 4.5
score = 90
print('获取奖学金的条件', gpa >= 4 or score > 95)
 2.3.3、not 对某个条件进行否定
# 一个数不能同时被3和7整除的条件
num = 34
print('不能同时被3和7整除的条件', not (num % 3 == 0 and num % 7 == 0))
print('不能同时被3和7整除的条件', not (num % 21 == 0))
 2.3.4、短路操作
2.4、赋值运算符
 2.4.1、变量 = 值 将右边的值赋给左边的变量
 2.4.2、变量 += 值 变量 = 变量 + 值
a = 10
a *= 4/2    # a=20.0
print(a)

a **=2
print(a)
2.4、赋值运算符

3、位运算

3.1、&(按位与)
eg:1101 & 0111 = 0101
a = 3 & 2  # a=2
'''
3: 00000011
2: 00000010
'''
print(a)
print('--->',3&1, 4&1, 7&1)
b = -7 & 3  # b = 1
print(b)
'''
-7 = 10000111(原码)-->1111 1001(补码)
3 =                     0000 0011(补码)
00000001 --> 1     # 因为是整数,原码、反码、补码一致
'''
3.2、|(按位或)
eg:1101 | 0111 = 1111
b = -7 | 3  # b = 1
'''
-7: 11111001(补码)
3: 00000011(补码)
11111011(补码) -> 11111010(反码) -> 10000101(原码) --> -5
'''
print(b)
3.3、~
~ 1101 --> 0010
# -7:11111001(补码) --> 00000110
print(~-7)
3.4、^
1101 ^ 0011 = 1110
3.5、<<
print(3<<3) # 3 * 2**3
print(-4<<3) # 3 * 2**3
3.6、>>

整除:负数除不尽的情况下向下取整

print(8>>2) # 2  8//2*2
print(9>>2) # 2  9//2*2
print(-9>>2) # -3  -9//2*2  向下取整
上一篇 下一篇

猜你喜欢

热点阅读