Python入门认知学习程序

本文介绍了多个Python编程实例,包括整数求和、排序、99乘法表、重叠五角星、斐波那契数列、完数判断、年龄递推、列表倒序输出、turtle库图形绘制、模拟时钟、大爱心绘制以及函数曲线绘制。通过这些实例,展示了Python在数据处理、算法实现和图形库应用方面的灵活性和实用性。
摘要由CSDN通过智能技术生成

01- sum.py

"""整数求和"""

n = int(input("请输入一个整数:"))
sum = 0
for i in range(n):
    sum += i
print("1~%d 的求和结果为%d"%(n,sum))
​

Python中使用input()函数获取数据都是字符串类型,需要使用转化函数将字符串转为目标类型。使用变量时,不需要声明变量类型。

02- sort.py

"""输入三个整数,把这三个数由小到大输出"""

l = []
for i in range(3):
    x = int(input("请输入一个整数:"))
    l.append(x)
l.sort()
print(l)
​

Python中有许多的数据结构,如列表,元组,字典,集合,它们在声明时分别使用[]、()、{}、{}。 在使用时需要注意各自的特性

03 - 99list.py

"""99 乘法表"""

​
for i in range(1, 10):
    for j in range(1, i + 1):
        print("%d*%d=%-2d" % (j, i, j * i), end=" ")
    print("")
​

range()方法可以于for循环,并且是左闭右开原则 ,并且根据参数可以实现不同的遍历顺序,如range(10,-1,1),就可以从10遍历到0。

04- pentagrams.py

"""重叠五角星"""

import turtle as t
​
def draw_fiveStars(leng):
    count = 1
    while count <= 5:
        t.forward(leng)
        t.right(144)
        count += 1
    leng += 10
    if leng <= 100:
        draw_fiveStars(leng)
​
def main():
    t.penup()
    t.backward(100)
    t.pendown()
    t.pensize(2)
    t.pencolor('red')
    segment = 50
    draw_fiveStars(segment)
    t.exitonclick()
​
if __name__ == "__main__":
    main()
​

python中有许多的库。在python中声明函数,对于参数不会指定类型,也不会对返回类型进行说明。在调用时可以参数有多种传递方式,在这个例子中参数还可以用draw_fiveStars(leng=segment)进行传递。

5- fiboSeq.py

"""使用列表实现斐波那契数列""" l

l = [1,2]
n = int(input("斐波那契数列长度:"))
while(len(l)<n):
    l.append(l[len(l)-1]+l[len(l)-2])
print(l)
​

感想:在本例中使用列表这一数据结构,列表增加元素时使用的是append()方法。python中接收用户输入数据使用的是input()方法,在使用时可以向input()方法中传递字符串参数,在运行,字符串信息被打出来。input()方法接受用户输入的数据后,返回的是字符串类型,如需使用,需要进行类型转换。

06- finaNum.py

若一个数刚好等于它因子之和,那么这个数就称为“完数”。例如 6=1+2+3。编程打印 1000 以内的所有完数

from sys import stdout
for j in range(2,1001):
    k = []
    n = -1
    s = j
    for i in range(1,j):
        if j%i == 0:
            n += 1
            s -= i
            k.append(i)
        if s==0:
            print(j)
            for i in range(n):
                stdout.write(str(k[i]))
                stdout.write(' ')
            print(k[n])
            break
​

感想:python中有多种方式导入模块,本题还可用” from sys import stdout as st“ ,可以根据需要选择。在本题中没有在 “if s==0:”的代码段里加break,会导致重复打印数字。

07 age.py

有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,

他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大

def age(n):
    if n==1:
        c=10
    else:
        c=age(n-1)+2
    return c
print(age(5))
​

感想:本题中使用 "if" 结构,在刚开始使用时,会经常多次一举的的加上 ()和{}。在python中的函数声明都需要使用关键字 “def”,返回的数据不需要进行说明。

8 倒序输出列表 ls 中的值。

ls=['one','two','three']
for i in ls[::-1]:
    print(i)
​

感想:python中 [::-1]表示对象的元素进行倒叙输出。经过查询资料,有a[i:j:s],根据各个参数的状况,可以实现不同的效果。如b=a[1:],表示将1-len(b)的数据复制给b,当i缺省时,默认为0,即 a[:3]相当于 a[0:3]。

9.what

import turtle

ninja = turtle.Turtle()
ninja.speed(1000)
for i in range(180):
    ninja.forward(100)
    ninja.right(30)
    ninja.forward(20)
    ninja.left(60)
    ninja.forward(50)
    ninja.right(30)
    ninja.penup()
    ninja.setposition(0, 0)
    ninja.pendown()
    ninja.right(2)
turtle.done()

感想:经过查询资料,turtle库是Python语言中一个很流行的绘制图像的函数库,在使用时有许多方法可供使用。在将代码复现到pycharm中时,根据“ninja.speed(1000)”猜测可能是控制绘画速度,然后继续更改代码中的参数,得到了许多不同的图案。

10 drawClock

from turtle import *
from datetime import *


def Skip(step):
    penup()
    forward(step)
    pendown()


# 建立钟表的外框
def setupClock(radius):
    reset()
    pensize(7)
    for i in range(60):
        Skip(radius)
        if i % 5 == 0:
            forward(20)
            Skip(-radius - 20)
        else:
            dot(5)
            Skip(-radius)
        right(6)


# 注册 turtle 形状,建立名字为 name 的形状
def makeHand(name, length):
    reset()
    Skip(-0.1 * length)
    # 开始记录多边形的顶点
    begin_poly()
    forward(1.1 * length)
    # 停止记录多边形的顶点,并与第一个顶点相连
    end_poly()
    # 返回最后记录的多边形
    handForm = get_poly()
    # 注册形状,命名为 name
    register_shape(name, handForm)


def init():
    global secHand, minHand, hurHand, printer
    # 重置 turtle 指针向北
    mode("logo")
    secHand = Turtle()
    makeHand("secHand", 125)
    secHand.shape("secHand")
    minHand = Turtle()
    makeHand("minHand", 130)
    minHand.shape("minHand")
    hurHand = Turtle()
    makeHand("hurHand", 90)
    hurHand.shape("hurHand")
    # shapesize 第一个参数没看到什么用,第二个参数表示几倍的长度,第 3 个参数表示 3倍的宽度
    # speed(0)是最快
    for hand in secHand, minHand, hurHand:
        hand.shapesize(1, 1, 3)
        hand.speed(0)
        # 建立并输出文字的 turtle 对象,printer 对象只是显示文字不显示路径,所以一直是penup和hideturtle
        printer = Turtle()
        printer.hideturtle()
        printer.penup()


def Week(t):
    week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七"]
    return week[t.weekday()]


def Day(t):
    return "%s %d %d" % (t.year, t.month, t.day)


def Tick():
    t = datetime.today()
    second = t.second + t.microsecond * 0.000001
    minute = t.minute + t.second / 60.0
    hour = t.hour + t.minute / 60.0
    secHand.setheading(second * 6)
    minHand.setheading(minute * 6)
    hurHand.setheading(hour * 30)
    tracer(False)
    printer.fd(70)
    printer.write(Week(t), align = "center", font = ("Courier", 14, "bold"))
    printer.back(130)
    printer.write(Day(t), align = "center", font = ("Courier", 14, "bold"))
    printer.home()
    tracer(True)
    ontimer(Tick, 100)  # 100ms 后继续调用 Tick


def main():
    # 关闭动画
    tracer(False)
    init()
    setupClock(200)
    # 开启动画
    tracer(True)
    Tick()
    done()
main()

感想:这段代码实现了一个模拟时钟,根据注释和方法的中文含义可以知道一些方法的作用。在复现代码时对于函数的传参有了更多掌握和理解。

11 大爱心

from turtle import *

pensize(1)
pencolor('red')
fillcolor('pink')
speed(5)
up()
goto(-30, 100)
down()
begin_fill()
left(90)
circle(120, 180)
circle(360, 70)
left(38)
circle(360, 70)
circle(120, 180)
end_fill()
up()
goto(-100, -100)
down()

感想:这段代码比之前的代码要少许多,“pencolor('red')”和“fillcolor('pink')”可以猜出是红色的轮廓线和粉红的填充色。其他的还需要进行学习后才能搞明白。

12 函数曲线

import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(-4, 4, 1024)
Y = .25 * (X + 4.) * (X + 1.) * (X - 2.)
plt.title('$f(x)=\\frac{1}{4}(x+4)(x+1)(x-2)$')
plt.plot(X, Y, c = 'g')
plt.show()

感想:

13 爱心纷飞 randomHearts.py

import turtle as t
import random as r


def randomcolor():
    color = (r.random(), r.random(), r.random())
    return color

def pink():
    color = (1, r.random(), 1)
    return color


def randomrange(min, max):
    return min + (max - min) * r.random()

def moveto(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()

def heart(r, a):
    factor = 180
    t.seth(a)
    t.circle(-r, factor)
    t.fd(2 * r)
    t.right(90)
    t.fd(2 * r)
    t.circle(-r, factor)
# set canvas dimension
t.setup(800, 800, 200, 200)
t.speed(9)
t.pensize(1)
t.pencolor(randomcolor())
t.fillcolor(randomcolor())
t.penup()
for i in range(20):
    t.goto(randomrange(-300, 300), randomrange(-300, 300))
    t.begin_fill()
    t.fillcolor(pink())
    heart(randomrange(10, 50), randomrange(0, 90))
    t.end_fill()
moveto(400, -400)

感想:这是个人觉得最有意思得一个案例。在复刻是发现使用大部分使用的都是库自带的方法,自己只需设置好参数就行,说明了python库的强大和简洁。

14简述程序开发的各个阶段

  1. 问题的定义及规划 此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。

  2. 需求分析 在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。

  3. 软件设计 此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。

  4. 程序编码 此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。

  5. 软件测试 在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。

15 程序编写的基本方法。

1.确定IPO

⒉编写程序

3.调试程序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值