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())


本文标签: 输入 堆栈 保存 进行 数据