1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 中国大学MOOCPython语言程序设计基础学习笔记和课后练习1-4周(南京邮电大学)

中国大学MOOCPython语言程序设计基础学习笔记和课后练习1-4周(南京邮电大学)

时间:2022-01-01 15:29:42

相关推荐

中国大学MOOCPython语言程序设计基础学习笔记和课后练习1-4周(南京邮电大学)

中国大学MOOCPython语言程序设计基础学习笔记和课后练习1-4周(南京邮电大学)

补充实验周 使用Turtle函数库绘图 Python语言程序设计基础第2周 第1个python程序第二单元作业1.提示用户从键盘上输入两个整数(假设都不为0),在屏幕上打印这两个整数的和、差、积、商、余数。2.提示用户从键盘上输入一个摄氏温度,在屏幕上输出该摄氏温度对应的华氏温度。3.提示用户从键盘上输入一个9位的整数,将其分解为3个3位的整数并输出,其中个、十、百位为一个数,千、万、十万位为一个数,百万、千万、亿位为一个数。例如:当输入123456789,它可以被分解为123、456和789。 第三周 对第一个程序的补充第三单元作业1.提示用户从键盘上输入一个4位的正整数(假设个位不为0),在屏幕上输出该数的反序数。反序数即原数各位上的数字颠倒次序所形成的另一个整数。例如,1234的反序数是4321;2468的反序数是8642。2.提示用户从键盘上输入一个代表分钟的整数(如10000000),输出这个分钟数代表了多少年零多少天零多少小时零多少分钟。为了简化问题,假设一年有365天。3.提示用户从键盘上输入一个有效的年份,在屏幕上打印这个年份是否为闰年,要求使用条件运算符完成程序中的功能。条件运算符的语法为:表达式1 if 表达式2 else 表达式3,其中若表达式2的值为True,则整个算式的值为表达式1的值,否则,整个算式的值为表达式3的值。 第四周 神奇的小海龟第四单元作业1.提示用户从键盘上输入一个正整数n,使用小海龟在屏幕上输出一个任意大小和任意颜色填充的正n边形。2.在程序中编写一个add()函数,参数为两个数值,返回这两个参数的和。然后在程序中提示用户输入两个数,通过调用自己编写的add()函数完成求和的运算,最后打印出函数运行的结果。3.使用小海龟,在屏幕上绘制一系列的同心圆,并未这些同心圆填充上不同的颜色。 实验周 使用Turtle函数库绘图turtle绘图作业1.请编写Python程序完成以下要求:2.请编写Python程序完成以下要求:请使用小海龟绘制你想绘制的任意图形,除了让你绘制的图形尽量美观,我们还希望你能让别人尽量看得懂你的程序。
补充实验周 使用Turtle函数库绘图

Python语言程序设计基础

第2周 第1个python程序

第二单元作业

1.提示用户从键盘上输入两个整数(假设都不为0),在屏幕上打印这两个整数的和、差、积、商、余数。

try:t=input("请输入两个不为0的整数,空格分隔:").split()a,b=int(t[0]),int(t[1])s,d,p,q,r=a+b,a-b,a*b,a/b,a%bprint("输出它们之和{},差{},积{},商{:.2f},余数{}".format(s,d,p,q,r))except ValueError:print("输入错误,请重新输入")t = input("请输入两个不为0的整数,空格分隔:").split()

2.提示用户从键盘上输入一个摄氏温度,在屏幕上输出该摄氏温度对应的华氏温度。

try:C=eval(input("请输入一个摄氏温度:"))F=1.8*(C+32)print("输出的华氏温度是{:.2f}F".format(F))except ValueError:print("输入错误,请重新输入")C = eval(input("请输入一个摄氏温度:"))

3.提示用户从键盘上输入一个9位的整数,将其分解为3个3位的整数并输出,其中个、十、百位为一个数,千、万、十万位为一个数,百万、千万、亿位为一个数。例如:当输入123456789,它可以被分解为123、456和789。

#方法一:try:t=input("请输入一个9位的整数:")a,b,c=t[:3],t[3:6],t[-3:]print(a,b,c)except ValueError:print("输入错误,请重新输入")t = input("请输入一个9位的整数:")#方法二:t=int(input("请输入一个9位的整数:"))a=t//1000000b=t//1000%1000c=t%1000print("{}可以被拆分成{:03},{:03},{:03}".format(t,a,b,c))

第三周 对第一个程序的补充

调试纠错的重要性,很多时候,我们往往会忽略,导致做了很长时间也出不来结果,费时费力。所以必须学会纠错才能进步!

第三单元作业

1.提示用户从键盘上输入一个4位的正整数(假设个位不为0),在屏幕上输出该数的反序数。反序数即原数各位上的数字颠倒次序所形成的另一个整数。例如,1234的反序数是4321;2468的反序数是8642。

# 1.提示用户从键盘上输入一个4位的正整数(假设个位不为0),在屏幕上输出该数的反序数。# 反序数即原数各位上的数字颠倒次序所形成的另一个整数。例如,1234的反序数是4321;2468的反序数是8642。#方法一:t=int(input("请输入一个4位正整数:"))#分别得到它的千位、百位、十位、个位a1=t//1000a2=t//100%10a3=t//10%10a4=t%10#进行反序T=a1+a2*10+a3*100+a4*1000print("{}的反序数为:{}".format(t,T))#方法二:try:t=int(input("请输入一个4位正整数:"))print("输出这四位正整数的反序数:"+str(t)[::-1])except ValueError:print("输入错误,请重新输入:")

2.提示用户从键盘上输入一个代表分钟的整数(如10000000),输出这个分钟数代表了多少年零多少天零多少小时零多少分钟。为了简化问题,假设一年有365天。

# 输出这个分钟数代表了多少年零多少天零多少小时零多少分钟。为了简化问题,假设一年有365天。try:num=int(input("请输入一个代表分钟的整数:"))y=num//(60*24*365)d=num//(60*24)%365h=num//60%24m=num%60print("这个分钟代表{}年{}天{}小时{}分钟".format(y,d,h,m))except ValueError:print("输入格式错误,请重新输入:")

3.提示用户从键盘上输入一个有效的年份,在屏幕上打印这个年份是否为闰年,要求使用条件运算符完成程序中的功能。条件运算符的语法为:表达式1 if 表达式2 else 表达式3,其中若表达式2的值为True,则整个算式的值为表达式1的值,否则,整个算式的值为表达式3的值。

try:y = int(input("请输入一个年份:"))if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:print("是闰年")else:print("不是闰年")except ValueError:print("输入格式错误,请重新输入:")

第四周 神奇的小海龟

部分代码练习:

# 请进小海龟,并设置小海龟的外形和颜色import turtleturtle.shape("turtle")turtle.color("red")def drawstar(x, y, color):turtle.up()turtle.goto(x, y)turtle.down()turtle.color(color)for i in [0, 1, 2, 3, 4]:turtle.right(144)turtle.forward(100)# 设置小海龟的位置和朝向# 绘制第一个五角星drawstar(-200, 200, "blue")# 再一次设置小海龟的位置和朝向# 绘制第二个五角星drawstar(300, 200, "green")# 继续设置小海龟的位置和朝向,并绘制第三、第四个五角星drawstar(-200, -200, "red")drawstar(300, -200, "yellow")turtle.up()turtle.home()

第四单元作业

1.提示用户从键盘上输入一个正整数n,使用小海龟在屏幕上输出一个任意大小和任意颜色填充的正n边形。

import turtle,random#任意形状图形的半径在50-100区间随机取得r=random.randint(50,100)n=int(input("请输入一个正整数:"))turtle.speed(1)turtle.color("black","red")turtle.begin_fill()for i in range(n):#使用内角公式turtle.right(180-(n-2)/n*180)turtle.fd(r)turtle.end_fill()turtle.done()

2.在程序中编写一个add()函数,参数为两个数值,返回这两个参数的和。然后在程序中提示用户输入两个数,通过调用自己编写的add()函数完成求和的运算,最后打印出函数运行的结果。

#2.在程序中编写一个add()函数,参数为两个数值,返回这两个参数的和。# 然后在程序中提示用户输入两个数,通过调用自己编写的add()函数完成求和的运算,最后打印出函数运行的结果。def add(a,b):return a+bx,y=eval(input("请输入两个数,以逗号分割:"))sum=add(x,y)print("输出这两个数的和为:",sum)

3.使用小海龟,在屏幕上绘制一系列的同心圆,并未这些同心圆填充上不同的颜色。

注意点:

绘制颜色时候防止被覆盖应从大到小绘制。fillcolor可以使用random函数随机生成。不足:随机生成颜色有可能会相同,但是不影响学习绘图技能。

#33.使用小海龟,在屏幕上绘制一系列的同心圆,并未这些同心圆填充上不同的颜色。import turtle,randomn=eval(input("请输入绘制的同心圆的个数:"))#为了简化,假设最大圆半径是100,输入最大数为5,则刚好减为零r=100turtle.pensize(2)turtle.speed(1)turtle.pencolor("black")fillcolor=["blue","red","pink","green","yellow"]#也可以直接使用随机值生成颜色#在下一个方法中使用for i in range(n):turtle.fillcolor(random.choice(fillcolor))turtle.penup()turtle.begin_fill()turtle.goto(0,-r+i*20)turtle.pendown()turtle.circle(r-i*20)#假设每次递减20turtle.end_fill()turtle.done()

还可以使用函数

import turtle,randomn=eval(input("请输入绘制的同心圆的个数:"))#为了简化,假设最大圆半径是100,输入最大数为5,则刚好减为零turtle.pensize(2)turtle.speed(1)turtle.pencolor("black")#使用随机值生成颜色turtle.colormode(255)def drawcircle(r,fillcolor):turtle.penup()turtle.begin_fill()turtle.goto(0,-r)turtle.fillcolor(fillcolor)turtle.pendown()turtle.circle(r)turtle.end_fill()for i in range(n):fillcolor=(random.randint(0,255),random.randint(0,255),random.randint(0,255))drawcircle(100-20*i,fillcolor)turtle.done()

最终图形:

实验周 使用Turtle函数库绘图

turtle绘图作业

1.请编写Python程序完成以下要求:

在屏幕上绘制由七巧板中各种简单图形组成的自创图形,其中同一个形状可以使用多次。

(得分点提示:程序的可读性、是否有注释、绘制该图形的实现难度)

默认的七巧板如图所示:

老师的解法,代码稍长,可以使用循环来化简

import turtleturtle.speed(1)turtle.up()turtle.goto(-200,200)turtle.down()turtle.pensize(0)#绘制上方三角形turtle.color("#caff67")turtle.begin_fill()turtle.goto(200,200)turtle.home()turtle.goto(-200,200)turtle.end_fill()#绘制左方大三角形turtle.color("#67becf")turtle.begin_fill()turtle.goto(-200,-200)turtle.home()turtle.end_fill()#绘制中间小三角形turtle.color("#f9f51a")turtle.begin_fill()turtle.goto(100,100)turtle.goto(100,-100)turtle.end_fill()#绘制右边平行四边形turtle.color("#ef3d61")turtle.begin_fill()turtle.goto(100,100)turtle.goto(200,200)turtle.goto(200,0)turtle.end_fill()#绘制右下三角形turtle.color("#f6ca29")turtle.begin_fill()turtle.goto(200,-200)turtle.goto(0,-200)turtle.end_fill()#绘制下方正方形turtle.color("#a594c0")turtle.begin_fill()turtle.goto(100,-100)turtle.goto(0,0)turtle.goto(-100,-100)turtle.end_fill()#绘制左下三角形turtle.color("#fa8ecc")turtle.begin_fill()turtle.goto(0,-200)turtle.goto(-200,-200)turtle.end_fill()#绘制完毕turtle.hideturtle()turtle.done()

刚好来学习一下直角坐标系,分别给各个定点标注坐标,绘图时候只要让海龟在这些点之间移动思路就清楚一些了。

使用函数的代码(原创):

#使用函数的目的是为了训练,其实简洁性和易读性关键在于自己对于坐标系的理解import turtleturtle.speed(1)turtle.up()turtle.goto(0,0)turtle.down()turtle.pensize(0)color=["blue","red","pink","green","yellow","purple","orange"]M=[[(200,200),(-200,200)],[(-200,-200),(0,0)],[(100,100),(100,-100)]]N=[[(200,0),(200,-200),(0,-200)],[(-200,-200),(-100,-100),(0,-200)],[(-100,-100),(0,0),(100,-100)],[(200,0),(200,200),(100,100)]]#对几个三角形使用函数def drawcircle(m1,n1,color):turtle.color(color)turtle.begin_fill()turtle.goto(m1)turtle.goto(n1)turtle.end_fill()for i in range(3):drawcircle(M[i][0],M[i][1],color[i])#对剩余的两个三角形和两个四边形使用函数def drawcircle2(m2,n2,k,color):turtle.color(color)turtle.begin_fill()turtle.goto(m2)turtle.goto(n2)turtle.goto(k)turtle.end_fill()for i in range(4):drawcircle2(N[i][0],N[i][1],N[i][2],color[i+3])#绘制完毕turtle.hideturtle()turtle.done()

最后的效果一样!但是如果绘制很多图形,函数更优。

将坐标值改变后可以很容易绘制其他图形,比如绘制一个小房子:

代码如下:

#用turtle绘制图案小房子#注:图片颜色随机import turtleturtle.speed(1)turtle.up()turtle.goto(-70.71,141.42)turtle.down()turtle.pensize(0)#颜色从这些颜色中依次选择color=["blue","red","pink","green","yellow","purple","orange"]#首先收集正方形、平行四边形和两个三角形各点坐标M=[[(0,141.42),(0,70.71),(-70.71,70.71)],[(-135.35,0),(-70.71,0),(0,70.71)],[(29.29,100),(129.29,0),(-70.71,0)],[(-100,0),(-100,-100),(0,0)]]#然后是收集剩余的三个三角形各点坐标N=[[(-100,-100),(100,-100)],[(100,0),(50,-50)],[(100,0),(0,0)]]#绘制正方形、平行四边形和两个三角形def drawcircle(m1,n1,k,color):turtle.color(color)turtle.begin_fill()turtle.goto(m1)turtle.goto(n1)turtle.goto(k)turtle.end_fill()for i in range(4):drawcircle(M[i][0],M[i][1],M[i][2],color[i])#绘制剩余的三个三角形def drawcircle2(m2,n2,color):turtle.color(color)turtle.begin_fill()turtle.goto(m2)turtle.goto(n2)turtle.end_fill()for i in range(3):drawcircle2(N[i][0],N[i][1],color[i+4])#绘制完毕turtle.hideturtle()turtle.done()

绘制后的效果图:

2.请编写Python程序完成以下要求:请使用小海龟绘制你想绘制的任意图形,除了让你绘制的图形尽量美观,我们还希望你能让别人尽量看得懂你的程序。

对以上图片进行修饰,增加一些弧形图形和文字。

#turtle绘制其他图案import turtleturtle.speed(1)turtle.up()turtle.goto(-70.71,141.42)turtle.down()turtle.pensize(0)#颜色从这些颜色中依次选择color=["blue","red","green","pink","yellow","purple","orange","blue"]#首先收集正方形、平行四边形和三角形各点坐标M=[[(0,141.42),(0,70.71),(-70.71,70.71)],[(-135.35,0),(-70.71,0),(0,70.71)],[(29.29,100),(129.29,0),(-70.71,0)]]#然后是收集三个矩形各点坐标N=[[(100,0),(100,-100),(-100,-100),(-100,0)],[(-70.71,-10),(-21.71,-10),(-21.71,-60),(-71.71,-60)],[(20,-15),(80,-15),(80,-100),(20,-100)]]#绘制正方形、平行四边形和三角形def drawcircle(m1,n1,k1,color):turtle.color(color)turtle.begin_fill()turtle.goto(m1)turtle.goto(n1)turtle.goto(k1)turtle.end_fill()for i in range(3):drawcircle(M[i][0],M[i][1],M[i][2],color[i])#绘制三个矩形def drawcircle2(m2,n2,k2,d,color):turtle.color(color)turtle.penup()turtle.goto(m2)turtle.begin_fill()turtle.goto(n2)turtle.pendown()turtle.goto(k2)turtle.goto(d)turtle.end_fill()for i in range(3):drawcircle2(N[i][0],N[i][1],N[i][2],N[i][3],color[i+3])#绘制小房子门的按钮turtle.goto(40, -60)turtle.color("red")turtle.begin_fill()turtle.circle(10)turtle.end_fill()for i in range(3):turtle.penup()turtle.goto(-36,165+35*i)turtle.color("black")turtle.begin_fill()turtle.circle(15)turtle.end_fill()turtle.pendown()turtle.penup()turtle.goto(-220,-200)turtle.pendown()turtle.write("我爱我的小家",font=("隶书",50,"normal"))#绘制完毕turtle.hideturtle()turtle.done()

最终效果图:

总结:

turtle库是个宝藏库,带我学习数学和编程,以后有机会多多学习,提升自我!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。