【跟着慕课网学习python】(4)——循环的控制结构,圆周率的计算,水仙花,100以内素数之和

这篇博客介绍了Python中的程序控制结构,包括单分支、二分支、多分支结构、条件判断、循环遍历以及无限循环。讲解了break和continue在循环中的作用,并探讨了random库的使用,包括随机数生成和种子设置。此外,还提供了几个实践题目,如BMI计算、圆周率的随机计算方法、三位水仙花数的查找以及用户登录验证和100以内素数之和的计算,展示了Python在实际问题解决中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网站:慕课网,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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值