常见运算符
算数运算符
+(加), -(减), *(乘), /(除), //(整除), **(幂运算), %(取余,模运算)
a=20
b=2
print(a+b)
print(a-b)
print(a*b)
python中除法运算得到的结果永远是浮点数
print(a/b)
整除:将除法运算的结果去掉小数部分(向小取整:获取小于等于N的最大整数)
print(10 // 2)
print(10 // 3)
print(10 // 4)
%:取余
print(10 % 3)
幂运算:幂运算开N次方结果永远为浮点型
sqrt():开平方,sqrt必须从math数学模块中导入,只要程序导入模块,必然会对性能产生影响
print(10 ** 2)
print(100 ** 0.5)
比较运算符
(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、==(等等于)、!=(不等于)
比较运算结果为布尔值True、False
10 == 10.0,数值相等数据类型不相等(只指代整型和浮点型),结果为True
a = 10
b = 2
print(a > b)
print(a >= b)
print(a != b)
print(10 == 10.0)
print(10 == '10')
逻辑运算符
and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
and用法:
条件1 and 条件2,判断两个条件是否都成立,两者都成立,结果为True,反之,结果为False;
中断操作:如果条件1为False,不需要再判断条件2,整体为False。
print(3 > 2 and 2 != 1)
print((3 > 2 and 2 != 1) and 2 == 2 and 1 == 0)
print(True and True)
print(True and False, False and True, False and False)
or用法:
条件1 or 条件2,判断两个条件中是否存在成立条件,两个条件都不成立结果为False,反之为True。
中断操作:如果条件1为True,不需要再判断条件2,整体为True。
单独的数字也能作为条件,0代表False,非0代表True
print(3 > 2 or 2 != 2)
print(3 < 2 or 0)
not:取反
print(not True)结果为False
练习:判断一个年份是否是闰年。
条件:年份能够被4整除但是不能被100整除,或者年份能被400整除。
地球公转365天5小时40分钟,每过四年约等于多1天,每过400年多加3天,从第100、200、300年各减掉一天。
year = 2022
print((y%4==0 and y%100!=0 )or y%400==0) 结果为False
赋值运算符
+=(加等于)、-=(减等于)、*=(乘等于)、/=(除等于)、//=(整除等于)、**=(幂运算等于)、%=(取余等于)
作用:给一个已经存在的变量赋值
x = 100
x += 2 # 等价于x = x + 2
x *= 2
x //= 4
print(x)
成员运算符
复合运算符
x = 100
x += 2 # 等价于x = x + 2
x *= 2
x //= 4
print(x)
运算符优先级
A.算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
B.有小括号先算小括号的
C.** > *、/、//、% > +、-
练习:给定一个半径r,计算圆的面积和周长。
import math
print(math.pi)
r=3 或者r=float(input('输入一个半径:'))
s=round(math.pi*r**2,2)
l=round(2*math.pi*2,2)
print(s)
print(l)
round(数值,小数位数),四舍五入将数值保留指定小数位数,若数值的小数位数不够,不做修改。
结果
3.141592653589793
28.271
12.57
数据类型转换
注意:所有数据类型后面添加小括号(),能够变成数据类型转换方法——构造器语法
一、整型(int):什么样的数据能够转换成整型?
-
浮点型
print(int(1.9),int(2.0))
结果为1 2
-
去掉引号把一个整数的字符串转换成整型
print(int('123'),type(int('123')))
print(int('12.3')) # ValueError: invalid literal for int() with base 10: '12.3'
-
布尔值转整数型 True–>1,False–>0
print(int(True), int(False))
二、浮点型(float):什么样的数据能够转换成浮点型?
- 整型
print(float(10))
- 去掉引号将一个数字的字符串转换成浮点型
print(float('1.0'))
- 布尔值 True–>1.0,False–>0.0
print(float(True),float(False))
三、布尔(bool):什么数据能够转换成布尔值?
所有数据都可以转换成为布尔值
0, 0.0 ,None ,’ ’ ," " ,[] ,{}(字典) ,() ,set()集合 转为False,其余数据转为True
并不是所有数据类型都可以相互转换
分支结构
能够使程序在某个节点做选择
使用到python系统关键字:if else elif
userName=input('请输入账号:')
password=input('请输入密码:')
if userName=='admin' and password =='123456':
print('登录成功')
else:
print('账号或密码错误')
单分支结构
'''
语法:
if 条件:
代码块
else:
代码块
'''
练习:
判断一个年份是否是闰年,是返回闰年,否返回平年
y=int(input('请输入一个年份:'))
if (y%4==0 and y%100!=0) or y%400==0 :
print(y,'是闰年')
else:
print(y,'是平年')
多分支结构
year=2000
if year % 4 == 0 and year % 100 !=0:
print('闰年')
elif year %400 ==0:
print('闰年')
else:
print('平年')
语法:
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
else:
代码块
else合适的条件下可以不写。
练习:
有一个成绩,如果成绩大于等于90,为等级A;大于等于80,为等级B,大于等于70,为等级C,大于等于60为等级D,反之为等级E。
方法一(推荐)
此方法,成绩必须要有顺序的写,程序只会自上而下的执行
score=float(input('输入你的成绩:'))
if score>=90:
print('等级A')
elif score>=80:
print('等级B')
elif score>=70:
print('等级C')
elif score>=60:
print('等级D')
else:
print('等级E')
方法二
scroe = 66
if scroe >= 90:
print('A')
elif 60 <= scroe < 70:
print('D')
elif 70 <= scroe < 80:
print('C')
elif scroe >= 80 and scroe < 90:
print('B')
else:
print('E')
嵌套分支
单分支和多分支可以相互嵌套
练习:
有一个整数,判断是不是2的倍数,如果是2的倍数,再判断是否是3的倍数
number=10
if number %2 ==0:
print('是2的倍数')
if number %3==0:
print('是3的倍数')
else:
print('不是2的倍数')
三目运算符
语法:
结果1 if 条件 else 结果2
如果条件成立结果为结果1,否则为结果2
注意:并不是所有单分支结构都能转换成三目运算符
age=18
if age >=18:
print('成年')
else:
print('未成年')
将上方代码转换成三目运算符,如下:
result='成年' if age >= 18 else '未成年'
print(result)
三目运算符使代码看起来更简洁清晰