Python基础练习100题 ( 41

发布时间:2019-09-28 08:38:47编辑:auto阅读(1929)

    刷题继续

    大家好,我又回来了,昨天和大家分享了31-40题,今天继续来看41~50题

    Question 41:

    Write a program which can map() to make a list whose elements are square of elements in [1,2,3,4,5,6,7,8,9,10].

    解法一

    
    lst=[i for i in range(1,11)]
    lst_square = list(map(lambda x:x*x,lst))
    print(lst_square)

    解法二

    li = [1,2,3,4,5,6,7,8,9,10]
    squaredNumbers = map(lambda x: x**2, li) 
    print(list(squaredNumbers))

    Question 42:

    Write a program which can map() and filter() to make a list whose elements are square of even number in [1,2,3,4,5,6,7,8,9,10].

    解法一

    lst=[i for i in range(1,11)]
    even_numbers = list(map(lambda x: x**2, filter(lambda x: x%2==0, lst)))
    print(even_numbers)
    

    解法二

    def even(x):
        return x%2==0
    
    def squer(x):
        return x*x
    
    li = [1,2,3,4,5,6,7,8,9,10]
    li = map(squer,filter(even,li))  
    print(list(li))

    Question 43:

    Write a program which can filter() to make a list whose elements are even number between 1 and 20 (both included).

    解法一

    even_numbers = list(filter(lambda x: x%2==0, range(1,21)))
    print(even_numbers)

    解法二

    def even(x):
        return x%2==0
    
    evenNumbers = filter(even, range(1,21))
    print(list(evenNumbers))

    Question 44:

    Write a program which can map() to make a list whose elements are square of numbers between 1 and 20 (both included).

    解法一

    def sqr(x):
        return x*x
    
    squaredNumbers = list(map(sqr, range(1,21)))
    print (squaredNumbers)

    解法二

    squaredNumbers = list(map(lambda x: x**2, range(1,21)))
    print(squaredNumbers)

    Question 45:

    Define a class named American which has a static method called printNationality.

    解法一

    class American():
        @staticmethod
        def printNationality():
            print("I am American")
    
    american = American()
    american.printNationality()   # this will not run if @staticmethod does not decorates the function.Because the class has no instance.
                                 
    
    American.printNationality()   # this will run even though the @staticmethod does not decorate printNationality()                            

    Question 46:

    Define a class named American and its subclass NewYorker.

    解法一

    class American():
        pass
    
    class NewYorker(American):
        pass
    
    american = American()
    newyorker = NewYorker()
    
    print(american)
    print(newyorker)

    Question 47:

    Define a class named Circle which can be constructed by a radius. The Circle class has a method which can compute the area.

    解法一

    class Circle:
        def __init__(self,radius):
            self.radius = radius
        def area(self):
            return (self.radius**2*3.14)
    
    # Test
    circle = Circle(5)
    print(circle.area())

    Question 48:

    Define a class named Rectangle which can be constructed by a length and width. The Rectangle class has a method which can compute the area.

    解法一

    class Rectangle():
        def __init__(self,l,w):
            self.length = l
            self.width = w
    
        def area(self):
            return self.length*self.width
    
    
    rect = Rectangle(2,4)
    print(rect.area())

    Question 49:

    Define a class named Shape and its subclass Square. The Square class has an init function which takes a length as argument. Both classes have a area function which can print the area of the shape where Shape's area is 0 by default.

    解法一

    class Shape():
        def __init__(self):
            pass
    
        def area(self):
            return 0
    
    class Square(Shape):
        def __init__(self,length = 0):
            Shape.__init__(self)
            self.length = length
    
        def area(self):
            return self.length*self.length
    
    Asqr = Square(5)
    print(Asqr.area())      # prints 25 
    print(Square().area())  # prints à

    Question 50:

    Please raise a RuntimeError exception.

    解法一

    
    raise RuntimeError('something wrong')
    

    源代码下载

    这十道题的代码在我的github上,如果大家想看一下每道题的输出结果,可以点击以下链接下载:

    我的运行环境Python 3.6+,如果你用的是Python 2.7版本,绝大多数不同就体现在以下3点:

    • raw_input()在Python3中是input()
    • print需要加括号
    • fstring可以换成.format(),或者%s,%d

    谢谢大家,我们下期见!希望各位朋友不要吝啬,把每道题的更高效的解法写在评论里,我们一起进步!!!

关键字