运算符、条件结构、循环结构
运算符
算术运算符 + - * / % **【几次幂】 // 【求整】
- 两个数值相加,求加法
注1:小数的+ - * /存在精度丢失问题
精度丢失:数值的运算最终是转成二进制的形式,但是小数不好转成二进制
案例:
a = Decimal("2.3") #导入模块:from decimal import Decimal
b = Decimal("1.9")
c = Decimal("4.2")
print( (a+b) == c) # 精度丢失问题
注2:特殊情况:int类型和bool类型之间自动转换 True 1 False 0
print(int(False))
print(True - False)
- 两个字符串相加,就是拼接功能
* / % **【几次幂】 // 【求整】
print("hello"*2)
print(3 ** 3)
print(25 ** 0.5) #开跟
print(3 / 2) #跟java不同,java是取整
print(3 // 2)
print(10 % 3)
注3:优先级问题
()高于**高于 * / // %高于 + -
print(2 ** 2 * 3)
print(3 * 2 ** 2)
赋值运算符
- 相比java 多了** //
a = 2
a += 2
a -= 2
a *= 2
a **= 2
a /= 2
a //= 2
a %= 2
print(a)
- 同时给多个变量进行赋多个值
name, age, gender = "红红", 99, "女"
print(name, age, gender)
- 同时给多个变量赋同一个值
#java num1,num2,num3 = 22
num1 = num2 = num3 = 22
print(num1, num2, num3)
比较运算符:结果: True False
print(3 > 2)
print(3 > True)
print(ord(",")) #ascii码
print("," > "b") #两个字符串只会比较第一位
print("1" < "2")
print("11" < "2")
print("abc" < "aba")
逻辑运算符
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数字
print(3 and 5)
print(0 or 0)
位运算符:将左右两边的数字转成二进制
&:按位与 都为1才为1
|:按位或 一个为1就为1
^:按位异或 不一样就为1
print(3 & 2)
print(3 | 2)
print(3 ^ 2)
三元运算符
java格式:条件?结果1 :结果2
Python:结果1 if 条件 else 结果2
a = 3
b = 2
print("b大") if a < b else print("a大")
条件结构
- 条件运算符:if elif else
a = 3
b = 2
if a > b:
print("a大")
else:
print("b大")
age = int(input("请输入您的年龄:"))
if age < 3:
print("宝宝")
# elif (age >= 3) and (age < 18):
elif 3 <= age < 18:
print("少年")
elif age >= 18:
print("青年")
循环结构
- 循环语句 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")
随机数
num = random.randint(0, 2) #导入模块:import random
print(num)
完整代码
from decimal import Decimal
import random
# print(4+5)
# print("a"+"b")
# a=2.3
# b=1.9
# print(a+b)
# c=4.2
# print((a+b)==c)
#
# a = Decimal("2.3")
# b = Decimal("1.9")
# print(a+b)
# print(3/2) #跟数学一样
# print(3//2) #求整
# print(17 % 3) #求余
# print(4**3) #4*4*4 几次幂
# print(16**0.5) #开平方
#
# print("hello"*2)
#
# print(True)
# print(int(True))
# print(True - False)
#
# print(2 ** 2 * 3)
# print(3 * 2 ** 2)
#a = 2
# a += 2
# a -= 2
# a *= 2
# a **= 2
# a /= 2
# a //= 2
# a %= 2
# print(a)
# name, age, gender = "红红", 99, "女"
# print(name)
# print(age)
# print(gender)
# num1 = num2 = num3 = 22
# print(num1, num2, num3)
# print(3 > 2)
# print(3 > True)
# print(ord(",")) #ascii码
# print("," > "b") #两个字符串只会比较第一位
# print("1" < "2")
# print("11" < "2")
# print("abc" < "aba")
# print((3 > 2) and (2 < 3))
# print(3 and 5)
# print(0 and 5)
# print(7 or 0)
# print(0 or 0)
# print(3 & 2) # 1&1=1 1&0=0 0&1=0 0&0=0
# print(3 | 2) # 1|1=1 1|0=1 0|1=1 0|0=0
# print(3 ^ 2) # 1^1=0 1^0=1 0^1=1 0^0=0
# a = 3
# b = 2
# print("b大") if a < b else print("a大")
# a = 3
# b = 2
# if a > b:
# print("a大")
# else:
# print("b大")
# age = int(input("请输入您的年龄:"))
# if age < 3:
# print("宝宝")
# # elif (age >= 3) and (age < 18):
# elif 3 <= age < 18:
# print("少年")
# elif age >= 18:
# print("青年")
# 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")
# num = random.randint(3,9)
# print(num)