import random
# 等腰梯形求面积。
a1 = 2 #eval(input("up long:"))
b1 = 3 #eval(input("down long:"))
c1 = 4 #eval(input("height:"))
if a1 > 0 and b1 > 0 and c1 >0:
s = (a1+b1)*c1/2
print('1.等腰梯形求面积:',s)
else:
print("input positive number")
#输入10个人的成绩,求平均成绩,并将优秀的成绩输出。设成绩>80分为优秀.
scorelist = []
sumscore = 0
excellscore = []
for i in range (10):
score = random.randint(50,100)
scorelist.append(score)
for j in scorelist:
if j > 80:
excellscore.append(j)
sumscore += j
avgescore = sumscore/10
print('2.求平均成绩:',avgescore)
print(excellscore)
# 给出一个字符串,将其中的字符“e"用"^"替换后输出。
str1 ='3.Sometime I want to study in nice day'
for i in str1:
if i == "e":
print("^",end="")
else:
print(i,end='')
print()
# 一个人的18位的身份证号,以类似于“2001年09月12日”的形式输出该人的出生日期
ID1 = '330402200105219999'
nian = ID1[6:10]
yue = ID1[10:12]
ri = ID1[12:14]
print("4.her birthday is %s.%s.%s"%(nian,yue,ri))
# print("4.her birthday is {}.{}.{}".format(nian,yue,ri))
# 判断自然数 0,1,2,3,4,5......
num1 = 3.14#0 3.14 -6
if num1 >= 0 and num1- int(num1)==0:
print("5.是自然数")
else:
print("5.不是自然数")
# 大小写的相互转换
bigsmall = "6.i wANT tO yOU! HaHZHz"
for i in bigsmall:
if ord(i) >= 97 and ord(i) <= 122:
print(chr(ord(i)-32),end='')
elif ord(i) >= 65 and ord(i) <= 90:
print(chr(ord(i)+32),end='')
else:
print(i,end='')
print()
# 求相反数
d = -99
print("7.-99的相反数:",d*(-1))
# 从小到大排列三个数
num2 = random.randint(0,30)
num3 = random.randint(0,30)
num4 = random.randint(0,30)
if num2 > num3:
num2,num3 = num3,num2
if num2 > num4:
num2,num4 = num4,num2
if num3 > num4:
num3,num4 = num4,num3
print("8.从大到小输出三个数:",num2,num3,num4)
# 判断三角形类型:
a = 1
b = 1
c = 2**0.5
if (a+b)>c and a+c>b and b+c>a:
if (a**2+b**2)-c**2<1e-5 or (a**2+c**2)-b**2<1e-5 or (b**2+c**2)-a**2<1e-5:
if a==b or a==c or b==c:
print("9.等腰直角三角形(2,3,4的情况下程序不成立) ")
else:
print("9.直角三角形")
elif a==b or a==c or b==c:
print("9.等腰三角形")
else:
print("9.其它三角形")
else:
print("9.不是三角形")
# 1000以内含7不含0且不能被5整除的数。
count1 = 0
for i in range(1000):
if i//100 ==7 or i//10%10 ==7 or i%10==7:
if i > 10:
if i//10%10!=0 and i%5!=0:
count1 +=1
print(i,end=' ')
else:
if i%5 != 0:
count1 +=1
print(i,end=" ")
print("\n一共有{}个数".format(count1))
# 斐波那契数列前20个数。
print("11.斐波那契数列的前20项:")
def feibo(n):
a2, b2 = 1, 1
for i in range(n):
print("{:>6}".format(a2),end="")
a2,b2=b2,a2+b2
if (i+1)%5==0:
print()
feibo(20)
# 求1+到n的和。
def numadd(n):
addsum = 0
for i in range(1,n+1):
addsum += i
return addsum
print("12.1+到99的和:",numadd(99))
# 求6个人三门课成绩总和,并输出最高分。
# print("13.求6个人三门课成绩总和,并输出最高分:")
# array_new=[]
# sum=0
# array=[]
# sum_array=[]
# k=0
# for j in range(1,7):
# array=list((input("请输入第 "+"%d"%j+" 个学生三门课程的分数:").split(',')))
# for i in array:
# array_new.append(float(i))
# sum=sum+array_new[k]
# k=k+1
# sum_array.append(sum) #得到总成绩的一个列表。
# sum=0
# sum_array=sorted(sum_array,reverse=True)
# print("总分最高的是 :",sum_array[0])
# 求1-3+5-7+9……-99+101=?
sum2=0
for i in range(1,102):
if i%2==0:
sum2-=i
if i%2==1:
sum2+=i
print("14.1-3+5-7+9……-99+101=",sum2)
# 求 n!
sum3 = 1
sum4 = 0
for i in range(1,21):
sum3 *= i
sum4 =sum4+sum3
print("15.20!=",sum3,"\n前20个阶乘总和=",sum4)
def fact(n):
if n==0:
return 1
elif n==1:
return 1
else:
return n*fact(n-1)
print("15.用递归的方法求 20!=",fact(20))
# 猴子每天吃一半多一个🍑,第十天只剩一个,问原来共有几个。
peach = 1
for i in range(1,10):
peach=(peach +1)*2
print("16.猴子吃桃,它原来有几个:",peach)
# 1000以内的水仙花数。
print("17.1000以内的水仙花数:",end="")
for i in range(100,1000):
if (i//100)**3+(i//10%10)**3+(i%10)**3==i:
print(i,end=",")
# 1000以内完全数。完全数:除了自身以外的约数的和,恰好等于它本身。
print("\n18.1000以内完全数:",end="")
for i in range (1,1000):
num5 = 0
for j in range(1,i):
if i%j==0:
num5+=j
if num5==i:
print(i,end=" ")
# 解百买鸡问题。
print("\n19.解百买鸡的买法:")
for x in range(0, 20):
for y in range(0, 33):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100:
print('大鸡: {}只, 中鸡: {}只, 小鸡: {}只'.format(x, y, z))
print("20.输出图形(代码200行处)")
for i in range(5):
for j in range(1,i+1):
print("*",end="")
print()
print('21.输出图形2')
for i in range(5):
print(5-i,end="")
for j in range(5-i):
print("*",end="")
print()
print('22.输出图形3')
a=8
for i in range(1,a+1):
print((a-i)*" ",end="")
print("*"*(2*i-1))
for j in range(a//2):
print((a-1)*" "+"*")
print('23.输出图形4')
a= 5 #eval(input('请输入一个数:'))
for i in range (a):
print((a-i)*' ',end="")
print("*",end="")
print((2*i-1)*' ',end="")
if i!=0:
print("*",end="")
print()
print((a+1)*'* ',end="")
print('\n24.输出图形5')
a=5#eval(input('请输入一个数:'))
for i in range (a):
print((a-i)*' ',end="")
print("*",end="")
print((2*i-1)*' ',end="")
if i!=0:
print("*",end="")
print()
for i in range (a-2,0,-1):
print((a-i)*' ',end="")
print("*",end="")
print((2*i-1)*' ',end="")
print("*",end="")
print()
print(a*' ',end="")
print("*",end="")
# 反转字符串
a='sjsh123fkbc'
b=a[::-1]
print("\n25.反转字符串",b)
# 1**2 -2**2 +3**2 - …… +99**2
sum5=0
for i in range(1,100):
if i%2==0:
sum5-=i*i
if i%2==1:
sum5+=i*i
print("26.1**2 -2**2 +3**2 - …… +99**2=",sum5)
# 求两数的最大公约数和最小公倍数。
m = 12
n = 20
a = min(m,n)
for i in range(a,0,-1):
if m%i==0 and n%i==0:
print("27.最大公约数:",i,"\t最小公倍数:",m*n//i)
break
# 编写函数isodd(x), 若x不是整数,给出提示后退出程序;如果x为奇数,返回True,如果x为偶数,返回False。
def isodd(x):
if x-int(x) != 0:
return "下一次请输入整数"
if x % 2 == 1:
return True
if x % 2 == 0:
return False
print("28.测试isodd函数:\n输入小数2.2时,输出结果:",isodd(2.2),end=" ")
print("输入偶数2时,输出结果(False):",isodd(2),end=" ")
print("输入奇数3时,输出结果(True):",isodd(3))
# 编写函数change(str1),其功能是对参数strl进行大小写转换,
# 其中的大写字母转换成小写字母;小写字母转换成大写字母;非英文字符不转换。
def change(strtset):
output = []
for i in strtset:
if ord(i) <= 122 and ord(i) >= 97:
output.append(chr(ord(i)-32))
elif ord(i) <= 90 and ord(i) >= 65:
output.append(chr(ord(i)+32))
else:
output.append(i)
return "".join(output)
print("29.测试change函数:\n输入:'AaWeZz.$!',输出结果:",change('AaWeZz.$!'))
# 编写并测试函数gcd(m,n)和 lcm(m,n),功能是求两个整数的最大公约数和最小公倍数。
def gcd(m,n):
if m < n:
m,n = n,m
while n != 0:
r = m % n
m = n
n = r
return m
def lcm(m,n):
return (m*n)//gcd(m,n)
print("30.测试gcd和 lcm函数:\n测试数据(28,6)的最大公约数:",gcd(28,6),"\t最小公倍数:",lcm(28,6))
# 编写并测试函数reverse(x),输入一个整数,将各位数字反转后输出。
def reverse(x):
x = str(x)
x1 = x[::-1]
return int(x1)
print("31.测试reverse函数:将一个整数的各位数字反转\n测试数据123456789,输出结果:",reverse(123456789))
# 编写程序sqrt(n),求1^2 - 2^2 + 3^2 - 4^2 +⋯+〖97〗^2 -〖98〗^2 +〖99〗^2 =?
def sqrt(n):
sum1 = 0
for i in range(1,n+1):
if i % 2 == 0:
sum1 -= i * i
elif i % 2 == 1:
sum1 += i * i
return sum1
print("32.测试sqrt函数:求带正负的平方和:\n输入n=99,输出结果:",sqrt(99))
# 用递归方法反转一个字符串,例如“abcde”,反转为“edcba”。
def fanzhuan(s) :
if len(s)<1:
return s
else:
return fanzhuan(s[1:])+s[0]
print("33.测试fanzhuan的递归函数:\n输入≡63hg3hc6g2f,输出结果:",fanzhuan("≡63hg3hc6g2f"))
# 函数实现判断一个字符串是否为回文。
def huiwen(t):
for i in range(1,len(t)//2+1):
if t[i-1]==t[-i]:
pass
else:
return "{:<10}不是回文".format(t)
return "{:<10}是回文".format(t)
print("34.测试huiwen函数:\n测试数据1: ",huiwen("1233321"))
print("测试数据2: ",huiwen("16651"))
# 用递归实现二分查找
l=[1,2,10,30,33,99,101,200,301,402] #从小到大排列的数字列表
def search(low,height,l,item):
# l.sort() 是一个升序列表
middle = (low + height)//2
if l[middle] > item:
height = middle + 1
# search(l[0:middle],item)
elif l[middle] < item:
# search(l[middle:],item)
low =middle -1
else:
return '35.测试seatch函数:递归实现2分查找:\n' \
'已知l=[1,2,10,30,33,99,101,200,301,402]' \
',查找得{}是列表中的第{}个数。'.format(item,middle)
return search(low,height,l,item)
print(search(0,len(l)-1,l,101))
# 汉诺塔
def hanoi(n,a,b,c):
if n==1:
print(a,"-->",c)
else:
hanoi(n-1,a,c,b)
print(a,"-->",c)
hanoi(n-1,b,a,c)
# n=int(input("38.请输入汉诺塔的层数:"))
print("36.测试hanoi函数:求n层汉诺塔的移动过程:\n测试n=3时:")
hanoi(3,"A","B","C")
# 打印杨辉三角形。
# 定义法
n = 6#eval(input("输入要打印的行数:"))
triangle = [[1], [1, 1]]
for i in range(2, n): # 已经给出前两行,求剩余行
pre = triangle[i-1] # 上一行
cul = [1] # 定义每行第一个元素
for j in range(i-1): # 算几次
cul.append(pre[j]+pre[j+1]) # 每个数字等于上一行的左右两个数字之和。
cul.append(1) # 添加每行最后一个元素
triangle.append(cul)
print("37.打印杨辉三角形:普通输出:\n{}".format(triangle))
print("按等边三角形格式输出:")
for i in range(n): # 按等边三角形格式输出
s = " "*(n-i-1)
for j in triangle[i]:
s = s + str(j)+" "
print(s)
# 用函数实现求100-200里面所有的素数(即质数):指只能除尽1和它本身的数。
# 如果两个素数之差为2,这样的两个素数就叫作"孪生数"找出100-200以内的所有"孪生数"。【注释掉的部分】
# n1,n2 = 2,2
print("38.用sushu函数输出100-200以内所有的素数:")
def sushu(n,m):
sushulist = []
for i in range(n,m+1):
for j in range(2,i):
if i % j == 0:
break
else:
sushulist.append(i)
return sushulist
# else: #这一步非常关键:如果没有这个else,break之后还会执行下面的语句。
# n1 = n2
# n2 = i
# if n2 - n1 == 2:
# print("100以内所有的孪生数:")
# print(n1,n2)
print(sushu(100,200))
# 分解质因数。例:90 = 2*3*3*5
positiveInt = 90 #int(input('请输入一个正整数:'))
print('39.分解质因数:%d = ' %positiveInt,end='')
while positiveInt > 1:
for i in range(2,positiveInt+1):
if positiveInt % i == 0:
positiveInt = int(positiveInt/i)
if positiveInt == 1:
print('{}'.format(i))
else:
print('{} * '.format(i),end='')
break
# 生成验证码。
def singleSecurityCode(): #Step1
singleCode='' #注意:目标输出的是字符串,而random函数会输出的是int,所以下面要进行数据的类型的转换
randomNumber = random.randint(0,2)
if randomNumber == 0:
singleCode = str(random.randint(0,9))
elif randomNumber == 1:
singleCode = chr(random.randint(65, 90))
elif randomNumber == 2:
singleCode = chr(random.randint(97,122))
return singleCode
def nSecurityCode(n): #Step2
authCode = ''
output =''
for i in range(n):
authCode = singleSecurityCode()
output = output + authCode
return output
print("40.随机生成的验证码为:",nSecurityCode(4))
# 假设你正在爬楼梯。每次你可以爬 1 或 2 或 3 个台阶。你有多少种不同的方法可以爬到楼顶呢?
def step(n): #n:台阶数
if n==1:
return 1
elif n==2:
return 2
elif n==3:
return 4
else:
return step(n-1)+step(n-2)+step(n-3)
print('41.递归实现爬楼梯的问题:\n假设需要爬到5楼,共有办法:',step(5))
# 1.有下面的类属性:姓名、年龄、成绩列表[语文,数学,英语],其中每门课成绩的类型为整数,类的方法如下所述:
# (1)列表项列表项获取学生的姓名。get_name(),返回类型:str。
# (2)获取学生的年龄。get_age(),返回类型:int。
# (3)返回3门科目中最高的分数。get_course(), 返回类型:int。
class Student:
def __init__(self,name,age,score):
self.name = name
self.age = age
self.score = score[:]
def get_name(self):
return "学生姓名:{:s}".format(self.name)
def get_age(self):
return "学生年龄:{:d}".format(self.age)
def get_course(self):
return "学生的三门最好成绩:{}".format(max(self.score))
pupil = Student("xc",18,[66,88,90])
print("42.",pupil.get_name(),pupil.get_age(),pupil.get_course())
# 2.设计一个Circle(圆)类,包括圆心位置、半径、颜色等属性。
# 编写构造方法和其他方法,计算周长和面积。请编写程序验证Circle(圆)类的功能。
import math
class Circle:
def __init__(self,x,y,r,color):
self.x = x
self.y = y
self.r = r
self.color = color
def infomation(self):
return "⚪的基础信息:圆心({},{}),颜色{}".format(self.x,self.y,self.color)
def rounds(self):
return "⚪的周长是{:f}".format(2*math.pi*self.r)
def area(self):
return "⚪的面积是{:f}".format(math.pi*(self.r)**2)
circle = Circle(1,2,3.0,"红")
print("43.",circle.infomation(),circle.area(),circle.rounds())
# 封装一个学生类,有姓名,有年龄,有性别,有英语成绩,数学成绩,语文成绩;求总分,平均分,以及打印输出学生的相关信息。
class Student:
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score[:]
def get_name(self):
return "姓名:%s" % (self.name)
def get_age(self):
return "{}岁了。".format(self.age)
def get_average(self):
return "平均分(保留两位小数):{}".format(round((self.score[0] + self.score[1] + self.score[2]) / 3,2)) #2是保留两位小数
def get_sum(self):
return '三门课程总分:{}'.format(self.score[0] + self.score[1] + self.score[2])
# 另一种方法
def get_sum1(self):
return sum(self.score)
zm = Student('暖暖', 2, [69, 88, 100])
print("44.",zm.get_name(),zm.get_age(),zm.get_sum(),zm.get_average())
# 设计一个Person类,属性有姓名、年龄、性别,
# 创建方法personInfo,打印输出这个人的信息;
# 创建Student类,继承Person类,属性有学院college,班级Group,
# 重写父类PersonInfo方法,调用父类方法打印输出个人信息,将学生的学院、班级信息也打印输出出来。
class Person:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def personInfo(self):
return "某人的姓名:{},年龄:{},性别:{}".format(self.name,self.age,self.sex)
class Student(Person): #有父类
def __init__(self,name,age,sex,college,Group):
Person.__init__(self,name,age,sex) #继承
self.college=college
self.Group=Group
def personInfo(self): #重写
print(super().personInfo()) #重写具体体现,先调用它父类的这个同名方法
return "继承父类+学生的学院:{},年级:{}".format(self.college,self.Group)
# def personInfo1(self):
# print(super().personInfo())
# return"学院:{}班级:{}".format(self.college,self.Group)
student=Student("寥寥",18,"女","大数据","2")
person = Person("旦旦",2,"未知")
print("45.1",person.personInfo())
print("45.2",student.personInfo()) #输出两行:某人的姓名:寥寥,年龄:18,性别:女 \n 继承父类+学生的学院:大数据,年级:2
print("45.3",student.name,student.age,student.sex,student.college)
# 定义一个交通工具(Vehicle)的类,属性:速度(speed)、体积(size)等等————时间(time)、加速度(acceleration)。
# 方法:移动move()、设置速度setSpeed(int speed)、加速speedUp()、减速speedDown()等等。
# 要求:实例化一个交通工具对象,通过方法初始化speed、size的值并且在相关方法中可以打印输出出来;
# 另外调用加速减速的方法对速度进行改变。
class Vehicle:
def __init__(self,speed,size,time,acceleration):
self.speed = speed
self.size = size
self.time = time
self.acceleration = acceleration
def move(self):
return "已知小车初速度:{},加速度:{},体积:{}。".format(self.speed,self.acceleration,self.size)
def setspeed(self):
return "设置小车的初速度:{}。".format(self.speed)
def speedUp(self):
speed_end_up = self.speed + self.acceleration * self.time
return "小车加速完后的速度是:{}。".format(speed_end_up)
def speedDown(self):
speed_end_down = self.speed - self.acceleration * self.time
if speed_end_down < 0:
return "小车减速完后速度是:0。"
else:
return "小车减速完后速度是:{}。".format(speed_end_down)
car = Vehicle(20,200,5,3)
print("46.",car.move(),car.setspeed(),car.speedUp(),car.speedDown())
python计算梯形为什么有那么多小数 python等腰梯形
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
css等腰梯形
css等腰梯形
css css3 前端 html -
2003 Problem C 等腰梯形
问题 C: 等腰梯形时间限制:1 Sec内存限制:32 MB题目描述请输入高度h,输入一
等腰梯形 2003 codeup C++ #include -
输出等腰梯形
1、 请输入高度h,输入一个高为h,上底边长为h的等腰梯形(例如h=4,图形如下)。 **** ****** ******** **********
oj杂题 ios #include i++ 学习