• 【21天python打卡】第15天 python经典案例(1)


    ​大家好,今天是21天python打卡的第15天,接下来的一段时间,我们通过学习python经典案例,来巩固最近一段时间学习的知识。


    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。


    目录

    Hello程序

    代码实现:

    圆面积的计算

     代码实现:

     简单的人名对话

    代码实现:

    斐波那契数列的计算

     代码实现:

    同切圆的绘制

    代码实现:

    日期和时间的输出

    代码实现:

    字符串拼接

    代码实现:

    整数序列求和

    代码实现:

    九九乘法表输出

    代码实现:

     运行结果

    阶乘求和

    代码实现:

    猴子吃桃问题

    代码实现:

    健康食谱输出

    代码实现:

    五角星绘制

    代码实现:

    运行结果 

    太阳花绘制

    代码实现:

    运行结果


    • Hello程序

    这个是最基础的程序,也是所有编程语言的经典案例,输出Hello World。这里我就不解释了。

    代码实现:

    print("Hello World")
    • 圆面积的计算

     我们知道圆的面积怎么算,S=3.14*R*R,所以我们只要定义一个R,在做一个赋值语句就可以实现。

     代码实现:

    1. radius = 25 # 圆的半径是25
    2. area = 3.14 * radius * radius # 输入计算圆面积的公式
    3. print(area)
    4. print("{:.2f}".format(area)) # 只输出两位小数
    •  简单的人名对话

    这个只要是练习输入输出语句,我就不做过多赘述。

    代码实现:

    1. name = input("输入姓名:")
    2. print("%s 同学,学好Python,前途无量!"%name)
    3. print("%s 大侠,学好Python,大展拳脚!"%name[0])
    4. print("%s 哥哥,学好Python,人见人爱!"%name[1:])
    • 斐波那契数列的计算

     首先,我们要了解什么是斐波那契数列

    what?

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)

     代码实现:

    1. a, b = 0, 1
    2. while a < 1000: # 输出不大于1000 的序列
    3. print(a, end=',')
    4. a, b = b, a + b
    • 同切圆的绘制

     这里我们要用到turtle库。

    what?

    turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    我们简单拓展turtle的用法。

    画布

    画布就是turtle展开用于绘图区域,可以设置它的大小和初始位置。

    设置画布大小

    turtle.screensize(canvwidth=None,canvheight=None,bg=None),参数分别为画布的宽(单位像素),高,背景颜色。

    如:turtle.screensize(800,600,"green")

    turtle.screensize()#返回默认大小(400,300)

    turtle.setup(width=0.5,height=0.75,startx=None,starty=None),参数:width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例,(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心。

    如:turtle.setup(width=0.6,height=0.6)

    turtle.setup(width=800,height=800,startx=100,starty=100)

    画笔

    在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

    画笔的属性

    画笔(画笔的属性,颜色、画线的宽度等)

    1)turtle.pensize():设置画笔的宽度;

    2)turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green","red",也可以是RGB3元组。

    3)turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    代码实现:

    1. import turtle # 引用turtle 库
    2. turtle.pensize(2) # 设置画笔宽度为2 像素
    3. turtle.circle(10) # 绘制半径为10 像素的圆
    4. turtle.circle(40) # 绘制半径为40 像素的圆
    5. turtle.circle(80) # 绘制半径为80 像素的圆
    6. turtle.circle(160) # 绘制半径为160 像素的圆
    • 日期和时间的输出

    代码实现:

    1. from datetime import datetime # 引用datetime 库
    2. now = datetime.now() # 获得当前日期和时间信息
    3. print(now)
    4. now.strftime("%x") # 输出其中的日期部分
    5. now.strftime("%X") # 输出其中的时间部分
    • 字符串拼接

    我们先了解一下什么是字符串。

    字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

    这里我们要用的format函数。

    Format是CString类的一个成员函数,它通过格式操作使任意类型的数据转换成一个字符串。Format参数也是一个格式化字符串。DateTime是时间类型。返回值是一种格式化后的字符串。

    代码实现:

    1. str1 = input("请输入一个人的名字:")
    2. str2 = input("请输入一个国家名字:")
    3. print("世界这么大,{}想去{}看看。".format(str1,str2))
    • 整数序列求和

    这个实际上就是累加求和,用到了for i in range结构。“ for in range语句是python编程语言的内容,主要用于生成整数序列。具体用法如下:“for i in range(x, y):”这样可以生成从x到y-1的整数序列。

    代码实现:

    1. n = input("请输入整数N: ")
    2. sum = 0
    3. for i in range(int(n)):
    4. sum += i + 1
    5. print("1 到N 求和结果: ", sum)
    • 九九乘法表输出

    代码实现:

    1. for i in range(1,10):
    2. for j in range(1,i+1):
    3. print("{}*{}={:2} ".format(j,i,i*j), end='')
    4. print('')

     运行结果

    • 阶乘求和

    代码实现:

    1. sum, tmp = 0, 1
    2. for i in range(1,11):
    3. tmp*=i
    4. sum+=tmp
    5. print("运算结果是: {}".format(sum))
    • 猴子吃桃问题

    range(5,0,-1) 代表从5到0,间隔-1 (不包含5)。 即range(5,0,-1) =[4,3,2,1,0]。 加上for,就是代表 I 值在range(5,0,-1) 中”

    我们就介绍range的用法。

    range(start, stop [,step])

    参数介绍:

    • start 指的是计数起始值,可以省略不写,默认是 0;

    • stop 指的是计数结束值,但不包括 stop ;

    • step 是步长,默认为 1,不可以为 0 。

    (尤其注意:如果是三个参数,那么最后一个参数才表示为步长。)

    ps1:只有一个参数:表示0到这个参数内的所有整数,不包含参数本身

    1. ran = range(6)
    2. # 定义一个list,将range范围内的数都存入list
    3. arry_list = list(ran)
    4. print(ran)
    5. print(arry_list)
    6. 运行结果如下
    7. range(0, 6)
    8. [0, 1, 2, 3, 4, 5]

    ps2:

    range函数有2个参数时,第一个参数,表示左边界,第2个参数表示右边界,含左不含右。

    1. ran_new = range(1, 8)
    2. list_one = list(ran_new) # 将range范围内的数据都存入list
    3. print(list_one)
    4. 运行结果
    5. [1, 2, 3, 4, 5, 6, 7]

    ps3:

    range含有3个参数时,,第一个表示左边界,第二个表示右边界,第三个表示步长step,即两个整数之间相差的数,含左不含右。

    1. ran_two = range(1, 16,2)
    2. list_two = list(ran_two)
    3. # list_two=
    4. print(ran_new)
    5. print(ran_two)
    6. print(list_two)
    7. 运行结果为
    8. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
    9. range(1, 16)
    10. range(1, 16, 2)
    11. [1, 3, 5, 7, 9, 11, 13, 15]

    代码实现:

    1. n = 1
    2. for i in range(5,0,-1):
    3. n = (n+1)<<1
    4. print(n)
    • 健康食谱输出

    代码实现:

    1. diet = ['西红柿', '花椰菜', '黄瓜', '牛排', '虾仁']
    2. for x in range(0, 5):
    3. for y in range(0, 5):
    4. if not(x == y):
    5. print("{}{}".format(diet[x], diet[y]))
    • 五角星绘制

    代码实现:

    1. from turtle import *
    2. fillcolor("red")
    3. begin_fill()
    4. while True:
    5. forward(200)
    6. right(144)
    7. if abs(pos()) < 1:
    8. break
    9. end_fill()

    运行结果 

    • 太阳花绘制

    代码实现:

    1. from turtle import *
    2. color('red', 'yellow')
    3. begin_fill()
    4. while True:
    5. forward(200)
    6. left(170)
    7. if abs(pos()) < 1:
    8. break
    9. end_fill()
    10. done()

    运行结果


    今天通过学习了14个简单的python案例,我们能够明白python是如何输入输出的,下一篇,我们继续通过python的案例来学习python的奇妙之处。

  • 相关阅读:
    onlyoffice报 error self signed certificate导致download failed错误处理
    MCdropout记录
    事务详细介绍
    element ui 时间筛选样式遮盖问题修复
    ESP-ADF LVGL GUI开发简易化
    七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
    【Java进阶篇】第七章 多线程
    nodejs搭建服务器手册
    桂院校园导航 静态项目 二次开发教程 1.3
    需求变化频繁的情况下,如何实施自动化测试
  • 原文地址:https://blog.csdn.net/BROKEN__Y/article/details/126359716