一、运算符
(一)比较运算符
- 符号:> 、< 、== 、!= (不等于)、 >= 、<=
- Python中比较大小是同类型数据之间比较大小、比较大小得到的结果是布尔值
为什么python能够比较大小?
原因:Python使用的编码值叫万国码:unicode,是ASCII编码的拓展
-
数字0-9对应的十进制编码值为:48-57
-
A-Z对应的十进制编码为:65-90
-
a-z对应的编码值为:97-122
由一个例题来解释:判断年份是否是闰年
只有当条件满足的时候才会为True
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)
(三)逻辑运算符
符号:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算) -->结果均为布尔值
1. and:条件1 and 条件2,条件1和条件2都成立时,整体条件成立,反之不成立
中断:and左边条件不成立时,and右边条件无需再判断
2. or:条件1 or 条件2,一个条件成立则整体成立,都不成立则整体不成立
中断:or左边成立时,则无需判断右边条件
3. not - 非,取反,反义词
例题:判断年份是否为闰年
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)
(四)运算符优先级
- 先算小括号整体
- 算数运算符:*大于、/、%、//大于+、-
- 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
一定要记清楚优先级,否则会导致运算错误
练习1:华氏度和摄氏度的转换:C = (F - 32)/1.8
round(参数1,参数2) —> 参数1等于数值,参数2需要保留的小数位数
F = 75
C = round((F - 32) / 1.8, 1)
print(f'华氏度{F}等于摄氏度{C}')
练习2:根据指定的圆的半径,计算圆的周长和面积
r = 3
pi = 3.14
c = 2 * pi * r
s = pi * r ** 2
print(f'半径为{r}的圆的周长为{c},面积为{s}')
二、简单数据类型转换
数字、布尔值的数据类型转换
(一)布尔值转换
所有的数据都可以转换为布尔值(bool)—>bool()
print(bool(0), bool(1), bool(-1))
0转换为False,非0全为True。 所有的空值对象全是False
( X )除字典类型外,所有标准对象均可以⽤于布尔测试。
( ✔ )所有标准对象均可以⽤于布尔测试。
(二)数字转换
- 整型(int)—> int()
a. 布尔值可以转换成整型:False --> 0,True --> 1
b. 浮点型转换成整型:向小取整
c. 去掉引号是一个整数的字符串可以转换成整型
具体示例:
print(int(bool(100)))
print(int(0.1))
print(int(.1)) # 默认为0.1
print(int(1.)) # 默认为1.0
print(int('1'))
print(int(‘1.0’)) —>会报错,原因:1.0不是整型
-
浮点型(float) —> float()
a. 整型转浮点型
b. 去掉引号是数字的字符串可以转换成浮点型
c. 布尔值可以转换成浮点型 —>False:0.0 ; True:1.0
具体示例:
print(float(1))
print(float('.9'))
print(float('9.'))
print(float('9.9'))
bool()、int()、float()、str()、list()等 —>构造器语法
三、分支结构
分支结构关键词:if、else、elif
如果没有需要执行的写pass完整程序
(一)单分支结构:if、else
单分支结构语法:
if 条件:
代码段1
else:
代码段2
缩进:一般把缩进看做四个空格,一个程序的缩进必须保持一致。(若不一致会导致运行错误)
举例:
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误
练习1:账号密码登录
username = input('请输入用户名:')
password = input('请输入密码:')
if username == 'admin' and password == '123456':
print('登录成功')
else:
print('登录失败')
练习2:判断一个年份是否是闰年
year = int(input('请输入一个年份:'))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(f'{year}是闰年')
else:
print(f'{year}不是闰年')
练习3:输入三条边长,如果能构成三角形就计算周长和面积。
a = float(input('请输入第一个边长:'))
b = float(input('请输入第二个边长:'))
c = float(input('请输入第三个边长:'))
C = a + b + c
s = 0.5 * C
S = (s * (s - a) * (s - b) * (s - c)) ** 0.5
if (a + b > c and a + c > b) and b + c > a:
print(f'三角形的周长为{C},面积为{round(S, 2)}') # round 保留小数位数
else:
print('不能构成三角形')
(二)多分支结构:if、elif、else
多分支结构语法:当有多个条件的时候使用
elif 可以多次出现,没有限制
if 条件1:
代码段1
elif 条件2:
代码段2
......
else:
代码段N
用多分支结构来做上述练习2
if year % 4 == 0 and year % 100 != 0:
print(f'{year}是闰年')
elif year % 400 == 0:
print(f'{year}是闰年')
else:
print(f'{year}不是闰年')
举例:百分制成绩转换为等级制成绩。
要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
num = float(input('请输入成绩:'))
if num >= 90:
print('等级制成绩为:A')
elif num >= 80:
print('等级制成绩为:B')
elif num >= 70:
print('等级制成绩为:C')
elif num >= 60:
print('等级制成绩为:B')
else:
print('等级制成绩为:E')
在这里因为elif执行的前提是前面的条件已经不满足,所以不用按照如下的写法来增加警告
elif num >= 80 and num < 90: # 这样写会有下划线警告
举例:英制单位英寸和公制单位厘米互换。 注意:厘米=英寸/2.54
num = float(input('请输入值:'))
unit = input('请输入单位:')
if unit == 'cm' or unit == '厘米':
print(f'{num}{unit}={num * 2.54}in')
print(f'公制单位为厘米,值为{num},转换为英制单位英尺,值为{num * 2.54}')
elif unit == 'in' or unit == '英寸':
print(f'{num}{unit}={num / 2.54}cm')
print(f'英制单位为英尺,值为{num},转换为公制单位厘米,值为{num / 2.54}')
else:
print('单位无效')
(三)嵌套分支
嵌套分支语法:总的来说就是在一个条件满足的情况下,进行进一步的筛选,符合进一步条件的按照要求输出
实例:判断一个数字是否是偶数,如果是偶数,再判断其是否是三的倍数
randint(a,b) – a < b,randint能够生成[a,b]范围的随机整数。随机模块:random
from random import randint
num = randint(0, 100)
print(num)
if num % 2 == 0:
print('偶数')
if num % 3 == 0:
print('是3的倍数')
else:
print('奇数')
(四)三目运算符语法
形式: 变量 = ‘结果1’ if 条件 else ‘结果2’
条件成立,结果为结果1,反正为结果2
举例:是否成年
age = int(input('请输入年龄:'))
result = '成年' if age >= 18 else '未成年'
print(result)