python程序设计第二版答案,《python程序设计》题库

大家好,给大家分享一下python程序设计题库及答案第二章答案大全,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

2.2思考与练习(p46)
答案:

2.4:C (不能以数字开始)
2.5:保留字即关键字(p39)
2.6:

print (input("")) #简单的输入输出

2.7:简单点说就是无法区分变量名和数字类型。
具体解释:
如果允许变量名开头是数字,则无法区分变量名和数字类型,例如:如果变量名 091合法,则程序无法区分这个变量和数字 091python简单笑脸代码。另外,有些数字可能含有字母,如浮点数 1E10。程序设计语言不能存在歧义,因此,需要约定变量名开头不能是数字,以便区分变量与数字
2.3思考与练习(p49)
答案:
原程序运行结果:
在这里插入图片描述
2.8:蛇的颜色变为粉红色
在这里插入图片描述
2.9:增加了蛇的长度,由4变为5
在这里插入图片描述
2.10:会有一条黑色的直线线从起始位置向左边延伸250像素,但由于画笔尺寸为25较粗,所以运行结果视觉上并不会有变化
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
2.4思考与练习(p55)
2.11:请使用turtle库的turtle.fd()函数绘制一条直线。

import turtle
# turtle.hideturtle()   #可去掉箭头
turtle.fd(200)
turtle.done()

运行结果:
在这里插入图片描述

2.12 请使用turtle库中的turtle.circle()函数绘制一个完整的圆。

import turtle
turtle.hideturtle()   #可去掉箭头
turtle.circle(40)   #圆的半径为40
turtle.done()

运行结果:
在这里插入图片描述
2.13请使用turtle库函数绘制一个包含9个同心圆的靶盘。

from turtle import *
pensize(5)    #画笔宽度5
pencolor("red")  #画笔颜色为红色
penup()      #包括以下两行只是因为圆的半径太大需要全屏才能看见(可能因为我电脑尺寸太小),我又懒得全屏,所以让画笔下移200像素,可注释掉
goto(0,-200)
pendown()
for i in range(200,20,-20):
    circle(i)
    left(90)     #画笔左转90°,即向上,便于下边上移20像素
    penup()     #penup(),pendown()分别对应抬起画笔,落下画笔,如果直接fd(20)则会留下一条直线,课本p51有简单解释
    fd(20)     #画笔移动20像素
    pendown()
    right(90)  #再右转回来
hideturtle()    #取消掉最后的画笔,如不介意也可注释掉
done()

运行结果:
在这里插入图片描述
此题有更简便的方法,也可先画最里面的圆,再依次向外扩展,代码如下(因为只改了少量代码,就没再注释):

from turtle import *
pensize(5)
pencolor("red")
j = 20
for i in range (10):
    circle(i * j)
    right(90)
    penup()
    fd(j)
    left(90)
    pendown()
hideturtle()    #取消掉最后的画笔,如不介意也可注释掉
done()

程序练习题:
2.1
实例1的修改。改造实例代码1.1,采用eval(input(<提示内容>))替换现有的输入部分,并使输出的温度值为整数。

TempStr = eval(input("请输入温度值"))    #eval可将字符串转化成字典、列表和元组
Str = input("请输入温度值符号F或者C: ")
if Str in ['F','f']:
    c = (TempStr-32)/1.8
    print("转化后的温度是{:.0f}".format(c)) #输出为整数就是{:.0f}
elif Str in ['C','c']:
    F = 1.8*TempStr + 32
    print("转化后的温度是{:.0f}".format(F))
else:
    print("输入格式错误")

关于eval的使用:eval
运行结果:
在这里插入图片描述

2.2汇率兑换程序。按照温度转换程序的设计思路,按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序。

TempStr = eval(input("请输入货币值:"))    #eval可将字符串转化成字典、列表和元组
Str = input("请输入货币符号$或者¥(美元为$,人民币为¥):")
if Str in ['$']:
    c = TempStr*6
    print("转化后的人民币是{:.2f}¥".format(c)) #因为货币值不一定为整数,因此保留两位小数
elif Str in ['¥']:
    c = TempStr/6
    print("转化后的美元是{:.2f}$".format(c))
else:
    print("输入格式错误")

运行结果:
在这里插入图片描述
在这里插入图片描述
2.3 实例2的修改。改造实例代码2.1,绘制一条彩色蟒蛇,即在绘制Python蟒蛇的每个小段时,画笔的绘制颜色会发生变化。

import turtle
turtle.setup(650,350,200,200)    #窗口位置setup(width, height, startx, starty)
                                 #width -- 如为一个整型数值,表示大小为多少像素,如为一个浮点数值,则表示屏幕的占比;默认为屏幕的 50%
                                 #height -- 如为一个整型数值,表示高度为多少像素,如为一个浮点数值,则表示屏幕的占比;默认为屏幕的 75%
                                 #startx -- 如为正值,表示初始位置距离屏幕左边缘多少像素,负值表示距离右边缘,None 表示窗口水平居中
                                 #starty -- 如为正值,表示初始位置距离屏幕上边缘多少像素,负值表示距离下边缘,None 表示窗口垂直居中
turtle.penup()
turtle.fd(-250)        #画笔左移250像素
turtle.pendown()
turtle.pensize(25)      #画笔宽度25
turtle.seth(-40)   #设置画笔朝向 seth(X),X为角度,逆时针为正,即最上边为90.最下边为270/-90
turtle.pencolor("purple")
for i in range(4):
    turtle.circle(40,80)   #circle(radius(半径), extent(弧度), steps(以radius为半径圆的内切多边形边数))
    turtle.circle(-40,80)
    if(i%2==0):      #判断段数是否为偶数,若为偶数及为蓝色
        turtle.pencolor("blue")
    else:           #从第二段开始,若为奇数段即为黄色
        turtle.pencolor("yellow")
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)

运行结果:
在这里插入图片描述
2.4等边三角形的绘制。使用turtle库中的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形。

from turtle import *
pensize(5) #画笔宽度25
pencolor("red")
fd(200)   #三角形边长60
seth(120)   #旋转角度为120
fd(200)
seth(-120)
fd(200)
done()

运行结果:
在这里插入图片描述
2.5叠加等边三角形的绘制。使用turtle库中的turtle.fd()函数和turtle.seth()函数绘制一个叠加等边三角形。

from turtle import *
pensize(5) #画笔宽度25
pencolor("red")
seth(-120)
fd(100)
seth(0)
fd(100)
seth(120)
fd(100)
seth(0)
fd(100)
seth(-120)
fd(100)
seth(0)
fd(100)
seth(120)
fd(200)
seth(-120)
fd(100)
seth(0)
done()

运行结果:
在这里插入图片描述
我水平不行,写不短,只用seth()和fd()实在太长了。若它的小箭头不是在这个位置这个方向。用right,abs(pos())会简短一点代码。等我再学习学习,有更简便的方法再更新(这个的关键其实就是几何问题,只要算好角度,其实很简单)
2.6 五角正方形的绘制。利用turtle库函数绘制一个没有角的正方形。

from turtle import *
pensize(5) #画笔宽度25
pencolor("red")
for i in range(3):  #也可以直接把3改为4,去掉下面的四行。这样跟课本上的区别就是少了个小箭头,(我这个强迫症就非要跟书上一样)
     penup()
     fd(40)
     pendown()
     fd(160)
     penup()
     fd(40)
     pendown()
     left(90)
penup()
fd(40)
pendown()
fd(160)
done()

运行结果:
在这里插入图片描述
2.8正方形螺旋线的绘制。利用turtle库绘制一个正方形螺旋线。

from turtle import *
pensize(5) #画笔宽度25
pencolor("red")
for i in range(6):  #画6个三角形
    fd(100)  # 六角形边长100
    left(120)
    fd(100)
    left(120)
    fd(100)
    left(120)  # 画完一个三角形

    fd(100)
    right(60)  # 正六边形一个内角120°,因此转60度换方向
done()

运行结果:
在这里插入图片描述
2.8 正方形螺旋线的绘制。利用turtle库绘制一个正方形螺旋线。

from turtle import *
pensize() #这个画笔不宜太宽,就没设置尺寸
pencolor("red")
j = 10
n = 5
for i in range(51):  #若达到与课本上一样的位置,range(X),X一定要是三的倍数
    left(90)
    fd(j)
    j = j+n
seth(0)  #转换小箭头方向(强迫症)
done()

运行结果:
在这里插入图片描述
2.9 自定义Python蟒蛇绘制。根据实例2的设计思想,结合读者喜好,绘制一条区别于实例2的Python蟒蛇。
作者的喜好就是换个颜色,把purple换成blue。就这样,因为太简单就不贴代码了。

总结一下:第二章主要还是turtle库的运用,在第一章的结尾,已经贴了turtle的官方解释。但官方的解释始终有点抽象,具体的用法还要在具体的解题运用中感悟。

另外一点题外话,编程语言的学习在我看来还是要自己去写代码,创造属于自己风格的代码。现在的大多数题网上都可以找到答案,但每个人写代码的思路不一样,或许每一题的答案你都可以理解,但你不可能每一次找到的答案都是一个人写出来的,这样很大可能导致只记住了一道题的答案,出现新的问题时,一旦找不到答案就没有自己的思路。所以我认为,面对一个问题,一定要根据自己的知识储备先尝试自己解题,写不出来时再去找答案,理解别人的代码后再用自己的风格写出来。当然看别人的代码最大的好处应该就是可以打开思路,几乎每道题的答案都不唯一,不同的解题方法可以让你的思路更加开阔,不拘泥于一条脑回路。(以上种种仅代表个人看法,如有不同意见,别杠,杠就是你赢。)

注:写博客只是为了当笔记看,有任何问题可以评论说,一起互相交流学习

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Programming Python, 2nd Edition 目录如下,需要下载的朋友不要错过哦~ Programming Python, 2nd Edition By Mark Lutz Publisher : O'Reilly Pub Date : March 2001 ISBN : 0-596-00085-5 Pages : 1256 Copyright Foreword Preface "And Now for Something Completely Different . . . Again" Signs of the Python Times Why This Edition? Major Changes in This Edition Using the Examples and Demos Conventions Used in This Book Where to Look for Updates Contacting O'Reilly Acknowledgments Chapter 1. Introducing Python Section 1.1. "And Now for Something Completely Different" Section 1.2. The Life of Python Section 1.3. The Compulsory Features List Section 1.4. What's Python Good For? Section 1.5. What's Python Not Good For? Part I: System Interfaces Chapter 2. System Tools Section 2.1. "The os.path to Knowledge" Section 2.2. Why Python Here? Section 2.3. System Scripting Overview Section 2.4. The sys Module Section 2.5. The os Module Section 2.6. Script Execution Context Section 2.7. Current Working Directory Section 2.8. Command-Line Arguments Section 2.9. Shell Environment Variables Section 2.10. Standard Streams Section 2.11. File Tools Section 2.12. Directory Tools Chapter 3. Parallel System Tools Section 3.1. "Telling the Monkeys What to Do" Section 3.2. Forking Processes Section 3.3. Threads Section 3.4. Program Exits Section 3.5. Interprocess Communication Section 3.6. Pipes Section 3.7. Signals Section 3.8. Launching Programs on Windows Section 3.9. Other System Tools Chapter 4. Larger System Examples I Section 4.1. "Splits and Joins and Alien Invasions"

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值