day02 变量&运算符

day02 变量&运算符

一、变量

1.提供数据的方式

  • 直接提供数据:不清楚数据意义;重复使用时需要反复写;修改麻烦
  • 将数据保存到变量中,通过使用变量使用数据
age = 18
print(age)  # 18

score1 = 88
score2 = 99
print((score1 + score2) / 2)  # 93.5

msg = '红红火火恍恍惚惚'  # 红红火火恍恍惚惚
print(msg)
msg = '嘻嘻嘻哈哈哈哈'
print(msg)  # 修改方便  嘻嘻嘻哈哈哈哈

2.定义变量/创建变量

  • 将数据保存到变量中

  • 变量作用 - 保存数据

  • 语法 - 变量名=数据

  • 说明 :变量名 - 程序员自己定义

    ​ 要求 - 标识符且不是关键字

​ 规范 - 见名知义(看见变量名就大概知道保存的是什么数据)

​ 不使用系统函数名(print、input()、type()…)、类名(int、float、bool、str)

​ 所有字母小写,多个单词之间下划线隔开

  • 需要保存到变量的具体数据 ,可以是某种具体的数据或者具体的结果
name = '懒洋洋'
address = '青青草原'

# print = 100
# print(print)  # 用系统函数做变量,运行不报错,但是print函数原本功能失效;
int = 52
# print(int(10.5))  # 报错,且int失效

dog_name = '来福'
dogName = '乖乖'  # 小驼峰写法

result = 100 + 20
print(result)

3.使用变量

  • 使用变量中保存的数据(使用变量就是使用变量中保存的数据)
  • 数据可以做的事情,保存数据的变量都可以做。
  • 注意 - 必须先定义再使用
num = 88
print(num)  # 打印变量中保存的数据 88
print('num')  # num
print(num + 20)  # 进行运算
print(type(num))  # <class 'int'>
print(bool(num))  # True

4.同时定义多个变量

  • 变量名1=变量名2=变量名3=…=数据 - 同时定义多个变量赋值相同
  • 同时定义多个变量赋不同值(变量数量必须和数据数量一致)

a = b = c = 34
print(a, b, c)  #34 34 34

x, y = 12, 34
print(x, y)   #12 34

# 案列交换两个变量的值
m = input('输入m的值:')
n = input('输入n的值:')
print('交换前:', m, n)  # 交换前: 100 12
# # t = m;  #t=22
# # m = n;  #m=99
# # n = t;  #传统做法  n=t=22
m, n = n, m  # python做法

print('交换结果:', m, n)  # 交换结果: 12 100

5.变量重新赋值

  • 定义完变量后可以给变量重新赋值,重新赋值后,使用的是新的数据值
  • 可以赋不同数据类型(C和Java不可以)
score = 120
print('重新赋值前 score:', score)

score = '优秀'
print('重新赋值后 score:', score)

# 重新赋值前 score: 120
# 重新赋值后 score: 优秀

二、变量底层逻辑

1.C语言

  • 数据保存在运行内存:申请内存(申请多大?): int四个字节,申请四个字节的内存空间
    匹配数据大小(过大-溢出;过小浪费);
    考虑数据成长性。

  • 重新赋值:在原内存上重新存值,考虑数据大小(不能超过 - 溢出);
    不能给不同类型重新赋值。

2.python

  • 申请内存:申请内存大小只与数据大小有关
    缺点 - 计算数据所需空间大小导致执行效率相对较慢

  • 重新赋值:重新根据数据大小申请新的内存保存数据,新的内存重新和变量a关联,将原数据内存释放
    缺点:执行效率较慢;

    ​ 可以赋值不同数据类型的数据。

3.id函数

  • 获 取变量对应的内存地址
a=12
print(id(a))

a=15
print(id(a))

# 2034841447056
# 2034841447152

三、运算符:+、-、*、/、%、//、**

1. +、-、*、

print(10 + 23)  # 33
print(10 - 23)  # -13
print(10 * 23)  # 230

2./(除)

  • 运算结果一定是浮点数
print(10 / 23)  # 0.43478260869565216
print(10 / 2)  # 5.0

3.%(取余、取模) - 求余数

  • 应用场景:判断一个数是否能被另外一个数整除(结果是否为0);

    ​ 取整数的低位数 - 对10的n次方取余,可以获得这个数的后n位。

print(10 % 23)  # 10
print(50 % 5)

num = 1562
print(num % 10)  # 2
print(num % 100)  # 62

4.//(整除)- 求商,向下取整

  • 应用场景:求一个数中有多少个完整的另一个数 - 对10的n次方取整,可以获得这个数的后n位

    ​ 去掉整数的低位数保留高位数

num1 = 2387
print(num1 // 3)  # 795

print(2563 // 100)  # 25
# 提取任意一个数的百位数
num2 = 59683
print(num2 // 100 % 10)  # 6
print('{}的百位数是:'.format(num2), num2 // 100 % 10)  # 哇塞  先整除再取余
print('{}的百位数是:'.format(num2), num2 % 1000 // 100)  # 哇塞  先取余再整除

5.**(幂运算)

print(3 ** 4)  # 81   
print(3 ** -4)  # 0.012345679012345678  3的4次方分之1
print(9 ** (1 / 3))  # 2.080083823051904 9开3次方根

四、比较运算符:> 、<、 ==(等于)、 !=、 >=、 <=

  • 比较运算符运算结果:bool值 - True/False
print(100 != 30)  # True
print(100.0 == 100.0)  # True
print(1 / 2 == 4 / 2.0)  # False 浮点数的大小比较是在一定范围内;浮动的

num = 669
print('num是否是奇数:', num % 2 == 1)  # num是否是奇数: True
  • python中的比较运算符支持范围连写表示范围:80<86<90
score = 85
# 判断分数是否大于等于85小于95
print('是否优秀成绩:', 85 <= score < 95)  # 是否优秀成绩: True

五、逻辑运算符:and(逻辑与)、or(逻辑或)、not(逻辑非)

1.and(逻辑与)

  • 应用场景:用来连接要求两个条件同时成立,相当于’并且‘
  • 运算规则:条件1 and 条件2 - 同时成立结果位True,反之为False
    False and False - False
# 判断num是否同时被3和8整除(余数为0)
num = 24
print('判断{}是否同时被3和8整除:'.format(num), (num % 3 == 0) and (num % 8 == 0))
# 判断num1是否是一个被7整除的偶数
num1 = 28
print('判断{}是否是一个被7整除的偶数:'.format(num1), num1 % 7 == 0 and num1 % 2 == 0)

# 判断24是否同时被3和8整除: True
# 判断28是否是一个被7整除的偶数: True

2.or(逻辑或)

  • 多个条件要求至少一个条件成立,用or连接

  • 运算规则:条件1 or 条件2 - 只要有一个条件成立:True

    ​ 两个条件都不成立: False

  • 思路不清晰时候一个一个条件写出来再逻辑连接

# 判断是num否是能够被3或7整除:
num2 = 5693
print('判断是num否是能够被3或7整除:', num2 % 3 == 0 or num2 % 7 == 0)  
# 判断是num否是能够被3或7整除: False

# 判断指定的年是闰年: 普通闰年-被4整除不能被100整除
#                   世纪闰年-被400整除
year = 2008
print('判断指定的年是否闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0) # 判断指定的年是否闰年: True

3.not(逻辑非)

  • 应用场景:对条件进行否定
  • 运算规则:not 条件 - 对指定条件进行否定
    not True - False
    not False - True
  • not 被替代性很强
# 判断age是否不大于25
age = 19
print(not age < 25)  # False
print(age >= 25)  # False

# 判断是num否是不能够被3和7整除:
num2 = 5693
print('判断是num否是能够被3或7整除:', not (num2 % 3 == 0 and num2 % 7 == 0))  # 判断是num否是能够被3或7整除: False
print(num % 21 != 0)   #换个思路

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

  • 所有赋值运算符的最终功能都是完成对变量的赋值操作(数据保存到变量中)
  • 赋值运算没有结果 ,无法提供数据
# print(b=20)    #报错

1. =

变量名 = 数据 - 将数据直接保存到变量中

2. 符合运算符:+=、-=、*=、/=、**=、%=

  • 变量 += 数据 - 先将变量中数据取出,和后面的数据相运算,将运算结果结果重新赋值保存到前面变量中
  • 注意:复合的运算符前面的变量必须是已经赋值过后的变量
# 2.+=
num = 15
num += 2  # num=num+2
print(num)  # 17
# 3.-=
num -= 1  # num=num-1=17-1
print(num)  # 16
# 4.%=
num %= 4
print(num)  # 0
# 5.*=
num1 = 33
num1 *= 3
print(num1)  # 99
# 6.//=
num1 //= 3
print(num1)  # 33
# 7.**=
num1 **= 3  #
print(num1)  # 35937

七、运算符优先级

  • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
  • 数学运算符 - 和数学一样:** > *、/、%、// > +、-
  • and > or
  • 有括号先算括号 - python中只有小括号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值