一、变量
(一)定义
定义变量(定义 - 创建) - 将数据保存到变量中
语法:变量名 = 数据
定义变量需要注意以下情况
1.变量名 : 由程序员自己命名,但是必须满足两个要求和3个规范:
- 2个要求:是标识符;不是关键字
- 3个规范;见名知意(看到变量名就大概知道这个变量中保存的是什么数据)
- 字母都小写,多个单词用下划线隔开
- 不使用系统的函数名、类名和模块名
2. = 赋值符号
3. 数据 : 需要保存的对象;提供数据的方式:具体的数据、已经赋值过的变量、运算表达式、函数调用表达式
使用变量就是在使用变量中保存的数据
a = 100
b = a
print(b)
(二)重新赋值
我们用具体的实例来进行解释说明:
a = 10 # 创建变量a,并且赋值为10
print(a)
a = 100 # 重新给a赋值为100
print(a)
a = 'abc' # 重新赋一个其他类型的数据
print(a)
(三)同时定义多个变量
1.同时定义多个变量赋相同的值
变量名1 = 变量名2 = 变量名3 = … = 数据
x = y = z = 100
print(x, y, z)
2.同时定义多个变量赋不同的值
变量名1,变量名2,变量名3,… = 数据1,数据2,数据3,…
注意:= 后面数据的个数必须和前面变量的个数保持一致
m, n = 10, 20
print(m, n)
3.在python中两个变量可以直接交换值
a = 100
b = 200
a, b = b, a
print(a, b)
4.变量保存数据的底层逻辑
定义变量的时候会自动在内存中申请空间保存数据
原理:定义变量的时候会自动申请内存,内存的大小有数据的大小决定;重新给变量赋值,会重新根据新的数据申请新的内存
二、运算符
数学运算符、赋值运算符、比较运算符、逻辑运算符、位运算符…
(一)、数学运算符
-(减)、+(加)、*(乘)、/(除)、//(整除)、**(幂运算)、%(取余、取模)
python中的+、-、*、/和数学中的+、-、x、÷的功能一样
print(1 + 2)
print(2 - 1)
print(1 * 2)
print(2 / 3)
整除:向小取整,任何除法运算得到的结果均为整数(int)
x//y
print(2 // 3)
print(-5 // 2)
应用:希望能整除的情况下商是整型
print(4 / 2) # 2.0
print(int(4 / 2))
print(4 // 2)
% - 取余、取模
x % y
print(5 % 2)
print(2 % 3)
应用:获取任意一个正整数的十位数
num = 8271
# 方法1:
print(num // 10 % 10)
# 方法2:
print(num % 100 // 10)
** - 幂运算涉及到开方结果均为浮点型
x ** y
print(2 ** 2)
print(4 ** 0.5)
print(4 ** -0.5)
(二)、逻辑运算符
and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算) -->结果均为布尔值
and:条件1 and 条件2,条件1和条件2都成立时,整体条件成立,反之不成立
中断:and左边条件不成立时,and右边条件无需再判断
print(True and True)
print(False and True)
print(False and False)
or:条件1 or 条件2,一个条件成立则整体成立,都不成立则整体不成立
中断:or左边成立时,则无需判断右边条件
print(True or True)
print(False or True)
print(False or False)
not - 非,取反,反义词
print(not True)
print(not False)
例题:判断年份是否为闰年
闰年:1.能被4整除但是不能被100整除 2.能被400整除
地球公转:365天5小时40+分钟
0=False,非0均为True
bool() - 能够将数据转为布尔值
year = int(input('输入一个年份:'))
a = not year % 4
b = year % 100
c = not year % 400
print(bool((a and b) or c))
print(a and bool(b) or c)
(三)比较运算符
- 符号:> 、< 、== 、!= (不等于)、 >= 、<=
- Python中比较大小是同类型数据之间比较大小、比较大小得到的结果是布尔值
为什么python能够比较大小?
原因:Python使用的编码值叫万国码:unicode,是ASCII编码的拓展
-
数字0-9对应的十进制编码值为:48-57
-
A-Z对应的十进制编码为:65-90
-
a-z对应的编码值为:97-122
由一个例题来解释:判断年份是否是闰年
year = 2004
result = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(result)
(四)赋值运算符
-
赋值运算符规则是:先算等号右边,再给等号左边赋值
-
符号:=、+=、-=、*=、/=、//=、%=、**=
举例说明:
a = 10
a += 5 # a = a + 5
a **= 2 # a= a ** 2
a %= 2 # a = a % 2
print(a)
(五)复合赋值运算符
我们始终要记住先算等号右边再赋值
a *= a + 3 # a = a * (a + 3) 始终记住先算右边再赋值
print(a)
(六)运算符优先级
- 先算小括号整体
- 算数运算符:*大于、/、%、//大于+、-
- 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
三、分支结构
分支结构(if) : 让程序根据条件执行代码
(一)if单分支结构
满足条件执行某个操作,条件不满足的时候这个操作就不执行
语法:
if 条件语句:
代码段
主要说明以下几点:
-
if
:是关键字,固定写法 -
条件语句
可以是任何有结果的表达式(比如:具体的数据、运算表达式、已经定义过的变量等,只有赋值语句不行)
一般将结果是布尔的表达式作为条件
-
if行后面的**’ :'**号,固定写法(必须为英文状态下)
-
代码段
结构上,就是和if保持一个缩进的一条或者多条语句(至少一条)
逻辑上,就是满足条件才会执行代码
执行过程:先判断条件语句是否成立(如果条件语句的结果不是布尔,就转换成布尔看是否是True),如果成立就执行代码段;条件不成立,代码段就不执行
示例:
age = 18
if age >= 18:
print('成年!')
(二)if双分支结构
条件成立执行某个操作,不成立就执行另外一个操作
语法:
if 条件语句:
代码段1(满足条件执行的代码)
else:
代码段2(不满足条件执行的代码)
示例练习:
练习:根据age的值打印成年或者未成年
age = 29
if age < 18:
print('未成年')
else:
print('成年')
练习:根据year的值打印’闰年’或者’平年’
year = 2004
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
else:
print('平年')