目录
一、分支结构
1、单分支
# if一般用于判断/选择的场景
90以上优秀
score = 95
if score > 90:
print('优秀')
2、双分支
# if...else
# 90以上优秀,90一下良好
#例1
score = 95
if score > 90:
print('优秀')
else:
print('良好')
#例2
score = 75
print('优秀') if score > 90 else print('良好')
# 单分支没有,多分支也没有,这是双分支独有的一种模式;输入在两边,然后if......else的判断语句和判断条件在中间
# 结果一 条件 结果二
3、多分支
## if...elif...elif...else 它的关系是层层递进的先执行if语句,符合if语句的才能执行下面的elif语句,以此类推;
## if...if...if...if 它的的几个判断语句是互不相关的,每个判断语句都得执行,互不干扰;
## 90以上优秀,90-70良好,70以下不及格
#例1
score = 95
if score > 90:
print('优秀')
elif score > 70:
print('良好')
else:
print('及格')
#例2
score = 95
if score > 90:
print('优秀')
if score > 70 and score < 90:
print('良好')
if score < 60:
print('及格')
4、逻辑运算符
## >大于 >=大于等于 <小于 <=小于等于 ==等于 !=不等于
## and 两者都必须成立
## or 其中一个成立即可
## not 非
二、异常处理
#例1
try:
y = input('数字:') # 10
y += 10 # y = y + 10
except Exception as e:#将错误的语句的错误信息当做e
print(f'error: 33[1;35m {e} 33[0m!')#将e用字体改变颜色输出
finally: # 无论包不报错,都会执行finally下面的代码
print(1)
#例2
raise # 自定义报错
s = input('请输入数字:')
if s.isalpha(): # isalpha,如果s为纯字符,则为True,否则为False
raise TypeError('你个傻逼,请输入数字')
# assert 断言()
assert 1==2
三、程序的循环结构
循环用来干什么:干重复的事
1、for循环
# 打印数字0~99
for i in range(100):
print(i)
#将0~4的数字输出,
range(5) # [0,1,2,3,4]
range(1,3) # [1,2]#顾头不顾尾
#输出1,3,5,7,9
range(1,10,2) # [1,3,5,7,9]#(1,10)表示数字1~10,2表示输出的间隔长度
#打印nick
for i in 'nick':
print(i)
2、while循环
#例题案例
# # 周一到周五进步0.01,然后双休日退步0.01,这个怎么计算
# # 5 2 5 2 5 2
# # 7 7 7 7
# # 1 8 15 22 周一 # 除7余1
# # 2 9 16 23 …… 周二 # 除7余2
# # 3 10 17 24 …… 周三
# # 周六 # 除7余6
# # 周日 # 除7余0
factory = 0.01
# base = 1 # 37.78343433288728
# for i in range(365):
# if i % 7 == 0:
# base *= (1-0.01)
# elif i % 7 == 6:
# base *= (1 - 0.01)
# else:
# base *= (1+factory)
#
# # 每天进步0.01得到相同的base
# res = pow(1.01,365)
# print(res)
#例1 (用while语句进行编写)
factory = 0.01
base =0
while base < pow(1.01,365):#判断条件,当符合判断语句条件时,执行下面的语句
factory += 0.001 #这个语句就是factory=factory+0.001
base = 1 # 37.78343433288728
for i in range(365):
if i % 7 == 0:
base *= (1 - 0.01)
elif i % 7 == 6:
base *= (1 - 0.01)
else:
base *= (1 + factory)
print(factory)
# continue + break
#continue的含义
表示继续进行循环运算,但不执行后面的代码
#break的含义
表示终止循环
#例2
count = 0
# while count < 100: # 49
#
# if count == 49:
# count += 1
# continue # 不执行下面代码,继续运行循环
#
# count += 1 # 50
# print(count) # 50
#例3
count = 0
# while count < 100: # 49
#
# if count == 49:
# count += 1
# break # 终止循环
#
# count += 1 # 50
# print(count) # 50
3、if ......else
count = 101
while count < 100: # 49
if count == 49:
count += 1
break # 终止循环
count += 1 # 50
print(count) # 50
else: #正常跳出循环的时候会执行,异常中断不执行
print('打我')
四、random模块
import random
print(random.randint(1,10))# random产生随机数
import time
time_ = time.time()#将time.time赋值给time_
print(str(time_).split('.')[-1][-1])#将time_中的字符串以"."分割开,取最后一个子字符串的最后一个字符。
random.seed(10)#定义随机运算的种子
print(random.random()) # 取(0,1)之间的小数
random.seed(10)
print(random.random()) # 取(0,1)之间的小数
#如果不自定义种子,则种子按照当前的时间来
print(random.random()) # 取(0,1)之间的小数
# print(random.choice([1,1,2,3,4]))
lt = [1,2,3,4]
random.shuffle(lt)
print(lt)
五、圆周率的计算
圆周率的近似计算公式:
#根据圆周率的近似计算公式将其设计成python程序进行计算;
# Π
# pi = 0
# k = 0
# while True:
#
# pi += (1/(16**k))*
# (4/(8*k+1) - 2/(8*k+4) - 1/(8*k+5) - 1/(8*k+6))
#
# print(pi)
# k += 1
# 蒙特卡洛方法求Π
import random
count = 0
for i in range(100000):
x, y = random.random(), random.random()
dist = pow(x ** 2 + y ** 2, 0.5)
if dist < 1:
count += 1
print(count / 100000 * 4)