- 本文是网课:Python语言程序设计国家精品——(北京理工大学 嵩天 、 黄天羽 、 礼欣)的学习笔记。
目录
4.1 程序的分支结构
4.2 实例5: 身体质量指数BMI
4.3 程序的循环结构
4.4 模块3: random库的使用
4.5 实例6: 圆周率的计算
练习
注意:if与else对应的输出不是语句而是表达式。(表达式是语句的一部分)
代码:
#CalBMIv1.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
who = "偏瘦"
elif 18.5 <= bmi < 25:
who = "正常"
elif 25 <= bmi < 30:
who = "偏胖"
else:
who = "肥胖"
print("BMI 指标为:国际'{0}'".format(who))
#CalBMIv2.py
height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
nat = ""
if bmi < 18.5:
nat = "偏瘦"
elif 18.5 <= bmi < 24:
nat = "正常"
elif 24 <= bmi < 28:
nat = "偏胖"
else:
nat = "肥胖"
print("BMI 指标为:国内'{0}'".format(nat))
#CalBMIv3.py
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
who, nat = "", ""
if bmi < 18.5:
who, nat = "偏瘦", "偏瘦"
elif 18.5 <= bmi < 24:
who, nat = "正常", "正常"
elif 24 <= bmi < 25:
who, nat = "正常", "偏胖"
elif 25 <= bmi < 28:
who, nat = "偏胖", "偏胖"
elif 28 <= bmi < 30:
who, nat = "偏胖", "肥胖"
else:
who, nat = "肥胖", "肥胖"
print("BMI 指标为:国际'{0}', 国内'{1}'".format(who, nat))
计数循环:
for in range(N):
<语句块>
for in range(N,M,K):
<语句块>
字符串遍历循环:
列表遍历循环
文件遍历循环
用Python函数将系统文件打开,标识为文件标识符。
程序死循环时用Ctrl+C退出程序运行。
标准库,Python解释器自带的库,不需要安装,import即可使用。
随机序列由随机种子唯一确定。
之所以可以手动设种子是为了使程序可以再现随机过程。
可以在一行中写多条Python语句,但它们之间要用","分开。
pi = 0
N = 100
for k in range(N):
#pi+=1.0/pow(16.0,k)*(4.0/(8.0*k+1)-2.0/(8.0*k+4.0)-1.0/(8.0*k+5.0)-1.0/(8.0*k+6.0))
pi+=1.0/pow(16.0,k)* \
(4.0/(8.0*k+1)-2.0/(8.0*k+4.0)- \
1.0/(8.0*k+5.0)-1.0/(8.0*k+6.0))
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+=1
pi = 4.0 * (hits/DARTS)
print("圆周率的值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))
编写程序计算如下数列的值:
1-2+3-4...966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
该题目没有输入。
输入 | 输出 | |
示例 1 | |
|
我的代码:
f = 1 #f用来记录正负号
ans = 0
for i in range(1,967):
ans+=f*i
f=f*-1
print(ans)
题解代码:
s = 0
count = 1
while count <=966:
if count%2 == 0:
s -= count
else:
s += count
count += 1
print(s)
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
输出仅表示格式,不表示对错。
输入 | 输出 | |
示例 1 | |
|
我的代码:
ans = ""
for i in range(100,1000):
a=round(i//100)
b=round((i//10)%10)
c=round(i%10)
#print(i,a,b,c,a*a*a+b*b*b+c*c*c)
if (a*a*a + b*b*b + c*c*c) == i :
ans+="{},".format(str(i))
print(ans[:-1])
题解代码:
s = ""
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
s += "{},".format(i)
print(s[:-1])
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
输入 | 输出 | |
示例 1 | |
|
|
|
我的代码:
flag=0
for chance in range(3):
name = input()
psw = input()
if name=="Kate" and psw=="666666":
flag=1
break
if flag==1:
print("登录成功!")
else:
print("3次用户名或者密码均有误!退出程序。")
题解代码:
count = 0
while count < 3:
name = input()
password = input()
if name == 'Kate'and password == '666666':
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")