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的值已经非常接近圆周率了