程序设计基础Python语言习题参考答案周翔 版Word格式文档下载.docx
《程序设计基础Python语言习题参考答案周翔 版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础Python语言习题参考答案周翔 版Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
print('
请输入您的姓名:
'
name=input()
print(name,’欢迎您开启Python之旅!
’)
(3)“File”-“保存”,输入文件名、选择保存路径,保存文件。
(4)“Run”-“RunModule”,运行程序。
习题2
二、填空题
1.-7.700000e+01
2.0.0043
3.1.0
1.
x=2.3e+3-1.34e-3j
a=x.real
b=x.imag
实部为:
a,'
虚部为:
b)
实部为:
{:
.2f},虚部为:
{}'
.format(a,b))
a=eval(input("
请输入秒数:
"
))
h=a//3600
m=(a%3600)//60
s=a%60
0>
2}:
2}'
.format(h,m,s))
3.
x=eval(input("
请输入一个三位数:
b=x//100
s=(x%100)//10
g=x%10
百位数是'
b,'
十位数是'
s,'
各位数是'
g)
习题3
1.2
2.【填空1】x+y+z>
=240and(x>
=90ory>
=90orz>
=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("
请输入你的成绩:
ifx>
=90:
msg="
你是学霸的!
else:
请继续努力!
print(msg)
2.参考代码如下:
importmath
TempStr=input('
Pleaseenteranangleorradianwithunits:
x=eval(TempStr[0:
-1])
ifTempStr[-1]in['
A'
'
a'
]:
y=x*math.pi/180
Afterconvert,theradianis{:
.2f}R'
.format(y))
elifTempStr[-1]in['
R'
r'
y=180*x/math.pi
Afterconvert,theangleis{:
.2f}A'
Theinputdata\'
sformatisincorrect.'
3.参考代码如下:
importrandom
number=random.randint(1,3)
usernum=int(input("
请输入剪刀
(1)、石头
(2)、布(3)后面的数字:
print("
电脑出的是"
number)
x=usernum-number
ifx==0:
msg='
平局'
elifxin[-2,1]:
玩家赢'
玩家输'
4.参考代码如下:
s=0
t=1
i=1
whilet>
10**(-6):
t=1/(i**2)
s+=t
i+=2
pi=(s*8)**0.5
π的近似值为:
pi)
5.参考代码如下:
forminrange(2,101):
i=2
foriinrange(2,m):
ifm%i==0:
break
ifnot(i<
m-1):
{}是素数'
.format(m))
6.参考代码如下:
d=1
s=1020
whiles>
0:
s=s-(s/2+2)
d=d+1
需要{}天卖完。
.format(d))
7.参考代码如下:
f=eval(input('
请输入父亲的生日数:
m=eval(input('
请输入母亲的生日数:
c=eval(input('
请输入你的生日数:
psword=0
forpsinrange(100000,1000000):
ifps%f==0andps%m==0andps%c==0:
psword=ps
你的6位数密码是:
psword)
8.参考代码如下:
n=eval(input('
请输入一个正整数:
forainrange(1,n+1):
forbinrange(a+1,n+1):
forcinrange(b+1,n+1):
ifa**2+b**2==c**2:
print(a,b,c,"
是一组勾股数。
9.参考代码如下:
略
10.参考代码如下:
习题4
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
li=[]
foriinrange(0,100):
x=random.randint(70,100)
li.append(x)
print(li[i],end="
"
if(i+1)%10==0:
print()
x=min(li)
最小数是{},位置在{}'
.format(x,li.index(x)))
cj=[]
foriinrange(10):
a=eval(input('
请输入一个成绩'
cj.append(a)
这10个学生的成绩为:
cj)
forxincj:
s=s+x
ave=s/len(cj)
cha=abs(cj[0]-ave)
mincha=cha
minzhi=cj[0]
cha=abs(x-ave)
ifcha<
mincha:
minzhi=x
mincha=cha
平均成绩为{}最接近平均成绩的是{}:
.format(ave,minzhi))
a=[33,76,89,21,10,44,57,69,28,71]
foriinrange(len(a)):
s=s+a[i]
ave=s/len(a)
sdev=0
foriina:
sdev=sdev+(i-ave)**2
jz=math.sqrt(sdev/(len(a)-1))
a.sort()
x=len(a)
ifx%2==0:
med=(a[len(a)//2-1]+a[len(a)//2])/2
med=a[len(a)//2]
平均值为{},标准差为{},中位数为{}'
.format(ave,jz,med))
addressdict={'
Anna'
:
巴音布鲁克'
Ray'
广州'
Jack'
西安'
}
print(addressdict)
cat={'
breed'
Persian'
owner'
dog={'
Shepherd'
rabbit={'
lop'
pets={'
pet1'
cat,'
pet2'
dog,'
pet3'
rabbit}
print(pets)
习题5
二、读程序题
defjc(n):
s=1
foriinrange(1,n+1):
s=s*i
returns
sum=0
forjinrange(1,11):
sum=sum+1/jc(j)
print(sum)
defqh(ls,n):
sum=0
forkinrange(0,n):
sum=sum+ls[k]
returnsum
li=[33,76,89,21,10,44,57,69,28,71]
前3个元素之和为'
qh(li,3))
前6个元素之和为'
qh(li,6))
全部元素之和为'
qh(li,len(li)))
deffunc(a,*b):
foriteminb:
a*=item
returna
m=1
print(func(m,1,1,2,3,5,7,12,21,33))
defbasic_compute(x,y,operater):
ifoperater=='
+'
z=x+y
elifoperater=='
-'
z=x-y
*'
z=x*y
/'
ify!
=0:
z=x/y
else:
z='
Inputerror!
returnz
try:
请输入x的数值:
b=eval(input('
请输入y的数值:
ot=input('
请输入运算符号:
print(basic_compute(a,b,ot))
except:
Inputerror!
deff(n):
ifn==0orn==1:
a=1
a=f(n-1)+f(n-2)
num=eval(input("
请输入一个整数:
print(f(abs(num)))
习题6
二、程序设计题
s='
foriinrange(1,100):
x=random.randint(97,122)
ifchr(x)notins:
s+=(chr(x))
iflen(s)==26:
withopen('
d:
\\examofpy\\wenjian\\char.txt'
'
w'
)asf:
f.write(s)#写出字符串
importcsv
\\examofpy\\wenjian\\scores.csv'
newline='
#打开文件
f_csv=csv.reader(f)#创建csv.reader对象
headers=next(f_csv)#标题
forrowinf_csv:
li.append(row)
c=0
m=0
e=0
forkinli:
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))]
\\examofpy\\wenjian\\aver.csv'
f_csv=csv.writer(f)#创建csv.writer对象
f_csv.writerow(headers)#写入1行(标题)
f_csv.writerows('
\n'
f_csv.writerows(rows)
习题7
1、创建一个Point类,它表示某个点的X和Y坐标的有序数值对。
X和Y的值在实例化是传入到构造器。
如果缺失某个坐标值,则自动设置为0。
重写__str__函数,将X和Y的值以(X,Y)显示出来。
#-*-coding:
utf-8-*-
#习题7.1
classPoint:
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()方法来从堆栈中取出一个元素(应该是最后压入堆栈的元素)。
#习题7.2
classStack():
Stack栈
def__init__(self):
self._stack=[]
defisempty(self):
iflen(self._stack)==0:
returnTrue
returnFalse
defpush(self,x):
self._stack.append(x)
defpop(self):
x=self._stack[-1]
delself._stack[-1]
returnx
习题8
1、创建一个0~1,间隔为0.01的数组1和服从正态分布的100个随机数的数组2,并对这两个数组进行加减运算。
arr1=np.arange(0,1,0.01)
arr2=np.random.randn(100)
result1=arr1+arr2
result2=arr1-arr2
2、随机生成两个4×
4的矩阵,并计算矩阵的乘积。
arr1=np.random.random((4,4))
arr2=np.random.random((4,4))
result1=arr1*arr2
3、绘制笛卡尔心形线。
笛卡尔心形线是指当一个圆沿着另一个半径相同的圆滚动时,圆上一点的轨迹就是笛卡尔心形线。
使用Numpy和matplolib绘制出笛卡尔心形线。
importmatplotlib.pyplotasplt
importnumpyasnp
采用极座标方程式r=a*(1-sin(t))
t=np.linspace(0.0,2*np.pi,1000)
a=6
r=a*(1-np.sin(t))
plt.subplot(polar=True)
plt.plot(t,r,c='
plt.show()
习题9
1、读取鸢尾花的csv数据文件,增加一列数据:
SepalRatio,其值为df['
Sepal.Width'
]/df['
Sepal.Length'
]。
将数据按SepalRatio的降序进行排序,并将排好序的数据以Excel文件形式进行保存。
importpandasaspd
df=pd.read_csv("
iris.csv"
index_col=0)
df['
SepalRatio'
]=df['
df.sort_values("
SepalRatio"
ascending=False,inplace=True)
df.to_excel("
iris_rt01.xlsx"
2、查看上题数据的ndim,shape,size,memory_usage。
print(df.ndim,df.shape,df.size)
print(df.memory_usage())
3、按鸢尾花的种类进行分组,分别统计其中位数、标准差和方差。
print(df.groupby("
Species"
).median())
).std())
).var())