运算符与判断
文章目录
\n 换行符
在print定义时自动在结尾加上了'\n'所以每次打印结束后,会自动换行
# 如果不想让其自动换行, 在字符串输入结束后,使用end = '结束符' 可以修改print打印结束后插入的字符
结束符也可以是空格
# \t 制表符
# %% 输出%
input 输入函数
input函数接收的数据默认为str(字符串模式)
变量类型转换
python中有三个类型的数据
int str float
在变量类型转换中有两个类型
隐式转换
这类转换是不需要人为干预的转换,在较高数据类型和较低的数据类型进行运算时会自动转换为较高的数据类型,这是为了防止数据丢失
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
这种用整数去加减乘除小数,那么结果也会是小数这是为了防止数据丢失
虽然有隐式转换但是字符串是不能和其他类型运算
显式转换
人为的将某个数据类型转换为另一个数据
int 整数
float 小数
str 字符串
算数运算
在算数运算中,运算的优先级按照的是数学的级别
** > * / % //(这四个平级)> + -
先乘除后加减 平方高于乘除
+
## 加法运算
float int bool(布尔)(真。假) 这三种类型可以使用+
## str 类型相加
> str类型相加就相当于字符串拼接
>
> 相加过后不会更改原数据相当与产生了新数据
## list 类型相加
> 列表进行拼接效果类似于extend()函数
> 原数据不产生变化,相当于产生了新的数据
# tuple 和 set 以及 dict 不能相加
—
正常的减法
*
乘法 如果是str类型则是将数据重复指定的次数
/
与数学中的除法是一样的,除法,有商,有余,(不能被整除的时候)
//
// 取商(省略余数)
# 在这个过程中 与 % 配合有特殊作用,可以取到数字类型数据的某个位数据的具体数值
%
% 取余(省略前面的整数)
#可以通过取余的方式来判断某个数据的小数位是不是某个数据(除以10)
num = int(input("请输入数字"))
print( num % 10 == 2)
# 取十位,百位上的数据
num = int(input("请输入数字"))
# 判断个位数是否为2
print(num // 10 % 10 == 2)
先将整个数据除以10取整(相当于删除了该数据的最后一位),再除以10取余,获得该数据十位上的具体数字
**
某个数据的多少平方
如果用的是小数则是开方
总结
+ - * / // ** %
- 同加号一样
* 乘号 遵守数学规则 如果是str类型,就会变成重复该变量指定次数
/ 除号 遵守数学规则
// 取商(省略余数)
% 取余(省略前面的整数)
#可以通过取余的方式来判断某个数据的小数位是不是某个数据(除以10)
num = int(input("请输入数字"))
# 判断个位数是否为2
print( num % 10 == 2)
# 如果要判断十位或者百位的数字为某个数字或者满足某个条件则可以用 //
# 通过 除以10 或者 100 不要余数 则相当于砍掉该数据指定位数 再通过 % 取余 获得个位数
num = int(input("请输入数字"))
# 判断个位数是否为2
print( num % 100 == 2)
print(num // 10 % 10 == 2)
** 次方 (整数则是次方 小数就是开根)
在运算中结果必定是浮点型(浮点类型参与计算后必定是浮点)
运算优先级
在Python中,运算符的优先级如下:
首先是幂运算,例如 ** 。
然后是算术运算,包括加、减、乘、除等,遵循"先乘除后加减"的规则。
接着是位运算,例如 & 、 | 、 ~ 等。
之后是比较运算,例如 == 、 != 、 < 、 > 等。
接下来是逻辑运算,包含 and 、 or 和 not 。
最后是赋值运算,例如 = 、 += , -= , *= , /= 等。
这些运算符按照上述的顺序优先执行。但值得注意的是,Python在处理复杂的表达式时,通常会采用括号来强制改变运算的顺序。
运算优先级
** > * / % //(这四个平级)> + -
先乘除后加减 平方高于乘除
赋值运算符
在给变量赋值的时候可以单个,也可以多个
但是在多个变量赋值的时候,位置要准确不要写错位置,而且数量要准确
# 给多个变量赋值不同的值
a, b, c, d, e = 1, 2, 3, 4, 5
print(a, b, c, d, e)
# 给多个变量赋值相同的值
a = b =c
print(a, b, c )
# 交换变量的值
a = 10
b = 18
a, b = b, a
#在赋值的时候左侧的变量不为空的时候 则将右侧的变量或者数值赋值给该变量
#右侧的变量的值不为空的时候则将右侧的变量赋值给左侧变量
复合赋值运算符
+= 将右侧的值加给左侧
-= 将右侧的值减给左侧
比较运算符
> 大于符号
< 小于符号
= 等于符号
比较判断符
== 判断符,看左右两边是否绝对相等
<= 判断符,看左边是否小于右边
>= 判断符,看左边是否大于左边
!= 判断符,看左边是否与右边为不等
可以使用 两个比较符或者比较判断符来判断一个数据是否在某个区间
判断一个人的年龄是属于什么年龄段
age = int(input("请输入年龄:"))
"""
儿童:0 12
青少年: 13 18
成年: 19 60
老人:
"""
if 0 < age <= 12:
print("你属于儿童")
elif 13 <= age <= 18:
print("你输入少年")
elif 19 <= age <= 60:
print("你属于成年")
else:
print("你输入老年")
逻辑运算符
and 同真才为真(其余为假)
or 两真才为真(其余为假)
not 真变假,假变真
逻辑运算符的运算结果都是bool类型(布尔类型)
# 结论:
# 1.使用in 和not in 被判断的元素在关键字左侧, 数据序列在关键字右侧
# 2.如果想要判断该元素是否在容器内,该元素必须能保存到容器内,比如集合不能保存列表,字典,集合 所以就不能判断其类型的元素是否在集合内
# 3.字典判断的是元素是否在keys内,也就是是否是其中的键
in 和 not in
大部分与加法运算相同,唯一不同的是 这里可以使用 在dict里面
这是如果使用则是判断当前元素是否为dict中的key
在使用 in 或者 not in 的时候 数据元素在左边(需要判断的元素), 列表或者其他数据序列在他的右侧
判断完毕后返回的数据是 bool 类型
短路运算
# 数值类型中非零为真
# 容器类型中非空为真
none(空) 代表false(假)但不为bool类型
# 当两个比较方不同时为bool类型时
and :选左边 多个时选最右边
or:选非bool
# 同时为非bool时
and:选右边 多个时选最右边
or:选左边 多个时选最右边
not in
大部分与加法运算相同,唯一不同的是 这里可以使用 在dict里面
这是如果使用则是判断当前元素是否为dict中的key
在使用 in 或者 not in 的时候 数据元素在左边(需要判断的元素), 列表或者其他数据序列在他的右侧
判断完毕后返回的数据是 bool 类型
短路运算
# 数值类型中非零为真
# 容器类型中非空为真
none(空) 代表false(假)但不为bool类型
# 当两个比较方不同时为bool类型时
and :选左边 多个时选最右边
or:选非bool
# 同时为非bool时
and:选右边 多个时选最右边
or:选左边 多个时选最右边