刷题继续
大家好,我又回来了,昨天和大家分享了 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 41-50 题
我的运行环境 Python 3.6+, 如果你用的是 Python 2.7 版本,绝大多数不同就体现在以下 3 点:
- raw_input() 在 Python3 中是 input()
- print 需要加括号
- fstring 可以换成.format(), 或者 %s,%d
谢谢大家,我们下期见!希望各位朋友不要吝啬,把每道题的更高效的解法写在评论里,我们一起进步!!!