变量和运算符

1 篇文章 0 订阅
1 篇文章 0 订阅

变量和运算符

变量

1.定义变量
语法:
	变量名 = 数据
说明:
	变量名 -- 程序员自己命名
	要求:1. 标识符    2. 不是关键字
	规范:1. 见名知义  2.满足PEP8命名规范(所有单词字母都小写,多个单词之间用下划线隔开)
	     3. 不使用系统提供的类型名、函数名和模块名(使用了之后会使原有功能丧失)
    数据 - 任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)
1.1变量名示例

年龄为18(见名知义)

age = 18

老师的名字是张三(满足pep8命名规范)

定义一个变量,保存学生的分数:90

teacher_name = '张三'
stu_score = 90

若使用 print = 100 后面的print功能会丧失不再是输出语句

1.2独立数据

示例:

x = 12
x1 = 12.4
x2 = 0b101
x3 = '你好'
x4 = True

#####1.3运算表达式

y1 = 10 + 20 # 赋值运算
2.使用变量

变量中保存的数据能做什么变量就能做什么

使用变量的时候其实是使用变量中的数据

age = 18
print('hello word!')
print(age)
print('age', age)
print('10 +20')
print('abc'[2])
str1 = 'hello word!'
print(str1[0])
3.修改变量中的数据(重新给变量赋值)

变量 = 新值

age = 18
print(age) #输出18
age = 20 #重新给age赋值20
print(age) #输出20
age = '你好'
print(age) 输出你好

4.同时定义多个变量/同时给多个变量赋值
  1. 同时给不同的变量赋不同的值:变量名1,变量名2,变量名3,…变量名n = 数据1,数据2,数据3.。。。。数据n

例子:

a,b,c = 10,20,30
print(a,c,b)

输出结果:10 30 20

python交换两个值的变量

x=100
y=200
x,y = y,x
print(x,y)
# 输出结果:200 100

练习:假设存在三个变量x1,x2,x3 要求用一句代码完成功能:x1 x3,x2x1,x3==x2

# x1=1,x2=2,x3=3  -> x1=3,x2=1,x3=2
x1 = 1
x2 = 2
x3 = 3
x1, x2, x3 = x3, x1, x2
print(x1, x2, x3)
# 输出结果:3 1 2

2.同时给不同的变量赋相同的值:变量1 = 变量2 = 变量3 =…= 值

a1 = a2 = a3 = 100
print(a1, a2, a3)

注意:没有赋值的变量不能使用(必须先赋值再使用)

变量定义的原理

1.定义变量和给变量赋值的原理:
  1. 先在堆中申请内存(事情多大内存看被赋值的数据需要多大内存)
  2. 将数据保存在内存区域中
  3. 让变量和保存数据的内存进行关联(让变量保存数据对应的内存地址)
2.id函数

id你、变量 – 获取变量中关联数据在内存中的地址

num = 10
print(id(num))
num=20
print(id(num))

输出结果:

# 140708183047520
# 140708183047840

数学运算符

python支持的运算符:数学运算符、比较运算符、赋值运算符、位运算

1.数学运算符:

+(加) ,-(减),*(乘),/(除),%(取余),//(整除),**(幂运算)

1.+(加) ,-(减),*(乘),/(除):和数学中的运算功能一样

print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
# 输出结果:
# 7
# 3
# 10
# 2.5
#
  1. % 取余

数字1 %数字2 -> 数字1除以数字2的余数

print(5 % 2)  # 1
# 应用1:取整数的个位数或者低几位数
# 练习:获取变量num的个位数
num = 8679
print(num % 10)  # 9
print(num % 100)  # 79
# 应用2:判断一个数是否能够被另一个数整除
# 练习:判断num是不是偶数
num = 87946
print(num % 2)  # 结果为0就是整除
  1. // (整除,求商取商的整数部分,向小取整)
5.12  # 取整为5
-5.32  # 取整为-6
print(5 // 2)  # 2
print(-9 // 4)  # -3
# 应用:取数字的最高位
num = 654
print(num // 100)  # 6
print(num // 10)  # 65
  1. ** 幂运算

m ** n (m的n次方)

print(3 ** 2)  # 9
print(2 ** 3)  # 8
print(16 ** 0.5)  # 4.0

n = 1 / 3
print(8 ** n)  # 2.0

比较运算符

注意:

  1. 所有的比较运算符的结果都是布尔值

  2. 数字数据不能和字符串进行比较

print(10 > 5)  # True
print(10 < 5)  # False
print(10 <= 5)  # False
print(10 >= 10)  # True
print(10 == 10)  # True
print(10 != 5)  # True
print(10 != 10)  # False

可以直接将运算结果赋给变量

a = 3 > 4
print(a)   # False

python中支持比较运算符的连写来表示范围

x = 10
print(0 < x < 100)  # true

逻辑运算符

python中的逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)

1.and
  1. 运算规则:

操作对象都是布尔值:两个结果都是True得到的结果才是True,只要有一个结果是False得到的结果就是False

True and True  -> true
True and False  -> False
False and True  -> False
False and False  -> False

2.应用场景:希望两个或多个条件同时满足才做什么,相当于生活中的

# 练习1:写出学生是否能够能拿奖学金,拿奖学金的要求:绩点超过4,操评分高于85,这两个同时满足
grade = 4.5
score = 90
print('是否能拿奖学金:', grade > 4 and score > 85)
2.or
  1. 运算规则:

操作对象都是布尔值:两个结果都是False结果才是false只要有一个是True结果就是True

True or True  -> true
True or False  -> True
False or True  -> True
False or False  -> False

应用场景:希望两个或多个条件只要满足其中一个就可以使用逻辑或运算,相当于生活中的或者

# 练习2:写出学生是否能拿奖学金,拿奖学金的要求:绩点超过4或者操评分高于90
grade = 4.5
score = 80
print('是否能拿奖学金:', grade > 4 or score > 90)
# 练习3:写出判断指定年是否是闰年的条件:1)能被四整除但是不能被100整除  2)直接能被400整除
year = 2012
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print('是闰年')
else:
    print('不是闰年')
3.not 逻辑非运算
  1. 运算规则:TruebianFalse ,False变True
not True -> False
not False -> True

应用场景:不满足某个条件就做什么,就用not

age = 18
print('是否成年:', age >= 18)
print('是否成年:', not age < 18)
练习:写出num是否不能同时被37整除
num = int(input('请输入一个数:'))
print('是否不能同时被整除:',not num %3 == 0 and not num %7 == 0)
操作对象不是布尔值的时候

逻辑运算符语法上可以操作任何数据

补充:数据的布尔值怎么确定:shuzi0和空都是False,其余数据都是True

数据1 and 数据2

(如果数据1的布尔值是True,结果是数据2)

(如果数据1的布尔值是False,结果是数据1)

print(3 and 7)  # 7
print(0 and 'abc')  # 0

数据1 or 数据2

​ (如果数据1的布尔值是True,结果是数据1)

​ (如果数据1的布尔值是False,结果是数据2)

print(9 or 7)  # 9
print(1 or 5)  # 1
print(0 or 'abc')  # abc

print(not 1) # False
print(not 0) # True
5.短路操作:

and的短路操作:

表达式1 and 表达式2 - > 如果表达式1的结果是False,表达式2就不会执行

def func1():
    print('函数执行')

    True and func1()

表达式1 or 表达式2 -> 如果表达式1的结果是True,表达式2就不会执行

def func1():
    print('函数执行')

True or func1()

7. 赋值运算

1.赋值运算符:

=、+=、-=、*=、/=、//=、%=、**=

  1. 所有的所有的赋值运算符都是用来给变量赋值的

  2. 所有的赋值运算符前面都必须是变量,复合赋值运算符前面的变量必须是已经赋值过的变量

  3. 所有赋值运算符的右边可以是任意有结果的表达式

  4. =

a = 10
age = 18
a = 100
  1. +=、-=、*=、/=、//=、%=、

变量 += 数据  ->  变量 = 变量 + 数据
变量 -= 数据  ->  变量 = 变量 - 数据
变量 *= 数据  ->  变量 = 变量 * 数据
变量 /= 数据  ->  变量 = 变量 / 数据
变量 **= 数据  ->  变量 = 变量 ** 数据
a = 00
a += 20
print(a)  # 120
2.运算符的优先级

数学运算符 > 比较运算符 > 逻辑运算符 >赋值运算符(最低)

**  >   /,*,%,//    >   +,-

有括号先算括号里面的

位运算

位运算的特点:效率高\内存消耗少

位运算的运算符:&(按位与), | (按位或) , ^ (按位异或) , ~ (按位取反) ,>>(右移),<<(左移)

所有的位运算都是操作数据在内存中的补码

  1. & (按位与)

数字1 & 数字2 (两个都是1结果就是1,否则就是0)

01101101(补) & 10101100(补)  -> 00101100(补)
print(5 & 9)

'''
5:00000101
9:00001001
5 & 9 = 00000001(补) = 1
'''
print(-5 & -9)  # -13

'''
-5:10000101(原) - 11111011(补)
-9:10001001(原) - 11110111(补)
-5 & -9 = 11110011(补) = 100011009(原) = -13
'''

应用:判断数字的奇偶性(直接让这个数与1按位与就行了)

让被判断的数字和 1 进行按位与运算,结果如果是 0 说明是偶数否者是奇数
11101010 & 00000001
  1. | 按位或运算

数字1 | 数字2 — 只要一个是1 结果就是 1 ,两个都是0 结果就是 0 .

练习: 7 | -16

  1. ^ 异或

数字1 ^ 数字2 — 数字对应位置相同位 0 不同为 1

print(78 ^ 6)  # 72
print(72 ^ 6)  # 78
  1. ~ 按位取反

0 变1 ,1变0

~数字

print(~5)  # -6
print(~-6)  # 5
  1. <<,>>

数字 >> 数字2 —数字1 // 2 **数字2

数字1 << 数字2 — 数字1 * 2**数字2

print(6 << 1)  # 6 * 2**1   = 12
print(4 << 3)  # 4 * 2**3   = 32
print(6 >> 1)  # 6 // 2**1  = 3
print(7 >> 1)  # 7 // 2**1  = 3
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值