1. 定义一个函数实现反向输出一个整数。比如:输入 2345,输出 5432.
def InverseNumber(a):
return int((a[::-1]))
print(InverseNumber('2345'))
def NumAcc(m,n):
'''计算n/n+1的递减数列'''
if n == 1 and m == 2:
print('计算顺序为{0}/{1}'.format(n, m))
return 1/2
else:
print('计算顺序为{0}/{1}'.format(n, m))
return n/m+NumAcc(m-1,n-1)
n = int(input('请输入数列最后一项的分子'))
m = n+1
print('计算结果为{0}'.format(NumAcc(m,n)))
?运行结果为:
计算顺序为5/6
计算顺序为4/5
计算顺序为3/4
计算顺序为2/3
计算顺序为1/2
计算结果为3.5500000000000003
3. 输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示。
import math
def TriArea():
'''计算三角形面积'''
lc = list(range(6))
while True:
for n in range(6):
if n % 2 == 0:
lc[n] = int(input('请输入横坐标'))
else:
lc[n] = int(input('请输入纵坐标'))
if (lc[0] == lc[2] and lc[1] == lc[3] ) or (lc[0] == lc[4] and lc[1] == lc[5]) or (lc[2] == lc[4] and lc[3] == lc[5]) \
or math.fabs((lc[4]-lc[2])/(lc[5]-lc[3])) == math.fabs((lc[4]-lc[0])/(lc[5]-lc[1])):
print('输入错误错误请重新输入')
continue
else:
break
return 0.5*(lc[0]*lc[3]-lc[0]*lc[5]+lc[2]*lc[5]-lc[2]*lc[1]+lc[4]*lc[1]-lc[2]*lc[3])# S=(x1y2-x1y3+x2y3-x2y1+x3y1-x2y2)
print('三角形面积为{0}'.format(TriArea()))
运算结果为:
请输入横坐标0
请输入纵坐标0
请输入横坐标3
请输入纵坐标0
请输入横坐标0
请输入纵坐标4
三角形面积为6.0
4. 输入一个毫秒数,将该数字换算成小时数,分钟数、秒数。
def TimeTransform(m):
Seconds = m / 1000
Minutes = Seconds / 60
Hours = Minutes / 60
print('输入为{0}ms,{0}ms={1:.3f}s={2:.3f}min={3:.5f}hour'.format(m,Seconds,Minutes,Hours))
TimeTransform(int(input('请输入一个毫秒的时间')))
运行效果如下:
请输入一个毫秒的时间1000
输入为1000ms,1000ms=1.000s=0.017min=0.00028hour
5. 使用海龟绘图。输入多个点,将这些点都两两相连。
import turtle
def ConnectPoints(n):
pr = list(range(n))
pl = list(range(n))
for i in range(n):
pr[i] = int(input('请输入横坐标'))
pl[i] = int(input('请输入纵坐标'))
t = turtle.Pen()
for l in range(len(pr)):
t.penup()
t.goto(pr[l], pl[l])
t.pendown()
t.write('{0},{1}'.format(pr[l],pl[l]))
for m in range(l,len(pr)):
t.goto(pr[m], pl[m])
t.goto(pr[l], pl[l])
t.pendown()
turtle.done()
m = input('请输入要绘制的点数')
ConnectPoints(int(m))
输入为:
请输入要绘制的点数5
请输入横坐标0
请输入纵坐标100
请输入横坐标100
请输入纵坐标0
请输入横坐标80
请输入纵坐标-80
请输入横坐标-80
请输入纵坐标-80
请输入横坐标-100
请输入纵坐标0
绘制的图形为:
?
|