写在前面:文章中的例子均来自于学校发布的大计基作业,整理在此处以作备忘复习之用
本节例题将有助于帮助掌握python语言中函数的定义和调用方法
1.输入三角形三个顶点的坐标,计算该三角形的面积。要求将计算两点之间距离单独编写成一个函数。
思路:
首先定义计算距离函数
再构建主函数:
键入各点坐标,求各边边长,判断是否能构成三角形,利用海伦公式解决三角形面积问题
程序如下:
import math
def distance(x1,y1,x2,y2):
dx=x2-x1
dy=y2-y1
dsquared=dx**2+dy**2
result=math.sqrt(dsquared)
return result
while True:
print("说明:我们统一假设三角形三个顶点坐标分别为A(x1,y1),B(x2,y2),C(x3,y3),三边边长分别为a,b,c")
x1=float(input("请输入x1的值:"))
y1=float(input("请输入y1的值:"))
x2=float(input("请输入x2的值:"))
y2=float(input("请输入y2的值:"))
x3=float(input("请输入x3的值:"))
y3=float(input("请输入y3的值:"))
a=distance(x2,y2,x3,y3)
b=distance(x1,y1,x3,y3)
c=distance(x1,y1,x2,y2)
if a+b<c or b+c<a or c+a<b:
print("您所提供的三边不足以构成一个三角形,请重新输入")
continue
else:
p=(a+b+c)/2
S=(p*(p-a)*(p-b)*(p-c))**0.5
print("该三角形的面积为:",S)
break
运算结果如下:
说明:我们统一假设三角形三个顶点坐标分别为A(x1,y1),B(x2,y2),C(x3,y3),三边边长分别为a,b,c
请输入x1的值:1
请输入y1的值:4
请输入x2的值:2
请输入y2的值:4
请输入x3的值:6
请输入y3的值:3
该三角形的面积为: 0.49999999999999445
2.输入 n 和 a,求 s=a+aa+aaa+aaaa+aa...a(最后一项是 n 个 a)的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 n=5,a=2)。
程序如下:
n=int(input("请输入您所选择的n值:"))
a=int(input("请输入您所选择的a值:"))
s=0
for i in range(1,n+1,1):
ai=0
for k in range(1,i+1,1):
ai=ai+a*(10**(k-1))
s=s+ai
print("s的值为:",s)
运算结果如下:
请输入您所选择的n值:5
请输入您所选择的a值:2
s的值为: 24690
3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...,求出这个数列的前 20 项之和。注意,这个序列的特点是后一项的分子是前一项分子分母的和,后一项的分母是前一项的分子。
程序如下:
a=2
b=1
sum=2
for i in range(2,21,1):
a,b=b,a
a=a+b
p=a/b
sum=sum+p
print("该分数数列前20项之和为:",sum)
运算结果如下:
该分数数列前20项之和为: 32.66026079864164
4.编写函数,求两个数的最大公因数。编写主程序,输入两个整数,调用函数求最大公因数,在主程序中输出最大公因数。
程序如下:
def S(x1,x2):
if x1<x2:
x1,x2=x2,x1
while(x2!=0):
z=x2
x2=x1%x2
x1=z
return x1
a=int(input("请输入第一个整数:"))
b=int(input("请输入第二个整数:"))
print("这两个整数的最大公约数是:",S(a,b))
运算结果如下:
请输入第一个整数:117
请输入第二个整数:81
这两个整数的最大公约数是: 9
5.一个数如果恰好等于它的所有因子(不包括它本身)之和,这样的数称为完全数。例如,6 的因子为 1,2,3,而 6=1+2+3 则 6 是一个完数。找出1000以内的所有完全数,输出时用空格隔开。
程序如下:
(注意:在本程序中 for i in range句结束值应为x而不是x+1,因为x本身这个因子不被计算在完全数计算内)
for x in range(1,1001):
y=0
for i in range(1,x):
if x%i==0:
y=y+i
if y==x:
print(x,end=' ')
运行结果如下:
6 28 496
例毕