变量和运算符

变量

1.定义变量

“”"
语法:
变量名 = 数据
说明:
变量名 - 程序员自己命名
要求:1)标识符 2)不能是关键字
规范:1)见名知义 2)满足PEP8的命名规范(所有的字母都小写,过个单词之间用下划线隔开)3)不使用系统提供的类型名、函数名和模块名
= -赋值符号,固定写法(将右边的数据赋值给左边)
数据 - 任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)
“”"
age = 18
teacher_name =‘小白’
int_num= 20
print =100 错误写法
定义一个变量,保存学生的分数:90
socre = 90

2.变量的使用

变量中保持的数据能做什么,变量就能做什么
使用变量的时候是在使用变量中保持的数据

print('hello worlf')
print(age)
print('abc'[0])
str1 ='abc'
print(str1[0])

3.修改变量中的数据(重新给变量赋值)

变量 = 新值
print(age)
age=20
print(age)# 重新赋值会覆盖以前的值
python 中同一个变量可以保持不同类型的值

4.同时定义多个变量/同时给多个变量赋值

1)同时给不同的变量赋不同的值:变量名1,变量名2,变量名3,…=数据1,数据2,数据3,…
a,b,c = 10, 20, 30
print(a,b,c)
 python交换两个变量的值:变量1,变量2 = 变量2, 变量1
x = 100
y = 200
x, y = y, x  #x, y = 200, 100
print(x,y)
 #练习:假设已存在三个变量x1, x2, x3 要求用一句代码完成功能: x1 == x3, x2==x1,x3==x2
x1,x2,x3=1,2,3
x1,x2,x3=x3,x1,x2
print(x1,x2,x3)
2)同时给不同的变量赋相同的值:变量1 = 变量2 =变量3 =…=值
a1 = a2 =a3 =100
print(a1,a2,a3)
 注意:没有赋值过的变量不能使用
#print(sad)#错误,因为没有赋值

变量的赋值原理

1. 定义变量和给变量赋值的原理:

变量 = 数据

1)先在堆中申请内存(申请多大看呗赋值的数据需要多大内存)
2)将数据保存在内存区域中
3)让变量和保持数据的内存进行关联(让变量保存数据对应的内存地址)

2.id函数

id(变量) - 获取变量中关联的数据在内存中的地址

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

数学运算符

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

1.数学运算符:+(加),-(减),(乘),/(除),%(取余,取模),//(整除),**(幂运算) +(加),-(减),(乘),/(除)和数学中的加减乘除功能一模一样

print(5+2)
print(5-2)
print(5*2)
print(5/2)

2)% -求余数

数字1 % 数字2 ->求数字1除以2的余数
print(5%2)
应用: 取整数的个位数或者低几位数
练习:获取变量num的个位数

num = 678
print(num%10) #9
print(num%100) #79

应用2:判断一个数是否能够被灵位一个数整除
练习:判断num的是否是偶数

print(num % 2)

3)//- 求商取商的整数部分(向下取整/向小取整)

5.78 #5
print(5//2)#2
print(-5//2) #-3
print(3.39//3)#1.0
 应用:取定长数字的最高位
num = 367
print(num//100) #3
print(num//10)#36
#4)幂运算
print(3**2) #9
print(2**3) #8
print(9 **0.5)#3.0
n=1/3
print(8**n) #2.0
# 练习:12+3*4//5-6**2
print(12+3*4//5-6**2)

比较运算符

比较运算符(关系运算符):>,<,==,<=,>=,!=

注意: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
#### 可以直接将运输结果赋给变量
a = 3 > 4
print(a)  # False
b = 5 % 2
print(b)  # 1
#### python中支持比较运算符的连写表示范围
x = 10
print(0 <= x <= 100)  # True

逻辑运算符

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

1. and
1)运算规则:

a.对象都是布尔值:两个都是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)运算规则

a.操作对象都是布尔值:两个都是False结果才是False,只要有一个是True,结果就是True
“”"
True or True ->True
True or False ->True
False or False->False
“”"

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

练习2:写出学生是否能拿奖学金的条件,拿奖学金的要求:绩点超过4或者操评分高于90

grade=4.5
score=80
print('是否拿奖学金',grade>4 or score > 90)

练习3:写出判断指定的年是否是闰年的条件:1)能被4整除但是不能被100整除 2)直接被400整除

year=2012
print( year % 4 == 0 and 100 % year != 0 or 400 % year == 0)
d1 = year % 4 == 0
d2 = year % 100 != 0
d3 = year % 400 == 0
print('是否为闰年',(d1 and d2) or d3)

逻辑非运算

3. not
1) 运算规则:

“”"
not True -> False
not False -> True
“”"

2)应用场景:不满足某个条件就做什么,就用not
age = 18
print('是否成年',age>= 18)
print('是否成年',not age < 18)
 练习:写出num是否不能同时被37整除
num =20
print('是否整除',not num %3==0 and not num%7==0)

4.操作对象是布尔的时候

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

1)数据1 and 数据2 ->如果数据1的布尔值是True,结果是数据2

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

2)数据1 or 数据2->如果数据1的布尔值是True,结果是数据1
                如果数据1的布尔值是False,结果是数据2
补充:数据的布尔值怎么确定 - 所有为零为空的值都是False,其他数据的布尔都是True
print(1 and 'abc')#'abc'
print('abc' and 'hello')#'hello'
print(0 and 'abc')# 0
print(False and 100)# False
print('' and 'abc') #''
print(1 or 'abc')# 1
print(7 or 8)# 7
print(not 1) #False
print(not 0)# True

5.短路操作

and 的短路操作

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

or 的短路操作

表达式1 or 表达式2 -如果表达式1的结果是True,表达式2不会执行
def func1():
    print('函数被执行')
print(True and func1())
print(False or func1())

赋值运算符

赋值运算符:=、+=、-=、*=、/=、%=、//=、**=

1)所有的赋值运算符都是用来给变量赋值的
2)所有的赋值运算符的左边都必须是变量,复合赋值运算符左边的变量必须是已经赋值过的变量
3)所有赋值运算符的右边都可以是任意有结果的表达式
1)=
a = 10
age = 18
a =100
2) +=、-=、*=、/=、%=、//=、**=

变量 +=数据 -> 变量 = 变量+数据

a +=20 # a= a+20 ->a =100 +20 ->a =120
a/=4 # a = a/4 ->a=120/4
print(a)#30
a**=2
print(a)#900

2.运算符的优先级

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

** > *, /> %, //, +,-
#有括号先算括号里面的
a = 10 + 30 > 35

位运算

1.位运算的特点:效率高、内存消耗少

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

所有的位运算的操作对象都是直接操作数据在内存的存储补码

1)&(按位与运算)

数字1 & 数字2-两个都是1结果就是1否则结果是0
01101101 & 10101100 ->00101100
特点某一位上的数和1与可以对这一位上的数进行保存,会对这一位进行置0操作

print(5 & 9)
"""
5:00000101、9:00001001=1
-5 & -9, -5:10000101(原)-11111011(补)
           -9:1001001(原)-11110111(补)
           -11110011(补)-11110010(反) -1001101(原)--13
"""
print(-5 & -9)

应用:判断数字的奇偶性

"""
001101101 & 00000001
让被判断的数字和1进行按位与运算,结果如果是0说明是偶数,否则就是奇数
"""
print(3&1) #奇数1
print(4&1) #偶数0
|按位或运算

数字1|数字2-只要有一个是1就是1,两个都是1结果才是0
练习 7|-16

^(异或)

数字1^数字2-不同为1,相同为0

print(18 ^ 9) #27
print(27 ^ 9) #18

异或两次会变成原值

~按位取反:0变1 1变0

~数字

#>>,<<
数字1>>数字2 -数字1//2数字2
数字1<<数字2 -数字1* 2
数字2
#应用:快速高效率的乘2或者2的次方数

print(6 << 1)  # 12
print(6 >> 1)  # 3
print(7>>1) # 3
print(-7>>1) #-4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值