栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python-函数使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-函数使用

question:将输入整数倒序

notes:ipunt 得到 string,输出时需要转换为int

def reverse_order(str):
    '''
    :param str: input number
    :return: reverse order number
    :function: let input number reverse
    '''
    return int(str[::-1])
input_num = input('请输入一个整数:')
reverse_input_num = reverse_order(input_num)

print(reverse_input_num)

question2:数列求和

数列通项:n/(n+1)

def series_sum(n):
    '''
    :param n: series length
    :return: series sum
    '''
    sum_series = 0
    for x in range(1,n+1):
        sum_series = sum_series + x/(x+1)

    return float(sum_series)

n = int(input('Please series length:'))
sum_series = series_sum(n)
print(sum_series)

question3:三角形面积计算

已知三个点的坐标求面积,参考海伦公式

三角形判定条件:两边之和大于第三边

def triangular_area(a,b,c,p):
    '''
    :param a:边长
    :param b:边长
    :param c:边长
    :param p:0.5倍总边长
    :return:三角形面积
    '''
    area = (p * (p - a) * (p - b) * (p -c ))**0.5
    return area

x0 = int(input('请输入第一个点的x轴坐标:'))
x1 = int(input('请输入第二个点的x轴坐标:'))
x2 = int(input('请输入第三个点的x轴坐标:'))
y0 = int(input('请输入第一个点的y轴坐标:'))
y1 = int(input('请输入第二个点的y轴坐标:'))
y2 = int(input('请输入第三个点的y轴坐标:'))
x = [x0, x1, x2]
y = [y0, y1, y2]

a = ((x[1] - x[0]) ** 2 + (y[1] - y[0]) ** 2) ** 0.5
b = ((x[2] - x[0]) ** 2 + (y[2] - y[0]) ** 2) ** 0.5
c = ((x[2] - x[1]) ** 2 + (y[2] - y[1]) ** 2) ** 0.5
p = (a + b + c) / 2
print(a)
print(b)
print(c)
while True:
    if a + b > c and a + c > b and b + c > a :
        area = triangular_area(a, b, c, p)
        break
    else:
        print('所输入点无法构成三角形,请重新输入')
        x0 = int(input('请输入第一个点的x轴坐标:'))
        x1 = int(input('请输入第二个点的x轴坐标:'))
        x2 = int(input('请输入第三个点的x轴坐标:'))
        y0 = int(input('请输入第一个点的y轴坐标:'))
        y1 = int(input('请输入第二个点的y轴坐标:'))
        y2 = int(input('请输入第三个点的y轴坐标:'))

print(area)

question4:时间换算

毫秒换成时分秒

def mtime_change(n):
    '''
    10000060ms,测试,2h46min40s60ms
    :param n:总毫秒数
    :return:毫秒/秒/分/小时
    '''
    ms = n % 1000             # 取余,获得ms位,60
    s_tmp = n // 1000         # 取整,获得总秒数,10000s
    seconds = s_tmp % 60      # 取余,获得秒位,40s
    mins_tmp = s_tmp // 60    # 取整,获得总分数,166min
    minutes = mins_tmp % 60   # 取余,获得分位,46min
    hours = mins_tmp // 60    # 取整,获得小时位,2h

    return ms,seconds,minutes,hours

n = int(input('请输入总毫秒数(≥0ms):'))

t = mtime_change(n)

print('{}时{}分{}秒{}毫秒'.format(t[3],t[2],t[1],t[0]))

question5:输入多个点,点点相连

notes:额外需要考虑输入坐标是否满足坐标对

import numpy as np
import turtle

def point2point(x,y):
    t = turtle.Pen()
    t.speed(10)
    n = len(x)
    for i in range(n):
        # 在这里获得起始点,然后创建一个删除了起始点的新array
        start_x = x[i]
        start_y = y[i]
        for j in range(0,n-1):
            end_x = x[j]
            end_y = y[j]
            t.penup()
            t.goto(start_x,start_y)
            t.pendown()
            t.goto(end_x, end_y)
    t.hideturtle()
    turtle.done()

axis_data = []
while True:
    input_data = input('请先输入x坐标,再输入y轴坐标,依次输入每个点的坐标,(输入完成后按Q/q结束):')
    if input_data == 'q' or input_data == 'Q':
        break
    axis_data.append(float(input_data))

len_axis_data = len(axis_data)
x = axis_data[0:len_axis_data:2]
y = axis_data[1:len_axis_data:2]
x = np.array(x)
y = np.array(y)
point2point(x,y)

results:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号