Python 编程题 第五节:落体反弹问题、求指定数列之和、求阶乘的和、年龄急转弯、判断回文数、判断星期几、矩阵主对角线元素之和

落体反弹问题

每次落下后弹起高度为之前的一半

h=100
sum=0
for i in range(0,10):
    if i==0:
        sum+=h
    else:
        sum+=2*h
    h/=2
print(sum,h)

求指定数列之和

a是一个暂时变量来储存之前的down

sum=0
up=2
down=1
for i in range(20):
    sum+=up/down
    a=down
    down=up
    up=down+a
print(sum)

求阶乘的和

方法一(递归)

def jiecheng(a):
    if a==1:
        return 1
    else:
        return a*jiecheng(a-1)
sum=0
for i in range(1,21):
    sum+=jiecheng(i)
print(sum)

方法二(factorial函数)

math库里的factorial方法

import math
sum=0
for i in range(1,21):
    sum+=math.factorial(i)
print(sum)

年龄急转弯

前一个人比后一个人大两岁,知道最后一个人年龄,问第一个人年龄,递归思想,先设置终止条件

def f(n):
    if n==1:
        return 10
    else:
        return f(n-1)+2
print(f(5))

判断回文数

字符串的倒序输出

num=str(input())
if num==num[::-1]:
    print("是回文数")
else:
    print("不是回文数")

判断星期几

条件嵌套

a=input("请输入第一个字母")
if a=="M":
    print("周一")
elif a=="W":
    print("周三")
elif a=="F":
    print("周五")
elif a=="T":
    b=input("请输入第二个字母")
    if b=="u":
        print("周二")
    elif b=="h":
        print("周四")
    else:
        print("输入有误")
elif a=="S":
    c=input("请输入第二个字母")
    if c=="a":
        print("周六")
    elif c=="u":
        print("周日")
    else:
        print("输入有误")
else:
    print("输入有误")

矩阵主对角线元素之和

主对角线元素i==j

sum=0
n=int(input("请输入矩阵的行数"))
lst=[]
for i in range(n):
    lst.append([])
    for j in range(n):
        lst[i].append(int(input("请输入数据")))
        if i==j:
            sum+=lst[i][j]
print(sum)

你可能感兴趣的:(Python编程题,python,开发语言)