Python​ 重解零基础100题(6)

简介: Python​ 重解零基础100题(6)

第51题


问题:定义一个名为American的类及其子类NewYorker。

提示:使用类子类(ParentClass)来定义子类。

class American(object):
    pass
class NewYorker(American):
    pass
anAmerican = American()
aNewYorker = NewYorker()
print(anAmerican)
print(aNewYorker)

同上



第52题


问题定义一个名为Circle的类,可以用半径来构造。Circle类有一个可以计算面积的方法。

提示:使用def methodName(self)定义一个方法。

class Circle(object):
    def __init__(self, r):
        self.radius = r
    def area(self):
        return self.radius**2*3.14
aCircle = Circle(2)
print(aCircle.area())

同上




第53题


问题:定义一个名为Rectangle的类,它可以由长度和宽度构造。矩形类有一个方法可以计算面积。

提示:使用def methodName(self)定义一个方法。

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




第54题


问题:定义一个名为Shape的类及其子类Square。Square类有一个init函数,它以长度作为参数。这两个类都有一个area函数,可以打印形状的区域,形状的区域默认为0。

提示:要覆盖父类中的方法,可以在父类中定义一个同名的方法。

class Shape(object):
    def __init__(self):
        pass
    def area(self):
        return 0
class Square(Shape):
    def __init__(self, l):
        Shape.__init__(self)
        self.length = l
    def area(self):
        return self.length*self.length
aSquare= Square(3)
print(aSquare.area())



第55题


问题:请引发RuntimeError异常。

提示:使用raise()引发异常。

raise RuntimeError('something wrong')





第56题


问题:编写一个函数来计算5/0,并使用try/except来捕获异常。

提示:使用try/exexception捕获异常。

def throws():
    return 5/0
try:
    throws()
except ZeroDivisionError:
    print("division by zero!")
except ExceptionError:
    print('Caught an exception')
finally:
    print('In finally block for cleanup')




第57题


问题:定义一个自定义异常类,它将字符串消息作为属性。

提示:要定义一个自定义异常,我们需要定义一个继承自exception的类。

class MyError(Exception):
    """My own exception class
    Attributes:
        msg  -- explanation of the error
    """
    def __init__(self, msg):
        self.msg = msg
error = MyError("something wrong")



第58题


问题:假设我们有一些'username@companyname.com '格式的电子邮件地址,请编写程序打印给定电子邮件地址的用户名,用户名和公司名都只由字母组成。


示例:如果下面的电子邮件地址作为程序的输入:john@google.com.

那么,程序的输出应该是:john

在向问题提供输入数据的情况下,应该假定它是控制台输入。

提示:使用\w来匹配字母。

import re
emailAddress = input()
pat2 = "(\w+)@((\w+\.)+(com))"
r2 = re.match(pat2,emailAddress)
print(r2.group(1))




第59题


问题:假设我们有一些“username@companyname.com”格式的电子邮件地址,请编写程序打印给定的电子邮件地址的公司名称;用户名和公司名都只由字母组成。


示例:如果下面的电子邮件地址作为程序的输入:john@google.com

那么,程序的输出应该是:google

在向问题提供输入数据的情况下,应该假定它是控制台输入。


提示:使用\w来匹配字母。

import re
emailAddress = input()
pat2 = "(\w+)@(\w+)\.(com)"
r2 = re.match(pat2,emailAddress)
print(r2.group(2))



第60题


问题:编写一个程序,接收一个由空格分隔的单词序列作为输入,打印只由数字组成的单词。

示例:如果下面的单词作为程序的输入:2 cats and 3 dogs;

那么,程序的输出应该是:['2', '3']

在向问题提供输入数据的情况下,应该假定它是控制台输入。


提示:使用re.findall()使用正则表达式查找所有子字符串。

1. import re
2. s = input()
3. print(re.findall("\d+",s))



我的答案:

>>> s = '2 cats and 3 dogs'
>>> s.split(' ')
['2', 'cats', 'and', '3', 'dogs']
>>> for i in s.split(' '):
  try:print(int(i),end=' ')
  except:pass
2 3
目录
相关文章
|
存储 索引 Python
Python​ 重解零基础100题(10-2)
Python​ 重解零基础100题(10-2)
77 0
|
存储 Python
Python​ 重解零基础100题(10)
Python​ 重解零基础100题(10)
85 0
|
索引 Python
Python​ 重解零基础100题(9)
Python​ 重解零基础100题(9)
79 0
|
索引 Python
Python​ 重解零基础100题(8)
Python​ 重解零基础100题(8)
94 0
|
Python
Python​ 重解零基础100题(7)
Python​ 重解零基础100题(7)
128 0
|
Python
Python​ 重解零基础100题(5)
Python​ 重解零基础100题(5)
74 0
|
Python
Python​ 重解零基础100题(4)
Python​ 重解零基础100题(4)
95 0
|
机器人 Python
Python​ 重解零基础100题(3)
Python​ 重解零基础100题(3)
125 0
|
JSON 数据安全/隐私保护 数据格式
Python​ 重解零基础100题(2)
Python​ 重解零基础100题(2)
245 0
|
Python 容器
Python​ 重解零基础100题(1)
Python​ 重解零基础100题(1)
145 0