网站:慕课网,python123
目录
一、程序控制结构
1.单分支结构
2.二分支结构
3.多分支结构
if...elif...else... 注意包含关系
4.条件判断结构
5.程序运行处理
方式一
方式二
6.循环遍历
无限循环while
循环控制保留字break continue
break 用来结束整个循环,循环语句不再有执行的机会;
continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。
(17条消息) Python中break和continue的区别_石头城的博客-优快云博客_pythoncontinue和break
例子:
7. random库
随机函数
可再现以及不可再现问题
当不给种子时,默认的种子是当前调用第一次random函数所对应的系统时间。
种子作用是:下一次再次运行时只要种子相同,产生的随机数也是相同的,起到复现再现随机数的作用。
扩展随机函数
序列随机
二、习题
身体质量指数BMI
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))
圆周率的计算(随机方式)
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
from random import random,seed
DARTS=eval(input())#定义输入的撒点数量
seed(123)#随机种子
hits=0.0#落在1/4圆内点的数量
for i in range(1,DARTS+1):
x,y=random(),random()#随机数生成x,y
dist=pow(x**2+y**2,0.5)#计算半径
if dist<=1.0:#如果撒点位于圆内
hits=hits+1
pi=4*(hits/DARTS)#整个圆中圆内点数量占总撒点数的比例==>π
print("{:.6f}".format(pi))
三位水仙花数
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
方法1——利用数学的思维
s=''
for i in range(100,1000):
a=i//100
b=i%100//10
c=i%10
if a**3+b**3+c**3==i:
s+="{},".format(i)
print(s[:-1])#最后一个“,”删除
方法2——利用字符串
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次用户名或者密码均有误!退出程序。”。
count=0
#使用while进行限制输入的次数
while count<3:
name=input()
pasd=input()
if name=='Kate' and pasd=='666666':#条件满足时
print("登录成功!")
break
else:#当有任何一方不满足时
count+=1
if count==3:
print("3次用户名或者密码均有误!退出程序。")
100以内素数之和
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
sum = 2
for i in range(3,100):
for j in range(2,i):
if i%j == 0:
break
else:
sum += i
print(sum)
#Prime
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False#结束循环
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)