质数判断案例
可能有的同学会问质数是啥子嘛!下面咱就一起某度一下吧。
定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
好,那下面就一起书写一下吧!
Z=input("请输入一个大于1的正整数:")
Z=eval(Z)
for i in range(2,Z):
if Z%i==0:
#关键思想在此两句命令,考虑到了判断质数的条件,for循环从最小质数遍历
#如果中途出现了Z%i等于0则不是质数
print("不是质数")
break
else:
print("您所输入的数是质数")
一元二次方程案列
对于此方程应该是最熟悉不过了吧。
定义:只含有一个未知数(一元),并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程 [1] 。一元二次方程经过整理都可化成一般形式ax²+bx+c=0(a≠0)。其中ax²叫作二次项,a是二次项系数;bx叫作一次项,b是一次项系数;c叫作常数项
#输入二元一次方程的三个系数
a,b,c=eval(input("亲输入三个系数a,b,c,用英文逗号隔开:"))#此赋值方法可以多变量同时赋值
Delta=b**2-4*a*c#一定不能写4ac
if Delta>=0:
print("该一元二次方程有两个实根,进行如下计算")
if Delta>0:
X1=(-b+Delta**(1/2))/(2*a)
X2=(-b-Delta**(1/2))/(2*a)
print("该一元二次方程有两个不等的实根分别为{:.2f},{:.2f}".format(X1,X2))
if Delta==0:
X=-b/(2*a)
print("该一元二次方程有两个相等的实根为{}".format (X))
else:
print("无实根")#在同级中else和最近的if配对
#根据 用户输入的系数计算Delta的值
#根据值,完成求解
平闰年判断案列
定义:平闰年,今年的2020年可谓是闰年。
判断:平年和闰年的三种判断方法:
①、普通年能被4整除且不能被100整除的为闰年。否则为平年。
②、世纪年能被400整除的是闰年。否则为平年。
③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。否则为平年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)。
year=eval(input("请输入您要查询的年份:"))
if ((year%4==0 and year%100!=0)or year%400==0):
print("您查询的年份{}是闰年,所以二月有29天".format(year))
else:
print("您查询的年份{}是平年,所以二月有28天".format(year))
另一种判断平闰年的方法:导入模块
可能有的同学已经接触到了几种基本扩展模块,我们可以了解到calendar模块中有一个方法可以很快判断平闰年
import calendar as t
year=eval(input("请输入您要查询年份:"))
print(t.isleap(year))
水仙花数案列
又称超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
(**例如:**1^3 + 5^3+ 3^3 = 153)
严格讲三位数的自幂数为水仙花数
其他位数称为什么
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
利用python对与水仙花数的求取
#水仙花数:如果一个数为m位,则每个位上的数字m次幂之和等于它本身
#创建一个函数,接受一个参数n(n>=100),判断这个是否位水仙花数
def flower(n):
if n<100:
print("数字不合格")
elif n>=100:
#下方注释为验证n的位数
#print("n为{}位数".format(len(str(n))))判断n为几位数
num=0
for i in str(n):
s=int(i)
sum=s**(len(str(n)))
num+=sum
#print(num)#测试累加是否正确
if num==n:
print("您输入的数{}为水仙花数".format(n))
'''flower(153)#对函数的调用
flower(256)'''
#创建一个函数输出100到max(>=1000)的所有水仙花数
def allflower(max):
if max<1000:
print("数字不合格")
elif max>=1000:
for j in range(100,max+1):
flower(j)#对上一个函数的调用
#allflower(2500)#调用函数,输出水仙花数
X=eval(input())
allflower(X)
理解上述程序前提
程序对函数进行了定义与调用,同时也对if for语句进行了运用要进行熟悉掌握
乘法表案列
从小学开始就接触所谓的9X9乘法表,到底是1X1得1,还是得2。此时是否想说:太难了那我们下面就用一段python来介绍如何编写出这么一个案例
原型法思想
快速搭建一个程序的可运行版本,这个最初的版本可能只是包含一些最简单的功能,然后再不断修改和完善该版本的程序直到最终实现全部功能
1、for循环控制
for j in range(1,10):
for i in range(1,10):
#加入end的目的是要把要输入的在一行显示
print(i,"X",j,"=",i*j,end=' ')
#因为九九乘法表最后都是一样的相乘所以当出现后就break跳出本级循环
if i==j:
break
#第二次编写该程序时所犯错误是:if应在第二for循环里才能实现他的作用
print("\n")
#要在每一次的循环末尾自动换行
上述需要注意的是end=" " ,因为在python中每print()之后就会自动换行输出,加入end=" ",即可实现把想要在一行输出的结果,不换行的进行输出,两个“”之间若是空格则两者以空格相隔开。
2、现在利用while循环控制语句实现这一案例
i = 1
while i :
j = 1
while j:
print (j ,"*", i ," = " , i * j , end=' ')
if i == j :
break
j += 1
if j >= 10:
break
#第二个while到这个break属于同级循环,break属于跳出循环
print ("\n")
i += 1
if i >= 10:
break
3、定义函数法
def printline():
print(" ")
def jiujiu():
for o in range(1,10):
printline()
for i in range(1,o+1):
print(o*i,end=" ")
#print('\n')
jiujiu()
累加案列
累加还是比较简单的
sum=0#sum=0要在外面佛则每次循环sum都要被请零
for i in range(1,11):
sum=sum+i
print(sum)
海龟作图案列
#画五星红旗案例
import turtle as t
import math as m#引入as命令表示用t作为turtle实则简化程序
t.shape("turtle")
t.color("red","yellow")
t.speed(0)
t.up()
t.goto(-300,200)
t.down()
def demo(x,y):
t.goto(x,y)#定义一个函数demo
t.begin_fill()
demo(300,200)
demo(300,-200)
demo(-300,-200)
demo(-300,200)#以上程序为画出红旗边框
t.end_fill()
##def star(k,n,l,j,w):
## t.up()
## t.home()
## t.up()
## t.goto(k,n)
## t.down()
## t.left(l)
## t.up
## t.forward(j)
## t.down()
## t.right(162)
## t.begin_fill()
## for i in range(5):
## t.forward((w*m.sin(m.radians(144)))/m.sin(m.radians(18)))
## t.right (144)
## t.end_fill() 函数的定义
t.up()
t.home()#回到中心点
t.up()
t.goto(-200,100)
t.down()#从中心点移动到所画五角星中心点
t.left(90)
t.up()
t.forward(60)
t.down()#左转九十度并上移60个像素
t.right(162)
t.begin_fill()
for i in range(5):
t.forward((60*m.sin(m.radians(144)))/m.sin(m.radians(18)))
t.right (144)
t.end_fill()#第一个大五角星,小海龟默认方向向右
t.up()
t.home()#回到中心点
t.up()
t.goto(-100,160)
t.down()#从中心点移动到所画五角星中心点
t.left(180)
t.up()
t.forward(20)
简化案列
#绘制红旗的简化啊程序
import turtle as t
import math as m#引入as命令表示用t作为turtle实则简化程序
import time
t.shape("turtle")
t.color("red")#注意颜色命令里放置两个参数颜色时表示的是边框和填充色不一样对于红旗不合适
t.speed(0)
t.up()
t.goto(-300,200)
t.down()
def demo(x,y):
t.goto(x,y)#定义一个函数demo
t.begin_fill()
demo(300,200)
demo(300,-200)
demo(-300,-200)
demo(-300,200)#以上程序为画出红旗边框
t.end_fill()
t.color("yellow")
def star(k,n,l,j,w):
t.up()
t.home()
#t.up()
t.goto(k,n)
#t.down()
t.setheading(l)
#t.up
t.forward(j)
#t.down()
t.right(162)
t.begin_fill()
for i in range(5):
t.forward((w*m.sin(m.radians(144)))/m.sin(m.radians(18)))
t.right (144)
t.end_fill()
t.down()
star(-200,100,90,60,60)
star(-100,160,270-m.degrees(m.atan(100/60)),20,20)#用270减是解决朝向问题使他朝向左下方
star(-60,120,270-m.degrees(m.atan(140/20)),20,20)
star(-60,60,90+m.degrees(m.atan(140/40)),20,20)#前两个朝向在右上方后两个在右下方
star(-100,20,270-m.degrees(m.atan(100/80)),20,20)
t.hideturtle ()
time.sleep(7)
斐波那契数列
又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
这个数列从第3项开始,每一项都等于前两项之和。
f(n)=f(n-1)+f(n-2) n>=3 n={1,2}f(n)=1
def fib(n):
if n==1 or n==2:
return 1
return fib(n-1)+fib(n-2)
f=fib(5)
print(f)