Python中变量和运算符

变量

######1. 定义变量

     语法:变量名 = 数据

     说明:变量名 —程序员自己命名

     要求:1. 标识符不能是关键字(见名知义)

                 2.满足PEP8的命名规范(所有的字母都小写,各个单词之间用下划线隔开)

                 3.不使用系统提供的类型名、函数名和模块名

      =    —>    赋值符号,固定写法

      数据   —>   任何有结果的表达式,包括:独立数据、运算表达式(除了赋值运算)
  1. 独立数据

    X = 37 X1 = 14.2 X2 = 0B11010 X3 = True

  2. 运算表达式

    y = 20 + 60

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

    stu_score = 90

使用变量

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

age = 28

print(age)

print(‘age’, age)

print(age + 20)

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

age = 18

age = 13

print(age)

同时定义多个变量
  • 同时给不同的变量赋值

    • a, b , c = 10 ,60 ,153

    print(a, b, c)

  • 交换两个变量的值

    • x = 30

      y = 70

      x , y = y , x

      print(x,y)

  • 同时给不同的变量赋相同的值

    • x1 = x2 = x3 = 200

      print(x1, x2, x3)

变量赋值的原理

  1. 先在堆中申请内存(申请多大多大要看赋值的数据需要多大内存),再将数据保存再内存区域中,让变量和保存数据的内存进行关联。

  2. id函数 —获取变量中关联的数据再内存中的地址

    num = 10

    print(id(num))

    num = 25

    print(id(num))

运算符

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

1.赋值运算符

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

1)所有的赋值运算都是用来给变量赋值的
2)所有的赋值运算符的左边都必须是变量,赋值运算符左边的变量必须是已经赋值过的变量
3)所有赋值运算符的右边都可以是任意有结果的表达式

1.2 .运算符的优先级

数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)
有括号先算括号里面的

2.数学运算符

数学运算符:+(加)、-(减)、(乘)、/(除)、%(取余)、//(整除)、(幂运算)*

2.1 +(加)、-(减)、*(乘)、/(除)和数学中的加减乘除功能是一样的

2.2 % — 求余数

应用一:取整数的个位数或者低几位数

例:获取变量num的个位数
num = 674
print(num%10)

应该二:判断一个数是否能够被另一个数整除

练习:判断num是否是偶数
num = 674
print(num%2)

2.3 // — 先求商,再取商的整数部分(向下取整/向小取整)

应用:取定长数字的最高位

num = 854
print(num//100)
num = 228
print(num//10)

2.4 ** — 幂运算

m ** n — 计算m的n次方

print(12 + 3 * 4 // 5 - 6 ** 2)

3.比较运算符

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

注意:a)所有比较运算符的结果都是布尔值

		b)数字数据不能和字符串数据进行比较
print(1 > 2)    #False
print(1 < 2)    #True
print(1 >= 2)   #False
print(1 <= 2)   #True
print(1 == 2)   #False
print(1 != 2)   #True

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

x = 50
print(0 < x <100)

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

a = 1 > 2
print(a)

4.逻辑运算符

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

4.1 and

运算规则:操作对象都是布尔值:两个都是True结果才是True,只要有一个是False结果就是False

应用场景:希望两个或者多个条件同时满足才做什么事情,就使用逻辑与运算。相当于生活中的并且。

练习1:写出学生是否能拿奖学金的条件,拿奖学金的要求:绩点超过4,操评分高于85,这个两个条件同时满足
grade = 4.5
score = 80
print('是否能拿奖学金:', grade > 4 and score > 85)

4.2 or

运算规则:

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

​ 应用场景:

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

练习2:写出判断指定的年是否是闰年的条件: 1)能被4整除但是不能被100整除  2)直接能被400整除
year = 2020
print('是否是闰年:', year % 4 == 0 and year % 100 != 0 or year % 400 == 0)

4.3 not

运算规则:

​ True 变 False , False 变 True

应用场景:

​ 不满足某个条件就做什么,就用not。

练习3:写出num是否不能同时被3和7整除
num = int(input('请输入一个数:'))
print('是否满足条件:', not (num % 3 == 0 and num % 7 == 0))

4.4操作对象不是布尔的时候

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

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

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

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

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

补充: 数据的布尔值怎么确定 - 所有为零为空的值都是False,其他数据的布尔都是True

4.5 短路操作

and 的短路操作:

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

or 的短路操作:

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

5.赋值运算符

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

  • 所有的赋值运算都是用来给变量赋值的

  • 所有的赋值运算符的左边都必须是变量,复合赋值运算符左边的变量必须是已经赋值过的变量

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

5.1 =

a = 10
age = 18
a = 100

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

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

5.2 运算符的优先级

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

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

有括号先算括号里面的

a = 10 + 30 > 35
a = 30 * 2 > 50 * 2
print(a)

6.位运算

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

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

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

6.1 &(按位与)

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

特点:某一位上的数和1与可以对这一位上的数进行保存,和0与会对这一位进行置0操作

print(5 & 9)		#1
print(-5 & -9)	#-13

应用:判断数字的奇偶性:

让被判断的数字和 1 进行按位与运算,结果如果是0说明是偶数否则是奇数

6.2 |(按位或)

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

6.3 ^(异或)

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

6.4 ~

0变1,1变0

6.5 >>,<<

数字1 >> 数字2 - 数字1 // 2**数字2

数字1 << 数字2 - 数字 * 2**数字2

应用:高效率、快速的乘2或者2的次方数

print(6 << 1)   # 6 * 2**1
print(5 << 2)   # 5 * 2**2
print(6 >> 1)   # 6 // 2**1
print(7 >> 1)   # 7 // 2**1
print(-7 >> 1)  # -7 // 2**1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lucky.Yin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值