Python入门(二)运算符
1.算数运算符
案例1:
print(4+3) 结果为7
两个字符串相加,就是拼接功能
print(a+b) 结果为ab
问题: 精度丢失
定义一个a=2.3,b=1.9
print(a+b)
结果:4.199999999999999999999
精度丢失:数值的运算最终是转成二进制的形式,但是小数不好转成二进制
解决:
导入模块
from decimal import Decimal
案例2:
b = Decimal(“1.9”)
c = Decimal(“4.2”)
print(a+b)
结果为:4.2
注2:特殊情况:int类型和bool类型之间自动转换 True 1 False 0
print(int(False)) 结果:1
print(True - False) 1-0=1 ,结果1
3.* / % **【几次幂】 // 【求整】
print("hello"*2) 结果:两个hellohello
print(3 ** 3) 结果: 27
print(25 ** 0.5) 结果:25平方,输出5
print(3 / 2) 结果:1.5
print(3 // 2) 结果:保留整数为1
print(10 % 3) 结果:余数为1
注3:优先级问题
()高于**高于 * / // %高于 + -
案例:
print((2+3)*3**2)
先运行()内的2+3,在运行3**2,最后运行5*9
2.赋值运算符
案例:
a = 2
a += 2 等于 a=a+2
a -= 2 等于 a=a-2
a *= 2 等于 a=a*2
a **= 2 等于 a=a**2
a /= 2 等于 a=a/2
a //= 2 等于 a=a//2
a %= 2 等于 a=a%2
print(a)
2.同时给多个变量进行赋多个值
name, age, gender = "红红", 99, "女"
print(name, age, gender)
3.同时给多个变量赋同一个值
num1 = num2 = num3 = 22
print(num1, num2, num3)
3.比较运算符
输出结果: True或False
print(3 > 2) true
print(3 > True) true 因为True=1,3>1
print(ord(",")) 输出阿四客码
print("," > "b")
print("1" < "2")
print("11" < "2")
print("abc" < "aba")
4.逻辑运算符
java于Python的对比
Java: &(逻辑与) | ! &&(短路与)
3 > 2 & 2 < 3
3 > 2 && 2 < 3
Python: and(与) (or)或 not(非)
print((3 > 2) and (2 < 3))
特殊用法
两个整数之间也可以用逻辑运算符:
and 只要有一个值为0,则结果为0,否则结果为最后一个非0的数字
or 只有所有的值为0结果才为0,否则结果为第一个非0数字
5.位运算符:将左右两边的数字转成二进制
&:按位与 都为1才为1
|:按位或 一个为1就为1
^:按位异或 不一样就为1
print(3 & 2)
print(3 | 2)
print(3 ^ 2)
6.三元运算符
java格式:条件?结果1 :结果2
Python:结果1 if 条件 else 结果2
a = 3
b = 2
print("b大") if a < b else print("a大")
7.条件运算符:if elif else
a = 3
b = 2
if a > b:
print("a大")
else:
print("b大")
结果输入a大
age = int(input("请输入您的年龄:"))
if age < 3:
print("宝宝")
# elif (age >= 3) and (age < 18):
elif 3 <= age < 18:
print("少年")
elif age >= 18:
print("青年")
8.循环语句 while for
终止循环:break continue
while 和 for循环都可以结合else使用
i = 1
while i <= 10:
if i == 5:
# i = i + 1
continue
print(f"i={i}")
i = i + 1
else: #循环正常执行完毕,才会执行else中的内容,强行中止的不算
print("ok")
for i in range(10):
print(i)
else:
print("ok")
9.随机数
num = random.randint(0, 2) #导入模块:import random
print(num)