如何用python解题?

1、输入两个点A(x1,y1)和B(x2,y2)计算AB的距离,要求如下:
1)提示用户输入两个点
2)计算两点之间的距离
3)利用turtle图形画出两点之间的连线
4)在线的中央显示线的长度

2、数字12321从左往右读与从右往左读是一样的,这种数称为回文数。请设计一个程序,找出10到200,000以内的全部回文数,并统计个数。要求用到函数。
(求伪代码或流程图和源程序)

第一问:

# python3.6
import turtle
import math

def draw_line_in_points():
    print("输入两个点坐标,绘制并他们和距离。每个点坐标的X和Y用空格分离输入:")
    s1 = input("第一个点:")
    s2 = input("第二个点:")
    x1, y1 = map(int, s1.split())
    x2, y2 = map(int, s2.split())

    turtle.home()
    turtle.pensize(1)
    turtle.speed(1)
    turtle.hideturtle()
    turtle.goto(x1, y1)
    turtle.write("({},{})".format(x1, y1))

    dis = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
    turtle.left(turtle.towards(x2, y2))
    turtle.pendown()
    turtle.forward(dis)
    turtle.penup()
    turtle.write("({},{})".format(x2, y2))

    turtle.back(dis//2)
    turtle.write("d={}".format(round(dis, 2)))
    turtle.done()

第二问:

def get_plalindrome_numbers(print_list=True):
    # 参数print_list用于是否打印出回文数
    xs = 10
    xd = 20000

    def plalindrome(x):
        x = str(x)
        length = len(x)
        st = True
        for j in range(length//2+1):
            if x[j] != x[-j-1]:
                st = False
        return st

    counter = 0
    p_list = []
    for i in range(xs, xd, 1):
        if plalindrome(i):
            counter += 1
            if print_list:
                p_list.append(i)
    print("{}和{}之间的回文数有{}个。".format(xs, xd, counter))
    if print_list:
        print("它们分别是:{}".format(p_list))

温馨提示:答案为网友推荐,仅供参考
相似回答