当前位置:   article > 正文

DAY02 变量和运算符

DAY02 变量和运算符

DAY02 变量和运算符

一.变量

1.1 认识变量和定义(创建)变量
1.1.1 认识变量

变量:用来保存数据(在程序中使用的数据的时候,不要直接用,而是先用变量把数据存起来,然后通过使用变量来使用数据)

1.1.2 定义变量

定义变量(创建变量):将数据保存到变量中

语法:变量名 = 数据

  • 变量名:

    由程序员自己命名;

    要求:是标识符不是关键字

    规范:

    • 见名知义(看到变量名就大概知道变量中保存的是什么数据)

    • 不使用系统的函数名、类名和模块名(注意:如果使用,会导致他们本身的功能消失)

    • 所有的字母都小写,多个单词之间用下划线隔开(也可以使用驼峰式命名)

  • = :

赋值符号(固定写法)

  • 数据 :

    可以是任何有结果的表达式,例如:具体的某个类型的数据、有结果的运算表达式、已经赋值过的变量

# print = 100   print函数无法使用
# int = 20     int做类型转换无法使用

dog_name = '汪'  # PEP8命名规范
dogName = '汪汪'  # 驼峰式命名
  • 1
  • 2
  • 3
  • 4
  • 5
1.2 使用变量

使用变量就是使变量中保存到数据

x = 100
y = 200
print(x)
print(y)
  • 1
  • 2
  • 3
  • 4
1.3 重新给变量赋值

重新赋值数据类型可变

xx = 100
print(xx)

xx = 200
print(xx)

xx = 'abc'  
print(xx)

xx = True
print(xx)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
1.4 同时定义多个变量
  1. 同时定义多个相同的变量赋相同的值:变量1 = 变量2 = 变量3 = …
  2. 同时定义多个相同的变量赋不同的值:变量名1, 变量名2, 变量名3,… = 数据1, 数据2,数据3,…
x1 = x2 = x3 = 100
print(x1, x2, x3)

y1, y2, y3 = 10, 20, 30
print(y1, y2, y3)
  • 1
  • 2
  • 3
  • 4
  • 5
1.5 应用:交换变量的值
# 方法一:
m = 10
n = 20
t = m
m = n
n = t
print(m, n)

# 方法二:
m = 10
n = 20
m, n = n, m
print(m, n)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

二.定义变量和重新给变量赋值的底层原理

  1. Q:python定义变量不需要写类型

    A:python定义变量申请内存的时候,内存申请多大看数据需要多大,不看类

  2. Q:重新赋值的时候为什么可以赋不同类型的值

​ A:重新赋值的时候会重新申请新的内存

b = 20
b = 'abc'
b = [10, 20, 30]
  • 1
  • 2
  • 3
  1. Q:为什么python可以直接计算9999**9999

A:申请内存的时候会提前计算存储这个数据需要多大的内存,需要多大就申请多大

补充1:获取内存地址的工具:id(变量)

x = 100
print(id(x))

x = 1000
print(id(x))
  • 1
  • 2
  • 3
  • 4
  • 5

补充2:计算机内存单位

位(bit)

1字节(bytes) = 8位

1Kb = 1024字节

1Mb = 1024Kb

1Gb = 1024Mb

1T = 1024Gb

三.数学运算符

数学运算符:+、-、*、/、%、//(整除)、**(幂运算)

3.1 +、-、*、/

功能与数学中的功能一模一样
注意:+、-、*操作,如果操作数据中有浮点数结果就是浮点数
/的结果一定是浮点数

print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
  • 1
  • 2
  • 3
  • 4
3.2 % - 取余,取模

x % y - 求x除以y的余数
print(10 % 3)

  • 应用场景一:判断整除关系(判断一个数是否能够被另外一个数整除)

如果两个数存在整数关系,那么他们的余数是0

num = 214
print(num % 2)
  • 1
  • 2
  • 应用场景二:取整数的低位数
num = 321
print(num % 10)  #1
print(num % 100)  #21

print(10 // 3, 10 % 3)   # 3   1
print(-10 // 3, -10 % 3)  # -4(向下取整)  2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
3.3 // - 整除

x // y - 求x除以y的商,商向小取整

print(5 // 2)    # 2
print(-5 // 2)   # -3
  • 1
  • 2
  • 应用场景一:(在知道两个数能整除的情况下)快速获取整型求商的结果
nums = [28,34,45,54,65,14,45,41]

# print(nums[len(nums) / 2]) /结果是浮点型,列表取数必须是整数下标

print(nums[len(nums) // 2])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 应用场景2:整数去掉低位数,保留高位数 - 对10或者10的N次幂进行整数操作
print(324 // 10)
print(3.14 // 3)  # 1.0

print(3.14 / 3)
  • 1
  • 2
  • 3
  • 4

练习:获取num的十位数

num = 367892
y_num = num % 100
print(y_num)
print(y_num // 10)

方法1print(num // 10 % 10)

方法2print(num % 100 // 10)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
3.4 ** - 幂运算

x ** y - 求x的y次方

print(2 ** 3)
print(4 ** 0.5)   # 2
print(8 ** (1/3))  # 2.0
print(2 ** -2)     # 0.25
  • 1
  • 2
  • 3
  • 4

四. 比较运算符

比较运算符 :>, < , >=, <=, ==, !=

  1. 所有的比较运算符的结果都是布尔
# 判断num是否能被4整除
num = 23
print(num % 4 == 0)

# 判断num是否是浮点数
num = 2.34
print(type(num) == float)

# 判断是否成年
age = 23
print('是否成年:', age >= 18)

num = 0.3
print(0 <= num <= 1)
# print(num >= 0 and num <= 1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  1. python比较运算符支持连写表示范围
num = 0.3
print(0 <= num <= 1)
# print(num >= 0 and num <= 1)
  • 1
  • 2
  • 3

五. 逻辑运算符

逻辑运算符:and, or, not

5.1 and(逻辑与运算)
  • 应用场景:用于连接要求同时满足的多个条件,相当于生活中的并且
  • 运算规则:条件1 and 条件2 - 两个条件都是True,结果就是True;只要有一个是False结果就是False
# 获取奖学金的条件:绩点不低于3.5,并且操评分大于90
gpa = 3.5
score = 95
print('是否能获取奖学金:', gpa >= 3.5 and score > 90)

# 练习1:判断num是否能够同时被3和7整除
num = int(input("请输入数字:"))
print('num是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
print('num是否能够同时被3和7整除:', num % 21 == 0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
5.2 or(逻辑或运算)
  • 应用场景:如果两个或者多个条件中主要有一个满足就行,就用or来对这些条件进行连接,相当于生活中的或者
  • 运算规则:条件1 or 条件2 - 两个条件只要有一个是True结果就是True,两个都是False结果才是False
num = int(input("请输入数字:"))
print('num是否能够被3或者7整除:', num % 3 == 0 or num % 7 == 0)

# 练习:判断指定的年是否是闰年
# 闰年分为普通闰年和世纪闰年两种,
# 普通闰年 - 能被4整除但是不能被100整除的年;世纪闰年 - 能被400整除的年
year = int(input("请输入年份:"))
print("是否是闰年:", (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
5.3 not(逻辑非运算)
  • 应用场景:如果一个条件正向写情况很多很复杂,反向写却很简单的时候,我们就将条件反向写,再加not
  • 运算规则:not 条件 - 对指定条件进行否定
age = 23
# 年龄不大于等于18
print(not age >= 18)

# 判断num是否不能同时被3和7整除
print(not num % 21 == 0)

# 判断x是否不是数字类型
x = '12'
print(type(x) != int and type(x) != float)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

六. 赋值运算符

赋值运算符:=, +=, -=, *=, /=, %=, //=, **=
注意1:所有的赋值运算符都是将某个数据保存到某个变量中
注意2:所有的赋值运算都没有结果 print(a = 10) 报错

6.1 =

变量 = 数据 (将右边的数据保存到左边的变量中)

a = 10
  • 1

6.2 +=, -=, *=, /=, %=, //=, **=

变量 += 数据 (将变量中保存的数据和+=后面的数据进行加法运算,然后将运算结果再赋值给变量)

注意:这儿的变量必须是已经赋值过的变量

c = 10
c += 2
print(c)  # 12
  • 1
  • 2
  • 3

(其余同理)

6.3 运算符优先级

  • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
  • 数学运算符中:** > *、/、%、// > +、-
  • 有括号先算括号里面的
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/914564
推荐阅读
相关标签
  

闽ICP备14008679号