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简述程序开发的各个阶段
-
问题的定义及规划 此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。
-
需求分析 在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
-
软件设计 此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。
-
程序编码 此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
-
软件测试 在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
15 程序编写的基本方法。
1.确定IPO
⒉编写程序
3.调试程序