当前位置: 首页 > news >正文

python习题2

1、输出一个年份,判断其是不是闰年
#输入一个年份,判断其是否是闰年
y = eval(input())
if y%4 ==0 and y%100 != 0:print("是")
elif y%400==0:print("是")
else:print("不是")
2、模拟智能客服:

按1查询账户余额;按2查询你的账户等级;按3为你查询快递;按4为你办理会员卡;按8转人工;按0退出

#模拟智能客服:按1查询账户余额;按2查询你的账户等级;按3为你查询快递;按4为你办理会员卡;按8转人工;按0退出
print("---------------welcome---------------")
print("按1查询账户余额")
print("按2查询你的账户等级")
print("按3为你查询快递")
print("按4为你办理会员卡")
print("按8转人工")
print("按0退出")
x = eval(input())
while x!=0:match x:case 1:print("你当前的账户余额为:100元")case 2:print("你的账户等级为:3级")case 3:print("你当前的在途快递有:1件")case 4:print("确定需要办理会员卡吗(Y/N)")s = input()if s=="Y"or'y':print("已经为你办理会员卡")elif s=='N'or'n':print("好的,回到上级选项")continueelse:print("你的输入有误")continuecase 8:print("正在为你转接人工……")case 0:print("正在退出……")breakcase _:print("你输入有误,请重新输入")x = eval(input())
3、输出九九乘法表
#输出一个竖着排的九九乘法表
x = 1
y = 1
i = 0
while x<=9:while y<=9:print(x,'*',y,"=",x*y)y+=1y=1i+=1y+=ix +=1
#输出一个排成三角形的九九乘法表
i = 1
for x in range(1,10):for y in range(1,i+1):print(y,'*',i,'=',y*i,end="\t")print()i+=1
 4、运行程序,随机生成一个随机大小的实心或者空心的正方形或直角三角形
#运行程序,随机生成一个随机大小的实心或者空心的正方形或等腰三角形
import random
rand = random.randint(1,4)
n = random.randint(1,10)
if rand ==1:N = nwhile n>0 :print('*'*N)n -=1
elif rand==2:N = nS = n-2print('*'*N)while n-2>0:n -= 1print('*'," "*S,'*',sep="")print('*' * N)elif rand ==3:s = 1while n>0:print('*'*s)s+=1n-=1else:s = 1N = nwhile n-1>0 :if s<=2 :print('*'*s)else :print('*'," "*(s-2),'*',sep = '')n-=1s+=1print('*'*N)
5、利用Python模拟蒲丰投针问题实现蒙特卡洛法推算圆周率

蒙特卡洛法

又叫随机试验法。是指设计一个与某个未知数相关的随机试验,在大量试验后利用得到所得到的频率近似于概率的性质,去推算这个未知数的近似值。

蒲丰投针问题

有两条相距为d的平行线,和若干长度为l的银针,从这两条平行线外的某个位置往这两根平行线内投针,假设这些针不会投到平行线外。计算针投在了这两条平行线上这个事件A的概率P(A)

设银针中点的距离到最近的平行线的距离为x,银针的延长线与这个平行线的夹角度数为α。

易知试验的样本空间为G={(x,α)|0<=x<=d/2,0<=α<=π}

事件A的样本集为A={(x,α)|0<=x/sinα<=l/2,0<=α<=π}

可知:  (1)

设经过大量试验后,试验总次数为N,事件A发生的次数为n

可知  P(A)≈n/N  (2)

此时可以利用(1)和(2)推算出π的值约等于2lN/nd

#使用蒙特卡洛法利用蒲丰投针问题推算圆周率
import random
import math
N = eval(input("输入试验的次数"))
l = 1
d =10
n = 0
for i in range(1,N):x = random.uniform(0, 5)a = random.uniform(0,math.pi)if x/math.sin(a)<=0.5:n +=1
pi = 0
if n!=0:pi = 2*l*N/(n*d)
print("π=",pi)

将试验的次数设置成100

得到结果为:

 

输入试验的次数100
π= 5.0进程已结束,退出代码为 0

试验次数设置成1000

得到结果为:

输入试验的次数1000
π= 3.3333333333333335进程已结束,退出代码为 0

试验次数设置为10000

得到结果为:

输入试验的次数100000
π= 3.1740993493096332进程已结束,退出代码为 0

试验次数设置为100000

得到结果为:

输入试验的次数100000
π= 3.131360576170346进程已结束,退出代码为 0

试验次数设置为 10000000

输入试验的次数10000000
π= 3.1454602358780632进程已结束,退出代码为 0

 

可以看出,在大量试验过后,pi的值已经非常接近圆周率了

http://www.lryc.cn/news/457182.html

相关文章:

  • CVSS 4.0 学习笔记
  • 解决 GPTQ 模型导入后推理生成 Tokens 速度很慢的问题(从源码重新安装 Auto-GPTQ)
  • NDC美国药品编码目录数据库查询方法
  • vue3的v-model使用
  • Go语言实现长连接并发框架 - 消息
  • 湖南(市场咨询)源点调研 如何明确调研焦点与分析单位的特征
  • java 方法引用与构造器引用
  • python3的语法
  • Spring Data JPA中的锁机制
  • mybatis分页拦截器
  • React学习过程(持续更新......)
  • pve lxc容器探索,陆续完善中
  • 5款人声分离免费软件分享,从入门到精通,伴奏提取分分钟拿捏!
  • 镭速助力解决企业大文件传输难题
  • SpringBootWeb AOP
  • 傅里叶分析之掐死教程(完整版)更新于2014.06.06
  • macOS终端配置自动补全功能
  • 华为---MUX VLAN简介及示例配置
  • docker详解介绍+基础操作 (四)容器镜像
  • PostgreSQL数据库定期清理归档(pg_wal)日志
  • RTTI介绍
  • 【C#生态园】C#推送通知库大比拼:选择最适合你项目的库
  • 乐歌E5,E6系列升降桌质量如何?2024推荐必买的四款热销型号
  • Android广播
  • Chapter 2 - 3. Understanding Congestion in Fibre Channel Fabrics
  • 014 属性分组
  • ElasticSearch备考 -- Alias
  • 使用AI编码,这些安全风险你真的了解吗?
  • 计算机网络实验一:组建对等网络
  • R语言绘制折线图