3

Python基础(2)--运算符 | CHEGVA

 2 years ago
source link: https://chegva.com/4506.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Python基础(2)--运算符 | CHEGVA

◎知识点



◎脚本练习

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@FileName:    python_operator.py
@Function:    python operator
@Author:      Zhihe An
@Site:        https://chegva.com
@Time:        2021/6/19
"""
"""一、运算符概述"""
"""
1、什么是运算符?
运算符是一种特殊的符号,通过运算符可以对相应数据类型的运算数进行运算
例如:加法运算符+可以将两个整数类型的运算数进行相加运算,比如 1 + 2
布尔运算符and可用于将两个布尔类型的运算数进行逻辑与的运算,比如True and False
"""
"""
2、常见的运算符
(1) 标准算术运算符(+、-、*、/)
(2) 取余运算符(%)
(3) 幂运算符
(4) 布尔运算符
(5) 比较运算符
(6) 赋值运算符
"""
"""二、标准算术运算符"""
"""
1、标准算术运算符
标准算术运算符包括加减乘除四个运算符,分别为:+、-、*、/
其中,使用*表示数学中的乘号,使用/表示数学中的除号
"""
print(3 + 5)    # 8
print(8 - 2)    # 6
print(5 * 6)    # 30
print(2.8 / 4)  # 0.7
"""
2、整数除运算符//
当使用整数运算符//对两个数值进行运算时,运算结果只保留整数部分
整数除运算符//用于计算一个数值是另一个数值的多少倍
"""
print(9 // 4)       # 2
print(5.0 // 2.4)   # 2.0
# 9 = (-4) * (-3) + (-3)
print(9 // -4)  # -3
# -9 = 4 * (-3) + 3
print(-9 // 4)  # -3
# -9 = (-4) * 2 + (-1)
print(-9 // -4# 2
"""三、取余运算符"""
"""
1、什么是取余运算符?
取余运算符用%表示
a % b = a - b * 倍数 = a - b * (a // b) = 余数
也就是说,a对b取余就是计算a最多可以容纳多少个b,多出来的那部分就是余数
"""
# 9 % 4 = 9 - 4 * (9 // 4) = 1
print(9 % 4)        # 1
print(1.25 % 0.5)   # 0.25
# 9 % -4 = 9 - (-4) * (9 // -4)
print(9 % -4)   # -3
print(-9 % 4)   # 3
print(-9 % -4)  # -1
"""四、幂运算符"""
"""
1、什么是幂运算符?
幂运算符用于实用幂运算,用两个星号**表示
内置函数pow也可以实现幂运算
"""
print(3 ** 2)       # 9
print((-3** 2)    # 9
print(pow(32))    # 9
print(pow(-32))   # 9
"""五、布尔运算符"""
"""
1、什么是布尔运算符?
布尔运算符用于对布尔值进行运算,运算结果仍然是一个布尔值
布尔运算符包含如下三个:
(1) and
(2) or
(3) not
"""
"""
2、布尔运算符and
当两个运算数都为True时,运算结果才为True
"""
print(True and True)    # True
print(True and False)   # False
print(False and True)   # False
print(False and False)  # False
"""
3、布尔运算符or
只要有一个运算数为True,运算结果就为True
"""
print(True or True)     # True
print(True or False)    # True
print(False or True)    # True
print(False or False)   # False
"""
4、布尔运算符not
用于对运算符取反
(1) 如果运算数为True,运算结果为False
(2) 如果运算数为False,运算结果为True
"""
print(not True)     # False
print(not False)    # True
"""六、赋值运算符和变量"""
"""
1、什么是赋值运算符以及什么是变量?
赋值运算符用=表示,=的左边是变量,=的右边是对象
在python中,一切皆为对象。变量相当于标签
对于赋值语句:变量 = 对象,相当于给对象贴了一个标签,标签名就是变量名
例如:
对于赋值语句i = 18
python会分配一块内存空间用于存储整数对象18,然后给整数对象18贴上名为i的标签
之后我们就可以通过名为i的标签访问整数对象18
接下来执行赋值语句i = 23
python会再分配一块内存空间用于存储整数对象23
然后相当于把名为i的标签从整数对象18撕下来并贴在整数对象23上
这样,我们就无法再通过名为i的标签访问整数对象18了
接下来执行赋值语句j = i
相当于在整数对象23上又贴了一个名为j的标签
这样,我们既可以通过名为i的标签访问整数对象23,又可以通过名为j的标签访问整数对象23
注意:
在某一时刻,一个标签只能贴在一个对象上,一个对象上可以贴多个标签
变量是没有数据类型的,只有对象才有数据类型
通常情况下,一个变量只引用一种数据类型的对象
"""
= 18
print(i)    # 18
= 23
print(i)    # 23
# 变量i引用了另一种数据类型的对象(不推荐)
= 'Hello'
print(i)    # Hello
"""
2、赋值运算符支持链式赋值
如果想让多个变量同时引用同一个对象,可以使用链式赋值
"""
= = = 18
print(a)    # 18
print(b)    # 18
print(c)    # 18
"""
3、赋值运算符支持参数赋值
可以在赋值运算符的左边添加其它运算符,从而实现参数赋值,例如:+=、-=、*=、/=、%=
a += b 相当于:a = a + b
a -= b 相当于:a = a - b
其余类似,参数赋值可以使代码更加简洁,而且可读性更强
"""
= 3
+= 5
print(a)    # 8
-= 2
print(a)    # 6
*= 8
print(a)    # 48
/= 2
print(a)    # 24.0
//= 5
print(a)    # 4.0
%= 3
print(a)    # 1.0
"""七、比较运算符"""
"""
1、什么是比较运算符?
比较运算符用于比较两个运算数,比较结果是一个布尔值
比较运算符包括如下几个:
(1) <、<=
(2) >、>=
(3) ==
==用于比较两个运算数是否相等,也就是说,==用于"相等性"测试
(4) !=
(5) is
is用于比较两个运算数是否是同一个对象,也就是说,is用于"同一性"测试
(6) is not
"""
print(6 8)        # True
print(6 <= 8)       # True
print(8 6)        # True
print(8 >= 6)       # True
print(8 == 8.0)     # True
print(8 != 8.0)     # False
= = [123]
= [123]
print(a == b)   # True
print(a == c)   # True
print(a is b)   # True
print(a is c)   # False
"""
2、不可变类型对象的is比较
对于不可变类型的对象,其内存可能会被重用,比如数值较小的整数对象
可以调用内置函数id进行验证。内置函数id用于返回对象的唯一标识(对象在内存中的地址)
"""
= 18
= 18
print(id(a))    # 4328201040
print(id(b))    # 4328201040
print(a is b)   # True
"""
3、比较运算符可用于链式比较
"""
age = 18
print(0 < age < 100)    # True
# 以上语句相当于:
# print(0 < age and age < 100)    # True
print(1 == 2 3)   # False
# 以上语句相当于:
# print(1 == 2 and 2 < 3) # False
"""八、运算符的优先级和结合性"""
"""
1、什么是运算符的优先级?
每个运算符都有固定的优先级
当表达式中包含优先级不同的运算符时,高优先级的运算符先以参与运算
例如:运算符*和/的优先级比运算符+和-的优先级高,正所谓"先乘除,后加减"
"""
# *比+的优先级高,*先参与运算
print(2 + 3 * 4)    # 14
"""
2、什么是运算符的结合性?
每个运算符都有固定的结合性
当表达式中包含优先级相同的运算符时,结合性定义了哪个运算符先参与运算
如果运算符的结合性为左,那么左边的运算符先参与运算
例如:2 + 3 - 4,2 + 3会先参与运算
如果运算符的结合性为右,那么右边的运算符先参与运算
例如:a = b = 18,b = 18会先以参与运算
"""
"""
3、正确使用运算符的优先级和结合性
没有必要记忆所有运算符的优先级和结合性
对于包含多个运算符的复杂表达式,其可读性是较低的,为了提高可读性,建议的方法有两种:
(1) 在复杂表达式中使用小括号指定运算顺序
(2) 将复杂表达式拆分成几步来完成
"""
is_has_key = False
is_entered_door = False
is_passed_scan = False
is_know_password = True
# and比or的优先级高,or的结合性是左
print(is_has_key or is_entered_door and is_passed_scan or is_know_password)     # True
# 在复杂表达式中使用小括号指定运算顺序
print((is_has_key or (is_entered_door and is_passed_scan)) or is_know_password) # True
# 将复杂表达式拆分成几步来完成
step1 = is_entered_door and is_passed_scan
step2 = is_has_key or step1
step3 = step2 or is_know_password
print(step3)    # True
"""九、关键字和标识符"""
"""
1、关键字
所谓关键字,就是python语言定义的、具有特殊用途的单词
通过内置函数help()查看所有关键字:
>>> help()
help> keywords
通过导入模块keyword查看所有关键字:
>>> import keyword
>>> keyword.kwlist
"""
"""
2、标识符
所谓标识符,就是给程序中的变量、函数、方法、类等命名的名字
标识符的命名规则(必须这样命名):
(1) 区分大小写
(2) 不能是关键字
(3) 不能以数字开头
(4) 不能包含空格、制表符、数学符号、中划线、箭头等
标识符的命名规范(推荐这样命名):
(1) "见名知意",由一个或多个有意义的单词组合而成
(2) 所有单词全部小写,单词之间用下划线进行分隔
例如:student_name,return_result
"""
= 3
= 5
print(i)    # 3
print(I)    # 5
# 标识符不能是关键字
# True = 8
# 标识符不能以数字开头
# 5i = 18
# 标识符不能包含空格
# i 5 = 18
# 标识符不能包含制表符
# i   5= 18
# 标识符不能包含数学符号
# i+5 = 18
# i*5 = 18
# 标识符不能包含中划线
# i-5 = 18
# 标识符不能包含箭头
# i↑5 = 18
"""十、多个变量同时赋值"""
"""
1、赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量同时赋值
"""
# a, b = [5, 8]
[a, b] = [58]
print(a, b) # 5 8
a, b = 58
# [a, b] = [5, 8]
print(a, b) # 5 8
"""
2、赋值运算符左右两边的元素个数必须是相同的,否则会抛出ValueError
"""
# a, b = 5, 8, 3  # ValueError: too many values to unpack (expected 2)
"""
3、可以在赋值运算符左边的某个变量前添加*,以匹配赋值运算符右边的0个或多个元素
"""
a, *b, c = 1234
print(a, b, c)  # 1 [2, 3] 4
a, b, *= 1234
print(a, b, c)  # 1 2 [3, 4]
*a, b, c = 1234
print(a, b, c)  # [1, 2] 3 4
a, *b, c = 12
print(a, b, c)  # 1 [] 2
"""
4、交换两个变量的值
"""
"""
a = 5
b = 8
temp = a
a = b
b = temp
print(a, b) # 8 5
"""
# 赋值运算符的左右两边都是元组,左边是变量的元组,右边是表达式的元组
# 先将右边的所有表达式都计算完之后,再分别赋值给左边的所有变量
= 5
= 8
a, b = b, a
print(a, b) # 8 5

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK