zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    Python2 to python3
    【python-HTMLTestRunner】生成HTMLTestRunner报告报错ERROR 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
    【python-HTMLTestRunner】HTMLTestRunner测试报告中文乱码问题解决
    【python-ini】python读写ini文件
    【python-字典】判断python字典中key是否存在的
    【python 字典、json】python字典和Json的相互转换
    【python3+request】python3+requests接口自动化测试框架实例详解教程
    【python-crypto】导入crypto包失败的情况,怎么处理
    【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
    【滚动条】Selenium+python自动化-JS处理滚动条
  • 原文地址:https://www.cnblogs.com/xurui89/p/10534886.html
Copyright © 2011-2022 走看看