学习Python的经典案例——python

质数判断案例

可能有的同学会问质数是啥子嘛!下面咱就一起某度一下吧。
定义:质数又称素数。一个大于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)
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
50个程序案例 程序1:数字组合 2 程序2:猜猜这个数是多少? 3 程序3:判断这是一年中的第几天? 3 程序4:判断整数大小 4 程序5:斐波那契数列 5 程序6:水仙花数 6 程序7:数字求和 6 程序8:平方根 7 程序9:if语句 8 程序10:阿姆斯特朗数 8 程序11:输出指定范围的素数(else语句) 9 程序12:生成日历 10 程序13:统计字符串中的字符 11 程序14:文件的读取 12 程序15:十进制转二进制、八进制、十六进制 13 程序16: 生成10个两位的随机素食 13 程序17: 计算三角形面积 14 程序18:字符串大小写转换 15 程序19: 获取昨天日期 16 程序20: 变量交换 17 程序21: 质数判断 17 程序22: 简单计算器 18 程序23: 最大公约数 20 程序24: 最小公倍数 21 程序25: 字符串判断 22 程序26: 合并文件数据 23 程序27: 猜数游戏 24 程序28:为数据加密 25 程序29:平方运算 26 程序30: 计算0-7组成的奇数个数 27 程序31:求值 27 程序32:猴子分桃 28 程序33:淘汰游戏 28 程序34:分解质因子 29 程序35:取整数右端的4~7位 30 程序36:判断4位回文数 31 程序37:汉诺塔(递归函数) 32 程序38:判断闰年 33 程序39:寻找自幂数(38) 34 程序40:多维数据 35 程序41: 验证哥德巴赫猜想 36 程序42: 解方程 37 程序43: 异常处理 38 程序44: 统计不及格人数(continue语句) 39 程序45: 求直角三角形的斜边 39 程序46: 问年龄 40 程序47:求相同数字的和 41 程序48:找出1000以内的所有完数 42 程序49:公民类 42 程序50:复数类 43

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虫子师兄

你们的小小鼓励就是我前进的最大

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值