python第五章实操作业

1.定义一个函数实现反响输出一个整数。比如:输入3245,输出5432.

代码:

str_num = input("请输入一个整数:")
f = lambda n:print(n[::-1])
f(str_num)

结果:

请输入一个整数:1234
4321

2.编写一个函数,计算下面的数列:

在这里插入图片描述
代码:

def compute_list(n):
    sum = 0
    for i in range(1,n+1):
        sum += i/(i+1)
    print(sum)

num = int(input("请输入一个整数:"))
compute_list(num)

结果:

请输入一个整数:6
4.4071428571428575

3.输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示。

代码

import math
def dis(a,b):
    '''计算两个点之间的距离'''
    return math.sqrt((a[0]-b[0])**2+(a[1]-b[1])**2)
def judge(a,b,c):
    '''判断前两边之和是否大于第三边'''
    if dis(a,b)+dis(a,c)>dis(b,c):
        return True
    else:
        return False


a = []
while len(a)<3:
    b = []
    point = input("请输入point{0}中x,y的值,用,分开:".format(len(a)+1))
    point_array = point.split(",")
    point_x, point_y = float(point_array[0]),float(point_array[1])
    b.append(point_x)
    b.append(point_y)
    a.append(b)
else:
    if judge(a[0],a[1],a[2]) and judge(a[0],a[2],a[1]) and judge(a[1],a[2],a[0]):
        print("三角形面积为{0}".format((a[0][0]*a[1][1]+a[1][0]*a[2][1]+a[2][0]*a[0][1]-a[0][0]*a[2][1]-a[1][0]*a[0][1]-a[2][0]*a[1][1])/2))
    else:
        print("输入的三个点({0},{1});({2},{3});({4},{5})无法构成三角形".format(a[0][0], a[0][1], a[1][0], a[1][1], a[2][0], a[2][1]))

结果1

请输入point1中x,y的值,用,分开:1,2
请输入point2中x,y的值,用,分开:1,1
请输入point3中x,y的值,用,分开:3,1
三角形面积为1.0

结果2

请输入point1中x,y的值,用,分开:1,2
请输入point2中x,y的值,用,分开:2,3
请输入point3中x,y的值,用,分开:3,4
输入的三个点(1.0,2.0);(2.0,3.0);(3.0,4.0)无法构成三角形

4.输入一个毫秒数,将该数字换算成小时数,分钟数、秒数。

代码:

while True:
    t = float(input("请输入一个毫秒数:"))
    if t<0:
        print("输入的值为{0},违规请重新输入:".format(t))
        continue
    else:
        break
print("={0}小时".format(t/3600000))
print("={0}分钟".format(t/60000))
print("={0}秒".format(t/1000))

结果

请输入一个毫秒数:78965215489523366666
=21934782080423.156小时
=1316086924825389.5分钟
=7.896521548952336e+16

5.使用海龟绘图。输入多个点,将这些点都两两相连。

代码:

import turtle as t
t.width(5)
a = []
while True:
    str_point=input("请输入一个点,用,隔开(结束输入Q或者q):")
    if str_point.lower() == 'q':
        break
    else:
        array_point = str_point.split(",")
        x, y = float(array_point[0]), float(array_point[1])
        a.append(x)
        a.append(y)

for i in range(len(a)//2):
    for j in range(i+1,len(a)//2):
        t.color("black")
        t.penup()
        t.goto(a[2*i],a[2*i+1])
        t.pendown()
        t.goto(a[2*j], a[2*j+1])
t.done()

结果:

请输入一个点,用,隔开(结束输入Q或者q):-50,60
请输入一个点,用,隔开(结束输入Q或者q):-50,200
请输入一个点,用,隔开(结束输入Q或者q):100,60
请输入一个点,用,隔开(结束输入Q或者q):q

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值