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