大家好,给大家分享一下python题库及答案解析,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
题目答案(代码部分博主手打)不唯一,仅供参考,可提供修改意见。
- 编写程序,使用循环语句输出1+2+3+…+100的和Python Turtle画递归树。
sum=0
for i in range(1,101):
sum+=i
print("1+2+3+…+100的和为",sum)
2.编写程序,使用循环语句输出1+4+7+10+13+…+112的和。
sum=0
for i in range(1,113,3):
sum+=i
print("1+4+7+10+13+…+112的和为",sum)
3.编程程序,使用循环语句输出5+10+15+20+25+…+100的和
sum=0
for i in range(5,101,5):
sum+=i
print("5+10+15+20+25+…+100的和为",sum)
4. 编写程序,从键盘输入两个正整数,计算并输出这两个数的最大公约数。
a=int(input("请输入第一个正整数:"))
b=int(input("请输入第一个正整数:"))
while(a):
if a<b:
t=a
a=b
b=t
a%=b
print("这两个正整数的最大公约数为:",b)
5. 编写程序,输入一个18位的身份证号码,从中提取出生日期,并以“出生日期是*年*月*日”样的格式输出。
m=input('请输入一个18位的身份证号:')
if len(m)<18:
print("输入错误!")
else:
a=int(m[6:10])
b=int(m[10:12])
c=int(m[12:14])
print('出生日期是%d年%d月%d日'%(a,b,c))
6. 编写程序,用户输入一个月份,输出该月份所属0的季节。要求对输入的非法数据进行判断,直到输入正确的月份为止。
i=1
while i:
m=float(input('请输入一个月份:'))
if m>12 or m<=0 or m%1!=0:
i=1
print('输入的数据为非法数据,请重新输入!')
else:
i=0
if m>0 and m<=3:
print('%d月所属第一季度'%m)
elif m>=4 and m<=6:
print('%d月所属第二季度'%m)
elif m>=7 and m<=9:
print('%d月所属第三季度'%m)
elif m>=10 and m<=12:
print('%d月所属第四季度'%m)
7. 编写函数IsPrime(n),用来判断整数n是否为素数,并编写测试代码,调用该函数。
def IsPrime(n):
a=int(n/2+1)
j=0
for i in range(2,a):
if n%i==0:
j+=1
if j>0:
print('%d不是素数'%n)
else:
print('%d是素数'%n)
n=int(input('请输入一个正整数:'))
IsPrime(n)
8. 编写程序,输出100~200之间的所有素数。
def IsPrime(n):
a=int(n/2+1)
j=0
for i in range(2,a):
if n%i==0:
j+=1
if j>0:
print('%d不是素数'%n)
else:
print('%d是素数'%n)
for n in range(100,201):
IsPrime(n)
9. 编写函数Fac(n),用于求n!,其中n>=0, 并编写测试代码调用该函数。
def Fac(n):
i=1
for j in range(2,n+1):
i*=j
print('%d!=%d'%(n,i))
n=int(input('请输入一个正整数:'))
Fac(n)
10. 编写程序,求:今有鸡兔同笼,上有35头,下有94足,问鸡兔各几何?
for chicken in range(0,36):
if chicken*2+(35-chicken)*4==94:
print('鸡有%d'%chicken,'兔有%d'%(35-chicken))
11.编写程序,能完成简单的指法练习功能:由系统随机从26个大小写字母中选出10个,由用户输入,并统计用户输入的准确率。
import random
chars="abcdefghijklmnopqrstuvwxyz"
a=[random.choice(chars) for j in range(10)]
a=''.join(a) #将列表中所有字符连接成字符串
print(a)
b=input('请输入上文内容:')
num=0
i=1
while i:
if len(a)!=len(b):
print('输入长度不相等')
i=1
else:
i=0
for a_ch,b_ch in zip(a,b):
if a_ch==b_ch:
num+=1
rate=num/len(a)
print('准确率为:',rate)
12.编写程序,生成一个文件,文件名为“学号姓名.txt”(写自己真实的学号和姓名,机器不支持汉字的可以用拼音);文件内容为学Python这门课的收获、感想或建议。
a=['学号:1907381106',
'姓名:陈佳'
]
f=open("学号姓名.txt",'w',encoding='utf8')
f.writelines(a)
f.close()
print('写入成功!')
13.读取一个Python源程序文件“text1.py”,去掉其中的空行和注释行,然后写入另一文件“text2.py”。
f1=open("text1.py","r",encoding='utf8')
f2=open("text2.py","w",encoding='utf8')
lines=f1.readlines()
for i in lines:
if len(i)!=1 and not(i.startswith("#")):
f2.writelines(i)
f1.close()
f2.close()
print('成功!')
14. 编写程序,将九九乘法表按照规范的格式输出到文件“9981.txt”中。
with open('9981.txt','w') as f:
for i in range(1,10):
for j in range(1,i+1):
a=str(j)+'*'+str(i)+'='+str(i*j)+'\t'
print(a,end='')
f.write(a)
print()
f.write('\n')
15. 编写程序,创建基类Person,其成员包括实例属性name和age,实例方法setName()和setAge()分别用来给实例属性赋值,实例方法show()用来输出实例属性name和age的值;创建派生类Student,继承Person类,新增实例属性major(专业),新增实例方法setMajor()用来给实例属性major赋值,重写基类的实例方法show()输出所有实例属性的值。利用__init__()构造方法完成Person和Student类的对象初始化工作,并编写测试代码。
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def setName(self,name):
self.name=name
def setAge(self,age):
self.age=age
def show(self):
print(self.name,self.age)
class Student(Person):
def __init__(self,name,age,major):
Person .__init__(self,name,age)
self.major=major
def setMajor(self,major):
self.major=major
def show(self):
print(self.name,self.age,self.major)
p=Person('陈一',21)
p.setName('程二')
p.setAge(20)
p.show()
f=Student('陈二',15,'初中生')
f.setName('陈一')
f.setAge(21)
f.setMajor('大数据')
f.show()
16. 编写程序,创建基类Shape,其成员包括实例属性color,实例方法getColor()用于获取实例属性color的值,实例方法setColor()用来设置实例属性color的值;创建派生类Rectange,继承Shape类,新增实例属性length(长)和width(宽),新增实例方法getPerimeter ()和getArea()用来分别获取长方形的周长和面积。利用__init__()构造方法完成Shape和Rectange类的对象初始化工作,并编写测试代码。
class Shape:
def __init__(self,color):
self.color=color
def getColor(self):
print(self.color)
def setColor(self,color):
self.color=color
class Rectange(Shape):
def __init__(self,color,length,width):
Shape .__init__(self,color)
self.length=length
self.width=width
def setPerimeter(self,length,width):
self.length=length
self.width=width
print('周长为:',(self.length+self.width)*2)
def setArea(self,length,width):
self.length=length
self.width=width
print('周长为:',self.length*self.width)
p=Shape('蓝色')
p.getColor()
p.setColor('绿色')
p.getColor()
f=Rectange('红色',3,4)
f.setPerimeter(2,3)
f.setArea(2,3)
17.编写程序,创建基类Vehicle,其成员包括实例属性brand(品牌)和color(颜色),实例方法showInfo()用来输出实例属性brand和color的值;创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),重写基类的实例方法showInfo ()输出所有实例属性的值。利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码。
class Vehicle:
def __init__(self,brand,color):
self.brand=brand
self.color=color
def showInfo(self):
print(self.brand,self.color)
class Car(Vehicle):
def __init__(self,brand,color,seat):
Vehicle .__init__(self,brand,color)
self.seat=seat
def showInfo(self):
print(self.brand,self.color,self.seat)
p=Vehicle('兰博基尼','蓝色')
p.showInfo()
f=Car('红旗','白色',4)
f.showInfo()
18.用Windows记事本创建一个文本文件,其中每行包含一段英文,编写程序,读出文件的全部内容,并输出该文本文件的行数,以及一行中包含字符最多的和包含字符最少的分别在第几行。
f=open("English.txt",'r')
lines=f.readlines()
count=len(lines)
l=[]
m=0
n=0
for i in lines:
num=len(i)
l.append(num)
print("这文本文件共有%d行"%count)
print("一行中字符最多的在第%d行"%(l.index(max(l))+1))
print("一行中字符最少的在第%d行"%(l.index(min(l))+1))
19.编写程序,产生两个0~100之间的随机整数a和b,求这两个整数的最大公约数和最小公倍数。( 两个数的最小公倍数 = 两个数的乘积 / 两个数的最大公约数)。
import random
a=random.randint(0,100)
b=random.randint(0,100)
i=a
j=b
print('a=',a)
print('b=',b)
while(a):
if a<b:
t=a
a=b
b=t
a%=b
print("这两个正整数的最大公约数为:",b)
c=i
while (not(c%i==0 and c%j==0)):
c+=1
print("这两个正整数的最小公倍数为:",c)
20.编写程序,输入一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'和'E',90~100分为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
n=int(input('请输入一个百分制成绩:'))
if n<=100 and n>=90:
print('成绩等级为A')
if n<=89 and n>=80:
print('成绩等级为B')
if n<=79 and n>=70:
print('成绩等级为C')
if n<=69 and n>=60:
print('成绩等级为D')
if n<60:
print('成绩等级为E')