程序的控制结构

 

目录

一、分支结构

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: \033[1;35m {e} \033[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)

 

猜你喜欢

转载自www.cnblogs.com/hanyi12/p/11203020.html