python学习--练习题21-27

练习21

#求1+2!+3!+...+20!的和。

from functools import reduce
sum=[]
for i in range(1,21):
    a=1
    l = []
    while a<=i:
        l.append(a)
        a+=1
    每个阶层 = reduce(lambda x, y: x*y, l)
    sum.append(每个阶层)
求和 = print(reduce(lambda x, y: x+y, sum))
'''
n = 0   # 参考答案的代码少很多,主要是我对题目的理解不够,增加了计算的复杂度
s = 0
t = 1
for n in range(1,21):
    t *= n
    s += t
print(s)

'''

练习22

#题目:写出阶层的类。

class 阶层(): ## 原来的练习题不是这个,我自己想写一个这样的类,目前为止没有对类的练习
    pass
    def __init__(self,num):
        self.num=num
        s=1
        for i in range(1,self.num):
            s+=s*i
            i+=1
        print(s)
阶层(6)

练习23

#题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

a=str(input("no.1"))  ##我原来以为是把输入的五个字符,反过来输出,题目的意思是直接输入一行,然后反过来输出
b=str(input("no.2"))
c=str(input("no.3"))
d=str(input("no.4"))
e=str(input("no.5"))
l=[a,b,c,d,e]
for i in range(0,5):
    for n in range(0,5):
        if l[i]>l[n]:
            l[i],l[n]=l[n],l[i]
        else:
            l[i], l[n] = l[i], l[n]
print(l)

'''   
def output(s, l):   #非常简洁的写法
    if l == 0:
        return
    print(s[l - 1],end=" ")
    output(s, l - 1)


s = str(list('Input a string:'))
l = len(s)
output(s, l)

'''

练习24

#题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

输入数字=str(input("your numbers: "))
n=len(输入数字)
s=(输入数字[i] for i in range(n-1,-1,-1)) #逆序按单个输出
l=list(s) #放入列表
print("逆序排:",l) #打印逆序
print("是{0}位数".format(n))
w=['个位:','十位','百位','千位','万位','十万位']
for i in zip(w,list(l)):  #zip好用到不行
    print(i,end=" ")

练习25

#题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

输入数字2=str(input("your numbers: "))
n=len(输入数字2)
flag=True
for i in range(0,int(n/2)+1):
    if 输入数字2[0+i]!=输入数字2[n-i-1]:  ##在多轮计算中,引入一个外围变量flag可以很好的解决问题(只要有一个不是就不是的问题)
        flag=False
if flag==True:
    print("是回文")
else:
    print("不是回文")

练习26

#题目:按逗号分隔列表。

L = [1,2,3,4,5]
s1 = ','.join(str(n) for n in L) ##join的使用很方便
print (s1)

练习27

#题目:有5个人坐在一起,问第五个人多少岁?
# 他说比第4个人大2岁。
# 问第4个人岁数,他说比第3个人大2岁。
# 问第3个人,又说比第2人大两岁。
# 问第2个人,说比第1个人大两岁。
# 最后问第一个人,他说是10岁。请问第五个人多大?


s=10
for i in range(0,4):  
    s=s+2
print(s)

 

posted @ 2019-03-15 09:01  ttkk89  阅读(345)  评论(0编辑  收藏  举报