python编程题2

1. 编写函数isodd(x),若x不是整数,给出提示后退出程序;如果x为奇数,返回True,如果x为偶数,返回False。

def isodd(x):
    if int(x)!=x:
        print("x不是整数,程序退出")
        return
    elif x//2 != x/2:
        return True
    else:
        return False
    
print(isodd(3))
print(isodd(3.2))    
print(isodd(32))

2. 编写函数change(str1),其功能是对参数str1进行大小写转换,其中的大写字母转换成小写字母;小写字母转换成大写字母;非英文字符不转换。

def change(str1):
    t=""
    for i in range(len(str1)):
        if str1[i].islower():
            t+=str1[i].upper()
        elif str1[i].isupper():
            t+=str1[i].lower()
        else:
            t+=str1[i]
    return t
print(change("iu98kLLD"))

3. 编写并测试函数gcd(m, n)和lcm(m, n),功能是求两个整数的最大公约数和最小公倍数。

def gcd(m,n):
    if m<n:m,n=n,m
    r=m%n
    while r!=0:
        m=n
        n=r
        r=m%n
    return n

def lcm(m,n):
    t=m*n
    return int(t/gcd(m,n))

m=eval(input("请输入正整数m:"))
n=eval(input("请输入正整数n:"))
print("最大公约数是",gcd(m,n))
print("最小公倍数是",lcm(m,n))

4. 编写并测试函数reverse(x),输入一个整数,将各位数字反转后输出。

def reverse(x):
    y=str(x)
    y=y[::-1]
    return int(y)
print(reverse(12345))

5. 设计一个Group类,在该类中包括:一个数据成员score(每个学生的分数)、两个类成员total(班级的总分)和count(班级的人数)。成员方法setScore(socre)用于设置分数,成员方法sum()用于累计总分,类方法average()用于求平均值。交互式输入某组学生的成绩,显示该组的总分和平均分。

class Group:
    total = count = 0
    
    def setScore(self, score):
        self.score = score

    def getScore(self):
        return self.score

    def __init__(self, score):
        self.setScore(score)
        Group.count += 1
        self.sum()

    def sum(self):
        Group.total+=self.getScore()

    @classmethod
    def average(cls):
        return Group.total/Group.count

    @classmethod
    def show(cls):
        print("总分是:{}".format(Group.total))
        print("平均分是:{}".format(Group.average()))

s1=Group(90)
s2=Group(87)
s3=Group(93)

Group.show()

6. 使用random库,产生10个100到200之间的随机数,并求其最大值、平均值、标准差和中位数。

#平均数
def mean(numlist):
    s = 0.0
    for num in numlist:
        s = s + num
    return s/len(numlist)


##标准差=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/n)。
def dev(numlist,mean):
    sdev = 0.0
    for num in numlist:
        sdev = sdev + (num - mean)**2
    return (sdev /(len(numlist)-1) )** 0.5

def median(numlist):
    numlist.sort()
    half = len(numlist) // 2
    return (numlist[half] + numlist[~half]) / 2

#函数调用
ls1 = [1,3,-6,5,8]
ls2=[3.2,9,-32,56,0,1]

v1=max(ls2)
v2=mean(ls2)
v3=dev(ls2,v2)
v4=median(ls2)

print("最大值:{:.2f},平均值:{:.2f},标准差:{:.2f},中位数:{:.2f}".format(v1,v2,v3,v4))

7. 将一个文件中的所有英文字母转换成大写,复制到另一文件中。

fi=open("ex0701.py",'r')
fo=open("f2.txt",'w')
for line in fi:
    line=line.upper()
    fo.write(line)

fi.close()
fo.close()

8. 接收用户从键盘输入的一个文件名,然后判断该文件是否存在于当前目录。若存在,则输出以下信息:文件是否可读和可写、文件的大小、文件是普通文件还是目录。

import os,os.path

filename=input("请输入文件的全名:")
if os.path.exists(filename):
    print("该文件存在于当前目录下")
    print("-----下面是文件信息-------")
    print("文件大小是:",os.path.getsize(filename))
    if os.path.isfile(filename):
        print(filename,"是一个文件")
    else:
        print(filename,"是一个目录")
    
else:
    print("该文件不存在!")

9. 编写绘制余弦三角函数y=cos(2x)的程序。

import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(6,3))      #创建绘图对象
x=np.arange(0,np.pi*4,0.01)
y=np.cos(2*x)
plt.plot(x,y,color="b",ls='--',linewidth=2.0)
plt.xlabel("x")               #x轴文字
plt.ylabel("cos(2x)")         #y轴文字
plt.ylim(-1,1)                #y轴范围
plt.title("y=cos(2x)")         #图表标题

10. 绘制一个散点图。

提示:使用import matplotlib.pyplot as plt和help(plt.scatter)查看绘制散点图的帮助信息。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,np.pi*4,0.2)
y=np.sin(x)
plt.xlabel("y=sin(x)")
plt.ylabel("sin(x)") 
plt.scatter(x,y,c='b',marker='x')
plt.show()

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值