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:



