Python小白基础实验练习题(四)题目

文章包含了多个Python编程练习题目,涉及函数定义、递归算法、求最大公约数、面向对象编程(如类和方法)、角度和弧度转换、距离计算、文件读写操作以及数据统计等内容。
摘要由CSDN通过智能技术生成

-------------源文件已置顶-------------

1.写出程序的运行结果。

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)
if __name__=='__main__:
    main ()

2.写出程序的运行结果。

def foo(list, num) :
    if num==1:
        list .append(0)
    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)

3.下列程序的作用是求两个正整数m, n的最大公约数,请补充程序。

def gcd (m,n) :
    if m<n:
        m,n=n, m
    if m&n==0:
    _____(1)______
    else:
        return _____(2)______
ans=gcd(84, 342)
print (ans)

4.计算空间一点p(xy,z)的方向弦,其计算公式如下:

\cos \alpha =\frac{\chi }{\sqrt{\chi ^{2}+y^{2}+z^{2}}}\cos \beta =\frac{\chi }{\sqrt{\chi ^{2}+y^{2}+z^{2}}}\cos \gamma =\frac{\chi }{\sqrt{\chi ^{2}+y^{2}+z^{2}}}

其中,a、β、γ为点P到原点直线与坐标轴x、y、z的夹角。

5.定义一个函数,它返回整数n从右边开始数的第k个数字。

6.定义一个函数,如果数字d在整数n的某位中出现,则返回True, 否则返回False.

7.已知:

y=\frac{s(x,n)}{s(x+1.75,n)+s(x,n+5)}

其中,输入x和n的值,求y值。要求分两种情况实现:直接在程序中定义函数s(x,n);在模块中定义函数s(x, n)。

8.若Fibonacci数列的第n项记为fib(a,b,n),则有下面的递归定义:

fib(a,b,1)=a

fib(a,b,2)=b

fib(a,b,n)=fib(b,a+b,n-1)    (n>2)

用递归方法求5000之内最大的一项。

9.写出程序的运行结果。

class P1:
    def foo(self) :
        print('called P1-foo')
class P2:
    def foo(self) :
        print('called P2-foo')
    def bar (self) :
        print('called P2-bar')
class C1 (P1,P2) :
    pass
class C2(P1,P2) :
    def bar (self) :
        print('called C2-bar () ')
class GC(C1,C2) :
    pass
gc=GC()
gc.foo()
gc.bar ()

10.写出程序的运行结果。

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

11.定义一个Circle类,根据圆的半径求周长和面积。再由Circle类创建两个圆对象,其半径分别为5和10,要求输出各自的周长和面积。请补充程序。

import math
class Circle:
    def ____(1)____(self, radius=5) :
        self. radius=radius
    def getPerimeter(self) :    #返回圆的周长
        return 2*math.pi*self. radius
    def getArea(self) :   #返回圆的面积
        return math.pi*self.radiusself.radius
c1=Circle()    #创建两个圆对象
c2=_____(2)_____
print (c1. radius, c1.getPerimeter(),cl.getArea())
print (c2. radius, c2.getPerimeter (),c2.getArea())

12.利用面向对象方法求n!,并输出10!的值。

13.定义change类,用以实现角度和弧度之间的转换。

14.设计点类,并为这个点类设置一个方法来计算两个点之间的距离。

15.设计长方形类,并用其成员函数计算两个给定的长方形的周长和面积。

16.已有若干个学生数据,这些数据包括学号、姓名、程序设计基础成绩、高等数学成绩和英语成绩,要求定义学生类,并用其成员函数求各门课程的平均分。

17.写出程序的运行结果。

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:
    t+=int (i)
print (t)

18.写出程序的运行结果。

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

19.有一个文本文件sample.txt, 其内容包含小写字母和大写字母。请将该文件复制到另文件sample_copy.txt中,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。请补充程序。

f=open ("sample. txt")
L1=f. readlines ()
f2=open("sample_ copy. txt",______(1)______)
for line in L1 :
    ____(2)____(line .upper())
f.close ()
f2.close ()

20.设文件integer.dat中放了一组整数,统计文件中正整数、零和负整数的个数,将统计结果追加到文件integer.dat的尾部,同时输出到屏幕上。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值