python中支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算(了解)
*
(乘法运算)、/(除法运算)、%(取余、取模)、//(整除)、**
(幂运算)+、-、、/和数学中的功能一模一样
% - 取余、取模(数学中的求余数): x % y - 求x除以y的余数
num = int(input('情书入一个数:'))
print(num % 3)
print(231 % 10)
// —— 整除(商取整): x // y —— x除以y的商向小取整
print(5 // 2)
print(-5 // 2)
print(2345 // 100)
num1 = int(input('请输入一个大于100的整数:'))
print(num1 // 100 % 10)
print(num1 % 1000 //100)
** —— 幂运算 :x**y ->求x的y次方
print(2 ** 3)
print(3 ** 3)
print(4 ** 0.5)
print(8 ** (1/3))
比较运算符:>、<、>=、<=、==、!=
所有的比较运算符的运算结果都是布尔值
注意:Python中的比较运算符支持连写的方式表示取值范围
age = 24
print(18 <= age <= 28)
逻辑运算符:and(与)、or(或)、not(非)
and —— 逻辑与
应用场景:相当于生活中的‘并且’,当需要多个条件同时满足的时候使用
运算规则:都是True结果就是True,只要有一个是False结果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False
练习:写出一个数是否能够同时被3和7整除的条件
num2 = int(input('请输入一个数:'))
print('是否能同时被3和7整除:',num2 % 3 == 0 and num2 % 7 == 0 )
or —— 逻辑或运算
应用场景:相当于生活中的‘或者’,需要多个条件中只要有一个条件满足的时候使用
运算规则:都是False结果才是False,只要有一个是True结果就是True
练习:写出判断闰年的条件
years = int(input('输入年份:'))
print('是否是闰年:', (years % 4 == 0 and years % 100 != 0) or years % 400 == 0)
not —— 逻辑非运算
应用场景: 对某一个条件进行否定
运算规则: True变False,False变True
练习:写出不能同时被3和7整除的条件
print(not num2 % 21 == 0)
短路操作
and 的短路操作:条件1 and 条件2 ——如果是条件1是False,条件2不会执行
or 的短路操作:条件1 or 条件2 ——如果条件1是True,条件2不会执行
False and print('====')
True and print('+++')
运算对象不是布尔值
实际开发的时候逻辑运算符的运算对象和运算结果一般都是布尔值,但是面试的时候喜欢考 运算对象不是布尔得情况
表达式1 and 表达式2 - 如果表达式1的结果是True,那么运算结果就是表达式2的值;
如果表达式1的结果是False,那么运算结果是表达式1的值
表达式1 or 表达式2 - 如果表达式1的结果是False,那么运算结果就是表达式2的值
如果表达式1的结果是True,那么运算结果就是表达式1的值
注意:如果表达式的值不是布尔,就转换成布尔再判断
怎么转:python中任何类型的数据都可以转换成布尔值,所有为0为空的值都会转换成 False,其他的值都是True
布尔值的转换
print(bool(0))
print(bool(100),bool(-1000))
print(bool(''),bool(""))
print(bool(' '),bool('False'))
赋值运算符:=、+=、-=、/=、%=、//=、**=
所有的赋值运算符都是用来给变量赋值,赋值运算符的左边必须是变量;
复合的赋值运算符左边的变量必须是已经赋值过的变量。
=
a = 10
复合的赋值运算符
a += 3
运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
数学运算符:** > * 、/、%、// > +、-
逻辑运算符:and > or
如果有括号先算括号里面的内容
*位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(左移)
位运算的运算效率比一般的运算符都要高(高出几十倍到几百倍)
print(28 & 1, 10 & 1, 102 & 1, -20 & 1)
print(11 & 1, 9 & 1, -23 & 1, 1005 & 1)
应用2:
数字 << N —— 快速乘 2**N
数字 >> N —— 快速整除 2**N
数字 << 1 —— 快速乘2:数字*2
数字 >> 1 —— 快速整除2:数字//2
print(4 << 1, 5 << 1, 5 << 2)
print(4 >> 1, 5 >> 1, -5 >> 1)
流程控制
分支结构
a = int(input('请输入一个数:'))
if a == 10:print('hello')
练习:输入一个整数,如果是偶数就打印"这个数能被2整除"
num = int(input('请输入一个数:'))
if num & 1 == 0:print('这个数能被2整除')
if双分支结构 —— 满足条件执行某个操作,条件不满足执行另一个操作
练习1:判断奇偶
num1 = int(input('请输入一个数:'))
if num1 & 1:print('奇数')
else:print('偶数')
练习2:判断成年
age = int(input('请输入年龄'))
if age >= 18:print('成年')
else:print('为成年')
if多分支结构 —— 根据不同的条件执行不同的操作
练习:输入学生绩点,判断该学生能获得的奖学金等级
1等奖 绩点 > 4; 二等奖 3.5 < 绩点 < 4 ; 3等奖 3 <= 绩点 < 3.5 ; 2.5 <= 绩点 ❤️
grade = float(input('请输入绩点:'))
if grade > 4:print('一等奖')
elif grade >= 3.5:print('二等奖')
elif grade >= 3:print('三等奖')
elif grade >= 2.5:print('四等奖')
else:print('没有奖')
本文发布于:2024-02-02 18:13:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686939845549.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |