第五次作業(第九章)

2021-08-18 10:21:55 字數 3411 閱讀 1717

9-3 使用者:建立乙個名為user 的類,其中包含屬性first_name 和last_name,還有

使用者簡介通常會儲存的其他幾個屬性。在類user 中定義乙個名為describe_user()的方

法,它列印使用者資訊摘要;再定義乙個名為greet_user()的方法,它向使用者發出個性化

的問候。

建立多個表示不同使用者的例項,並對每個例項都呼叫上述兩個方法。

9-5 嘗試登入次數:在為完成練習9-3 而編寫的user 類中,新增乙個名為

login_attempts 的屬性。編寫乙個名為increment_login_attempts()的方法,它將屬性

login_attempts 的值加1。再編寫乙個名為reset_login_attempts()的方法,它將屬性

login_attempts 的值重置為0。

根據user 類建立乙個例項,再呼叫方法increment_login_attempts()多次。列印屬

性login_attempts 的值,確認它被正確地遞增;然後,呼叫方法reset_login_attempts(),

並再次列印屬性login_attempts 的值,確認它被重置為0。

class user():

def __init__(self, first_name, last_name, age):

self.first_name=first_name

self.last_name=last_name

self.age=age

self.login_attempts=0

def describe_user(self):

print("first name: "+self.first_name.title())

print("last name:"+self.last_name.title())

print("age: "+str(self.age))

print("login attempts: "+str(self.login_attempts))

def greet_user(self):

print("hello, "+self.first_name.title()+" "+self.last_name.title())

def reset_login_attempts(self):

self.login_attempts=0

def increment_login_attempts(self):

self.login_attempts+=1

user1=user("peter", "liang", 19)

user1.greet_user()

i=0while i<5:

user1.increment_login_attempts()

i+=1

user1.describe_user()

user1.reset_login_attempts()

user1.describe_user()

user2=user("bill", "herington", 47)

user2.greet_user()

user2.describe_user()

9-7 管理員:管理員是一種特殊的使用者。編寫乙個名為admin 的類,讓它繼承你為

完成練習9-3 或練習9-5 而編寫的user 類。新增乙個名為privileges 的屬性,用於存

儲乙個由字串(如"can add post"、"can delete post"、"can ban user"等)組成的

列表。編寫乙個名為show_privileges()的方法,它顯示管理員的許可權。建立乙個admin

例項,並呼叫這個方法。

9-8 許可權:編寫乙個名為privileges 的類,它只有乙個屬性——privileges,其中

儲存了練習9-7 所說的字串列表。將方法show_privileges()移到這個類中。在admin

類中,將乙個privileges 例項用作其屬性。建立乙個admin 例項,並使用方法

show_privileges()來顯示其許可權。

class user():

def __init__(self, first_name, last_name, age):

self.first_name=first_name

self.last_name=last_name

self.age=age

def describe_user(self):

print("first name: "+self.first_name.title())

print("last name:"+self.last_name.title())

print("age: "+str(self.age))

def greet_user(self):

print("hello, "+self.first_name.title()+" "+self.last_name.title())

class privileges():

def __init__(self, privileges):

self.privileges=privileges

def show_privileges(self):

for privilege in self.privileges:

print(privilege)

class admin(user):

def __init__(self, first_name, last_name, age, pr):

super().__init__(first_name, last_name, age)

self.pr=pr

pr1=["can add post", "can delete post" , "can ban user"]

pr2=["can add post", "can delete post"]

pr3=["can add post"]

pr1=privileges(pr1)

pr2=privileges(pr2)

pr3=privileges(pr3)

p=admin("peter", "liang", 19, pr1)

b=admin("bill", "herington", 47, pr2)

j=admin("james", "jobs", 12, pr3)

print(p.first_name+" "+p.last_name+":")

p.pr.show_privileges()

print(b.first_name+" "+p.last_name+":")

b.pr.show_privileges()

print(j.first_name+" "+p.last_name+":")

j.pr.show_privileges()

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...

作業第九章

一,簡答題 1.什麼是二重迴圈?在內層迴圈中使用continue和break語句,程式如何跳轉?答 1 就是乙個迴圈體內又包含另乙個完整的迴圈結構。2 continue語句是跳出本次迴圈,進入下一次迴圈。break是跳出本層迴圈,即提前結束本層迴圈,執行迴圈下面的語句。2.編寫程式,列印如下圖案,要...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...