【2023】某python语言程序设计跟学第四周内容

【2023】某python语言程序设计跟学第四周内容_第1张图片

目录

  • 1.程序的分支结构
    • 1.1.单分支结构
    • 1.2.二分支结构
    • 1.3.多分支结构
    • 1.4.条件判断与组合
    • 1.5.异常处理
  • 2.实例:身体质量指数BMI
  • 3.程序的循环结构
    • 3.1.遍历循环
    • 3.2.无限循环
    • 3.3.循环控制保留字
    • 3.4.循环高级用法
  • 4.random库基本使用
    • 4.1.基本随机数函数
    • 4.2.扩展随机数函数
  • 5.实例:圆周率计算
  • 6.相关链接

1.程序的分支结构

1.1.单分支结构

如果判断成立,则执行

语法:

if <条件>:
    <语句块>

示例:

guess = evel(input())
if guess == 99:
    print("猜对了")

如果guess等于99,那么输入”猜对了“

1.2.二分支结构

根据判断条件结果而选择不同向前路径的运行方式

语法:

if <条件>:
  <语句块1>
else :
  <语句块2>

示例:

guess = eval(input())

if guess == 99:
    print("猜对了")
else:
    print("猜错了")

如果输入的数字等于99,则输出猜对了,否则输出猜错了

紧凑形式:适用于简单的表达式的二分支结构

语法:

<表达式1> if <条件> else <表达式2>

示例:

guess = eval(input())

print("猜{}了".format("对" if guess==99 else "错"))

1.3.多分支结构

根据多个条件来选择不同语句块运行的一种分支结构

语法:

if <条件>:
  <语句块1>
elif:
  <语句块2>
  ... ...
else:
  <语句块3>

示例:

score = eval(input())

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "不及格"
print("请输入成绩属于级别{}".format(grade))
  • else:在不发生异常时执行
  • finally:一定执行

1.4.条件判断与组合

操作符:

  • “>”:大于
  • “<”:小于
  • “==”:等于
  • “>=”:大于等于
  • “<=”:小于等于
  • “!=”:不等于

与数学符号类似

条件组合:

  • “and”:与
  • “or”:或
  • “not”:非

1.5.异常处理

语法:

try :
  <语句1>
except :
  <语句2>

2.实例:身体质量指数BMI

BMI是国际常用的衡量人体肥胖与健康程度的重要标准

公式:BMI = 体重kg / 身高m²

代码:

height = float(input("请输入您的身高(单位:米):"))
weight = float(input("请输入您的体重(单位:千克):"))

bmi = weight / (height ** 2)

print("您的BMI指数为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
    who = "偏瘦"
elif 18.5 <= bmi < 24:
    who = "正常"
elif 24 <= bmi < 28:
    who = "偏胖"
elif 28 <= bmi < 30:
    who = "肥胖"
else:
    who = "输入错误"
print("BMI指数为:{0}".format(who))

结果:

请输入您的身高(单位:米):1.7
请输入您的体重(单位:千克):67
您的BMI指数为:23.18
BMI指数为:正常

3.程序的循环结构

程序循环内容分为:

  • 遍历循环
  • 无限循环
  • 循环控制保留字
  • 循环的高级用法

3.1.遍历循环

语法:

for <循环变量> in <遍历结构>:
    <语句块>
  • 从遍历结构中逐一提取元素,放在循环变量中
  • 由保留字for和in组成,完整遍历所有元素后结束
  • 每次循环,所获得元素放入循环变量,并执行一次语句块

计数循环:

for i in range(N):
    <语句块>

把语句块内容执行N次

for i in range(M,N,K):
    <语句块>

特定次:

示例:

for i in range(1,5):
    print(i)
1
2
3
4
for i in range(1,6,2):
    print(i)
1
3
5

列表遍历循环:

for item in ls:
    <语句块>

ls是一个列表,遍历其每个元素,产生循环

示例:

for item in [123, "python", 456]:
    print(item, end=",")

123,python,456,

文件遍历循环:

for line in fi:
    <语句块>

fi是一个文件,会循环文件中的每一行

3.2.无限循环

由条件控制的循环运行方式

语法:

while <条件>:
    <语句块>
  • 反复执行语句块,直到条件不满足为止

3.3.循环控制保留字

break和continue

  • break:跳出并结束当前整个循环,执行循环后语句
  • continue:结束当次循环,继续执行后续次数循环

示例:continue

for i in "python":
    if i == "t":
        continue
    print(i, end="")
   
# 结果没有t   
pyhon

示例:break

for i in "python":
    if i == "t":
        break
    print(i, end="")
    
# 遇到t结束
py

示例:while

s = "python"

while s != "":
    for c in s:
        print(c, end="")
    s = s[:-1]
# 结果依次少1位
pythonpythopythpytpyp

# 加上break
s = "python"

while s != "":
    for c in s:
        if c == "t":
            break
        print(c, end="")
s = s[:-1]
# 结果
pypypypypypypypypy

3.4.循环高级用法

循环与else结合

语法:

for <循环变量> in <遍历结构>:
    <语句块1>
else:
    <语句块2>

示例:

for c in "python":
    if c == "t":
        break
    print(c, end="")
else:
    print("正常退出")
# 结果
py

4.random库基本使用

random是使用随机数的python标准库

伪随机数:采用梅森旋转算法生成的伪随机序列中元素

random用于生成随机数

使用import random导入

random包括两类函数:

  • 基本随机数函数:seed(),random()
  • 扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()

4.1.基本随机数函数

  • seed:初始化给定的随机数种子
  • random:生成一个0.0-1.0之间的随机小数

示例:

import random

random.seed(10)
print(random.random())
# 结果
0.5714025946899135

4.2.扩展随机数函数

  • randint(a, b):生成一个[a,b]之间的整数
  • randrange(m, n[, k]):生成一个从[m, n]之间以k为步长的随机整数
  • getrandbits(k):生成一个以k比特长的随机整数
  • uniform(a, b):生成一个随机小数
  • choice(seq):从序列seq中随机选择一个元素
  • shuffle(seq):将序列seq中元素打乱排序,输出排序后结果

5.实例:圆周率计算

代码:公式法

pi = 0
N = 100
for k in range(N):
    pi += 1/pow(16,k)*( \
              4/(8*k+1) - 2/(8*k+4) - \
              1/(8*k+5) - 1/(8*k+6) ) 
print("圆周率值是: {}".format(pi))

代码:蒙特卡罗方法

from random import random
from time import perf_counter
DARTS = 1000*1000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS+1):
    x, y = random(), random()
    dist = pow(x ** 2 + y ** 2, 0.5)
    if dist <= 1.0:
        hits = hits + 1
pi = 4 * (hits/DARTS)
print("圆周率值是: {}".format(pi))
print("运行时间是: {:.5f}s".format(perf_counter() - start))

6.相关链接

【2023】某python语言程序设计跟学第一周内容

【2023】某python语言程序设计跟学第二周内容

【2023】某python语言程序设计跟学第三周内容

你可能感兴趣的:(一步一步学Python,python,开发语言)