附录 实验指导
实验 1
Python 语言基础
6.计算并输出π 2。请补充程序,并上机运行该程序。
import math
p=
①
print(p)
①math.pi*math.pi
实验 2 顺序结构程序设计
3.输入自己的出生年、月、日,按下列格式输出自己的出生日期信息。
1992,12,5↙
我的出生日期是 1992 年 12 月 05 日
y,m,d=eval(input())
print("我的出生日期是{0}年{1:02d}月{2:02d}日".format(y,m,d))
4.输入一个正的实数 x,分别输出 x 的整数部分和小数部分。
x=eval(input("输入一个正的实数:"))
k=int(x)
#求整数部分
y=x-k
#求小数部分
print("{0:f}={1:d}+{2:f}\n".format(x,k,y))
实验 3 选择结构程序设计
1.若从键盘输入 55,写出以下程序的输出结果。
a=int(input())
if a>40:
print("a1=",a)
if a<50:
print("a2=",a)
if a>30:
print("a3=",a)
2.分析以下程序的输出结果,说明出现该结果的原因,应该如何修改程序?
x=2.1
y=2.0
if x-y==0.1:
print("Equal")
else:
print("Not Equal")
3.下面程序的功能是判断一个整数是否能被 3 或 7 整除,若能被 3 或 7 整除,则输出“Yes”,
否则输出“No”,请补充程序。
m=int(input())
:
if
①
print("Yes")
1
else:
print("No")
①m%3==0 or m%7==0
实验 4 循环结构程序设计
二、实验内容
1.写出下列程序的运行结果。
i=1
while i+1:
if i>4:
print(i)
i+=1
break
print(i)
i+=2
1
3
5
2.写出下列程序的运行结果。
sum=j=1
while j<=3:
f=1
for i in range(2,2*(j+1)):
f*=i
sum+=f
j+=1
print("sum=",sum)
sum= 5167
3.阅读下面的 Python 程序,程序的功能是什么?
import math
n=0
for m in range(101,201,2):
k=int(math.sqrt(m))
for i in range(2,k+2):
if m%i==0:break
if i==k+1:
if n%10==0:print()
print(m,end=' ')
n+=1
输出 100~200 间的全部素数,每行输出 10 个数。
实验 6 字符串与正则表达式的应用
1.写出程序的运行结果。
c='123'+'456'+'789'
2
c+=c[-3:]*2
print(c)
2.写出下列程序的功能。
for k in range(1,11):
w=input()
if 'AEIOUaeiou'.find(w[0])>=0:print(w)
3.下面是打印图实验 6-1 所示的金字塔图案的程序,请补充程序。
图实验 6-1 金字塔图案
for i in range(1,6):
print(' '*(15-i),end='')
print('*'*
)
①
①(2*i-1)
8.利用正则表达式判断字符串是否只有小写字母或数字。
import re
s='12345abc'
if re.match('^[0-9a-z]+$',s):
print('符合要求')
else:
print('不符合要求')
实验 7 列表与元组的应用
1.写出程序的运行结果。m= 3
a=[50,75,53,92,77,64,79,21]
s=[0]*10
for i in range(len(a)):
k=a[i]//10
s[k]=s[k]+1
m=s[0]
k=1
while k<10:
if s[k]>m:
m=s[k]
k+=1
print('m=',m)
2.下面的程序是希望从键盘输入 10 个数,并用它们建立元组 p,但程序运行时出现错误:
AttributeError: 'tuple' object has no attribute 'append'
请修改程序,使程序能达到要求。
p=()
3
for i in range(10):
x=int(input())
p.append(x)
print(p)
3.筛选法求[2,n]范围内全部素数的基本思路是:在 2~n 中划去 2 的倍数(不包括 2),
再划去 3 的倍数(不包括 3),由于 4 已被划去,再找 5 的倍数,……,直到划去不超过 n 的倍
数,剩下的数都是素数。下面是用筛选法求[2,n]范围内的全部素数的程序,请补充程序。
from math import *
n=int(input("请输入 n:"))
m=int(sqrt(n))
p=[i for i in range(n+1)]
for i in range(2,m+1):
if p[i]:
for j in range(2*i,n+1,
p[j]=0
for i in range(2,n+1):
if
②
:
①
):
#去掉 i 的倍数
#输出全部素数
print(p[i])
①i,②p[i]或 p[i]!=0
7.生成包含 20 个随机整数的元组,将前 10 个数按升序排列,后 10 个数按降序排列。
a=tuple(randint(10,99) for i in range(0,20))
y=sorted(a[0:10])+sorted(a[10:20],reverse=True)
tuple(y)
实验 8 字典与集合的应用
1.写出程序的运行结果。
d={'Jack':'jack@mail.com','Tom':'Tom@mail.com'}
d['Jim']='Jim@sin.com'
del d['Tom']
s=list(d.keys())
s=sorted(s)
print(s)
2.写出程序的运行结果。
numbers={}
numbers[(1,2,3)]=1
numbers[(2,1)]=2
numbers[(1,2)]=3
sum=0
for k in numbers:
sum+=numbers[k]
print(len(numbers),sum,numbers)
3 6 {(1, 2): 3, (2, 1): 2, (1, 2, 3): 1}
3.写出程序的运行结果。
a=set('ababcdabca')
4
x={x for x in a if x not in 'ab'}
print(a-x)
print(a|x)
print(a^x)
print(a&x)
4.从键盘输入整数 x,判断它是否集合 a,b,c 的元素,若是分别输出 1,2,3,若都
不是输出 4,要求集合 a 从键盘输入。请补充程序。
a.
②
(int(input()))
x=int(input())
a=
for i in range(5):
①
b={12,43,56,2}
c={3,2,67}
if x in a:
elif x in b:
elif x in c:
else:
y=1
y=2
y=3
y=4
print('y=',y)
①set(),②add
实验 9 函数的应用
1.写出下列程序的运行结果。12
def foo(num):
for j in range(2,num//2+1):
if num%j==0:
return False
else:
return True
def main():
n,c=8,0
for i in range(2,n+1):
if foo(i):
c+=i
print(c)
main()
if __name__=='__main__':
2.写出下列程序的运行结果。
def foo(list,num):
if num==1:
list.append(0)
5
elif num==2:
foo(list,1)
list.append(1)
elif num>2:
foo(list,num-1)
list.append(list[-1]+list[-2])
mylist=[]
foo(mylist,10)
print(mylist)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
3.下列程序的作用是求两个正整数 m,n 的最大公约数,请补充程序。
def gcd(m,n):
if m
2.写出程序的运行结果。
import math
class Circle:
def __init__(self,radius):
self.radius=radius
def getRadius(self):
return self.radius
def getArea(self):
return math.pi*self.radius*self.radius
def main():
c1=Circle(10)
print(c1.getRadius())
print('{:7.2f}'.format(c1.getArea()))
if __name__=='__main__':
main()
10
314.16
3.定义一个 Circle 类,根据圆的半径求周长和面积。再由 Circle 类创建两个圆对象,
其半径分别为 5 和 10,要求输出各自的周长和面积。请补充程序。
import math
class Circle:
①
def
(self,radius=5):
self.radius=radius
def getPerimeter(self):
#返回圆的周长
return 2*math.pi*self.radius
def getArea(self):
#返回圆的面积
return math.pi*self.radius*self.radius
②
#创建两个圆对象
c1=Circle()
c2=
print(c1.radius,c1.getPerimeter(),c1.getArea())
print(c2.radius,c2.getPerimeter(),c2.getArea())
①__init__,②Circle(10)
实验 11 文件操作
1.写出程序的运行结果。45
f=open("a.dat","w")
for i in range(10):
f.write(str(i))
f.close()
f=open("a.dat","r")
s=list(f.read())
f.close()
t=0
for i in s:
7
t+=int(i)
print(t)
2.写出程序的运行结果。输出:25
s=0
fo=open("file.txt","w+")
for i in range(1,10):
fo.write(str(i))
fo.seek(0)
ls=fo.read()
fo.close()
for x in ls:
s+=int(x) if int(x)%2 else 0
print("输出:{:d}".format(s))
3.有一个文本文件 sample.txt,其内容包含小写字母和大写字母。请将该文件复制到另一
文件 sample_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。请补
充程序。
f=open("sample.txt")
L1=f.readlines()
f2=open("sample_copy.txt",
for line in L1:
(line.upper())
②
f.close()
f2.close()
①'w',②f2.write
①
)
实验 12 异常处理
1.写出下列语句的执行结果,如果出现异常则写出异常类型。
>>> x+y=9
>>> Print(12)
>>> print(xyxy)
>>> print(12/0)
>>> print(12/'0')
>>> f=open('aaa.dat')
>>> x=[1,2,3,4,5]
>>> print(x[5])
2.写出程序的运行结果。
x="Python"
try:
print(x[5])
print(x[6])
except IndexError:
print("Index wrong!")
3.写出程序的运行结果。
try:
8