admin 管理员组文章数量: 887021
2024年2月26日发(作者:十进制转换十六进制表)
程序设计基础(Python语言)
习题参考答案
习题1
一、选择题
1
C
2
A
3
B
4
A
5
D
6
B
7
A
8
A
9
A
10
B
二、问答题
1. Python语言是吉多·范·罗苏姆开发的,具有特点如下:
(1)解释执行
(2)面向对象
(3)开源性
(4)易用性
(5)可读性强
(6)可扩展性
(7)丰富的基础代码库
(8)成熟的扩展库
2. Python的主要应用领域
(1)Web 开发
(2)网络编程
(3)科学计算与数据可视化
(4)数据库应用
(5)多媒体开发
(6)电子游戏应用
三、程序设计题
1. 略
2.
>>> print('hello,world')
3.
(1)在IDLE中,“File”-“New File”
(2)输入代码
print('请输入您的姓名:')
name=input()
print(name,’欢迎您开启Python之旅!’)
(3)“File”-“保存”,输入文件名、选择保存路径,保存文件。
(4)“Run”-“Run Module”,运行程序。
习题2
一、选择题
1
D
2
C
3
D
4
D
5
A
6
D
7
C
8
A
9
D
10
D
二、填空题
1. -7.700000e+01
2. 0.0043
3. 1.0
三、程序设计题
1.
x=2.3e+3-1.34e-3j
a=
b=
print('实部为:',a,'虚部为:',b)
print('实部为:{:.2f},虚部为:{}'.format(a,b))
2.
a=eval(input("请输入秒数:"))
h=a//3600
m=(a%3600)//60
s=a%60
print('{:0>2}:{:0>2}:{:0>2}'.format(h,m,s))
3.
x=eval(input("请输入一个三位数:"))
b=x//100
s=(x%100)//10
g=x%10
print('百位数是',b,'十位数是',s,'各位数是',g)
习题3
一、选择题
1
B
2
B
3
B
4
C
5
C
6
A
7
C
8
B
9
D
10
D
二、填空题
1. 2
2. 【填空1】x+y+z>=240 and( x>=90 or y>=90 or z>=90)
3. 【填空1】if,【填空2】:,【填空3】d=0.8,【填空4】else
4. 【填空1】s=1,【填空2】i=2,【填空3】i<=10,【填空4】s*=i,【填空5】i+=1
5. 【填空1】range,【填空2】1000,【填空3】//,【填空4】%,【填空5】==
三、程序设计题
1. 参考代码如下:
x=int(input("请输入你的成绩:"))
if x>=90 :
msg="你是学霸的!"
else:
msg="请继续努力!"
print(msg)
2. 参考代码如下:
import math
TempStr=input('Please enter an angle or radian with units:')
x = eval(TempStr[0:-1])
if TempStr[-1] in ['A','a']:
y=x*/180
print('After convert, the radian is {:.2f}R'.format(y))
elif TempStr[-1] in ['R','r']:
y=180*x/
print('After convert, the angle is {:.2f}A'.format(y))
else:
print('The input data's format is incorrect.')
3. 参考代码如下:
import random
number=t(1,3)
usernum=int(input("请输入剪刀(1)、石头(2)、布(3)后面的数字:"))
print("电脑出的是",number)
x=usernum-number
if x==0:
msg='平局'
elif x in [-2,1]:
msg='玩家赢'
else:
msg='玩家输'
print(msg)
4. 参考代码如下:
s=0
t=1
i=1
while t>10**(-6):
t=1/(i**2)
s+=t
i+=2
pi=(s*8)**0.5
print('π的近似值为:',pi)
5. 参考代码如下:
for m in range(2,101):
i=2
for i in range(2,m):
if m%i==0:
break
if not (i print('{}是素数'.format(m)) 6. 参考代码如下: d=1 s=1020 while s>0: s=s-(s/2+2) d=d+1 print('需要{}天卖完。'.format(d)) 7. 参考代码如下: f=eval(input('请输入父亲的生日数:')) m=eval(input('请输入母亲的生日数:')) c=eval(input('请输入你的生日数:')) psword=0 for ps in range(100000,1000000): if ps%f==0 and ps%m==0 and ps%c==0: psword=ps break print('你的6位数密码是:',psword) 8. 参考代码如下: n=eval(input('请输入一个正整数:')) for a in range(1,n+1): for b in range(a+1,n+1): for c in range(b+1,n+1): if a**2+b**2==c**2: print(a,b,c,"是一组勾股数。") 9. 参考代码如下: 略 10. 参考代码如下: 略 习题4 一、选择题 1 C 2 C 3 C 4 D 5 C 6 B 7 C 8 C 9 A 10 B 二、填空题 1. 【填空1】input,【填空2】s,【填空3】upper(),【填空4】m,【填空5】‘*’ 2. 【填空1】0,【填空2】for,【填空3】in,【填空4】if,【填空5】else 3. 【填空1】randint,【填空2】pop,【填空3】0,【填空4】x,【填空5】a 三、程序设计题 1. 参考代码如下: import random li=[] for i in range(0,100): x=t(70,100) (x) print(li[i],end=" ") if (i+1)%10==0: print() x=min(li) print('最小数是{},位置在{}'.format(x,(x))) 2. 参考代码如下: cj=[] for i in range(10): a=eval(input('请输入一个成绩')) (a) print('这10个学生的成绩为:',cj) s=0 for x in cj: s=s+x ave=s/len(cj) cha=abs(cj[0]-ave) mincha=cha minzhi=cj[0] for x in cj: cha=abs(x-ave) if cha minzhi=x mincha=cha print('平均成绩为{}最接近平均成绩的是{}:'.format(ave,minzhi)) 3. 参考代码如下: import math a = [33, 76, 89, 21, 10, 44, 57, 69, 28, 71] s=0 for i in range(len(a)): s=s+a[i] ave=s/len(a) sdev=0 for i in a: sdev=sdev+(i-ave)**2 jz=(sdev/(len(a)-1)) () x=len(a) if x%2==0: med=(a[len(a)//2-1]+a[len(a)//2])/2 else: med=a[len(a)//2] print('平均值为{},标准差为{},中位数为{}'.format(ave,jz,med)) 4. 参考代码如下: addressdict={'Anna':'巴音布鲁克','Ray':'广州','Jack':'西安'} print(addressdict) 5. 参考代码如下: cat={'breed':'Persian','owner':'Jack'} dog={'breed':'Shepherd','owner':'Ray'} rabbit={'breed':'lop','owner':'Anna'} pets={'pet1':cat,'pet2':dog,'pet3':rabbit} print(pets) 习题5 一、选择题 1 B 2 C 3 A 4 A 5 B 6 A 7 B 8 D 9 B 10 C 二、读程序题 1 C 2 A 3 C 4 C 5 D 三、程序设计题 1. 参考代码如下: def jc(n): s=1 for i in range(1,n+1): s=s*i return s sum=0 for j in range(1,11): sum=sum+1/jc(j) print(sum) 2. 参考代码如下: def qh(ls,n): sum=0 for k in range(0,n): sum=sum+ls[k] return sum li=[33, 76, 89, 21, 10, 44, 57, 69, 28, 71] print('前3个元素之和为',qh(li,3)) print('前6个元素之和为',qh(li,6)) print('全部元素之和为',qh(li,len(li))) 3. 参考代码如下: def func(a,*b): for item in b: a *= item return a m = 1 print(func(m,1,1,2,3,5,7,12,21,33)) 4. 参考代码如下: def basic_compute( x,y,operater ): if operater=='+': z=x+y elif operater=='-': z=x-y elif operater=='*': z=x*y elif operater=='/': if y!=0: z=x/y else: z='Input error!' else: z='Input error!' return z try: a=eval(input('请输入x的数值:')) b=eval(input('请输入y的数值:')) ot=input('请输入运算符号:') print(basic_compute(a,b,ot)) except: print('Input error!') 5. 参考代码如下: def f(n): if n == 0 or n==1: a=1 else: a=f(n-1)+f(n-2) return a num = eval(input("请输入一个整数: ")) print(f(abs(num))) 习题6 一、选择题 1 2 3 4 5 6 7 8 B C D D B B D D 二、程序设计题 1. 参考代码如下: import random s='' for i in range(1,100): x=t(97,122) if chr(x) not in s: s+=(chr(x)) if len(s)==26: break with open('d:exam of ', 'w') as f: (s) #写出字符串 2. 参考代码如下: import csv li=[] with open('d:exam of ', newline='') as f: f_csv = (f) #创建对象 headers = next(f_csv) #标题 for row in f_csv: (row) c=0 m=0 e=0 for k in li: c=c+int(k[4]) m=m+int(k[5]) e=e+int(k[6]) cave=c/len(li) mave=m/len(li) eave=e/len(li) print(cave,mave,eave) headers=['语文平均分','数学平均分','英语平均分'] rows=[(str(cave),str(mave),str(eave))] with open('d:exam of ', 'w') as f: f_csv = (f) # 创建对象 f_ow(headers) #写入1行(标题) f_ows('n') f_ows(rows) 9 10 D C #打开文件 习题7 1、 创建一个Point类,它表示某个点的X和Y坐标的有序数值对。X和Y的值在实例化是传入到构造器。如果缺失某个坐标值,则自动设置为0。重写__str__函数,将X和Y的值以(X,Y)显示出来。 # -*- coding: utf-8 -*- # 习题7.1 class Point: """Point类 """ def __init__(self, x=0, y=0): self.x = x self.y = y def __str__(self): return "({}, {})".format(self.x, self.y) 2、创建一个堆栈类Stack。堆栈是--种具有后进先出( last-in-first-out,LIFO)特性的数据结构。Stack类要实现isempty()方法来判断堆栈是否为空,为空返回True,否则返回False;push()方法来往堆栈压入一个元素;pop()方法来从堆栈中取出一个元素(应该是最后压入堆栈的元素)。 # -*- coding: utf-8 -*- # 习题7.2 class Stack(): """Stack栈 """ def __init__(self): self._stack = [] def isempty(self): if len(self._stack) == 0: return True else: return False def push(self, x): self._(x) def pop(self): x = self._stack[-1] del self._stack[-1] return x 习题8 1、 创建一个0~1,间隔为0.01的数组1和服从正态分布的100个随机数的数组2,并对这两个数组进行加减运算。 arr1 = (0, 1, 0.01) arr2 = (100) result1 = arr1+arr2 result2 = arr1-arr2 2、 随机生成两个4×4的矩阵,并计算矩阵的乘积。 arr1 = ((4, 4)) arr2 = ((4, 4)) result1 = arr1*arr2 3、 绘制笛卡尔心形线。笛卡尔心形线是指当一个圆沿着另一个半径相同的圆滚动时,圆上一点的轨迹就是笛卡尔心形线。使用Numpy和matplolib绘制出笛卡尔心形线。 import as plt import numpy as np """采用极座标方程式 r = a*(1-sin(t)) """ t = ce(0.0, 2 * , 1000) a = 6 r = a * (1 - (t)) t(polar=True) (t, r, c = 'r') () 习题9 1、读取鸢尾花的csv数据文件,增加一列数据:SepalRatio,其值为 df['']/df['']。将数据按SepalRatio的降序进行排序,并将排好序的数据以Excel文件形式进行保存。 import pandas as pd df = _csv("", index_col=0) df['SepalRatio'] = df['']/df[''] _values("SepalRatio", ascending=False, inplace=True) _excel("iris_") 2、查看上题数据的ndim, shape, size,memory_usage。 print(, , ) print(_usage()) 3、按鸢尾花的种类进行分组,分别统计其中位数、标准差和方差。 print(y("Species").median()) print(y("Species").std()) print(y("Species").var())
版权声明:本文标题:程序设计基础(Python语言)-习题参考答案(周翔 版) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708948400h535052.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论