python123第五周课后作业_Python学习第五周第一次作业——类

这篇博客介绍了Python编程中类的使用,包括创建User类来存储用户信息,增加login_attempts属性追踪登录尝试次数,并实现increment_login_attempts和reset_login_attempts方法。此外,还创建了Admin类,作为User的子类,添加了特权属性并展示如何调用显示特权的方法。最后,通过示例展示了如何使用random模块创建并掷骰子类。
摘要由CSDN通过智能技术生成

第五周课后作业,第九章的练习题选几道写一下

9-3用户 : 创建一个名为User的类, 其中包含属性first_name和last_name, 还有用户简介通常会存储的其他几个属性。 在类User中定义一个名为describe_user()的方法, 它打印用户信息摘要; 再定义一个名为greet_user()的方法, 它向用户发出个性化的问候。创建多个表示不同用户的实例, 并对每个实例都调用上述两个方法。

class User():

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

self.first_name = first_name

self.last_name = last_name

self.age = age

self.gender = gender

def describe_user(self):

print("Name:" + self.first_name.title() + ' ' + self.last_name.title())

print("Age:" + self.age)

print("Gender:" + self.gender)

def greet_user(self):

print("Hello, " + self.first_name.title() + ' ' + self.last_name.title() + '.')

user_1 = User('jason', 'todd', '20', 'male')

user_2 = User('alice', 'barnes', '18', 'female')

user_1.describe_user()

user_1.greet_user()

print()

user_2.describe_user()

user_2.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, gender):

self.first_name = first_name

self.last_name = last_name

self.age = age

self.gender = gender

self.login_attempts = 0

def describe_user(self):

print("Name:" + self.first_name.title() + ' ' + self.last_name.title())

print("Age:" + self.age)

print("Gender:" + self.gender)

def greet_user(self):

print("Hello, " + self.first_name.title() + ' ' + self.last_name.title() + '.')

def increment_login_attempts(self):

self.login_attempts += 1

def reset_login_attempts(self):

self.login_attempts = 0

user_1 = User('jason', 'todd', '20', 'male')

user_1.increment_login_attempts()

print(user_1.login_attempts)

user_1.increment_login_attempts()

print(user_1.login_attempts)

user_1.reset_login_attempts()

print(user_1.login_attempts)

9-7管理员 : 管理员是一种特殊的用户。 编写一个名为Admin的类, 让它继承你为完成练习9-3或练习9-5而编写的User类。 添加一个名为privileges的属性, 用于存储一个由字符串(如"can add post"、"can delete post"、"can ban user"等) 组成的列表。 编写一个名为show_privileges()的方法, 它显示管理员的权限。 创建一个Admin实例, 并调用这个方法。

class User():

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

self.first_name = first_name

self.last_name = last_name

self.age = age

self.gender = gender

self.login_attempts = 0

def describe_user(self):

print("Name:" + self.first_name.title() + ' ' + self.last_name.title())

print("Age:" + self.age)

print("Gender:" + self.gender)

def greet_user(self):

print("Hello, " + self.first_name.title() + ' ' + self.last_name.title() + '.')

def increment_login_attempts(self):

self.login_attempts += 1

def reset_login_attempts(self):

self.login_attempts = 0

class Admin(User):

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

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

self.privileges = privileges

def show_privileges(self):

print(self.first_name.title() + ' ' + self.last_name.title()+' ' + self.privileges + '.')

user_1 = Admin('jason', 'todd', '20', 'male', 'can add post')

user_1.show_privileges()

9-12多个模块 : 将User类存储在一个模块中, 并将Privileges和Admin类存储在另一个模块中。 再创建一个文件, 在其中创建一个Admin实例, 并对其调用方法show_privileges(), 以确认一切都依然能够正确地运行。

from User import User

from Admin import Admin

user_1 = Admin('jason', 'todd', '20', 'male', 'can add post')

user_1.show_privileges()

9-14骰子 : 模块random包含以各种方式生成随机数的函数, 其中的randint()返回一个位于指定范围内的整数。创建一个Die类, 它包含一个名为sides的属性, 该属性的默认值为6。 编写一个名为roll_die()的方法, 它打印位于1和骰子面数之间的随机数。 创建一个6面的骰子, 再掷10次。 创建一个10面的骰子和一个20面的骰子, 并将它们都掷10次。

from random import randint

class Die:

def __init__(self, sides=6):

self.sides = sides

def roll_die(self):

print(randint(1, self.sides))

die_1 = Die()

print("Roll a die with six sides.")

for i in range(1, 11):

die_1.roll_die()

die_2 = Die(10)

print("Roll a die with ten sides.")

for i in range(1, 11):

die_2.roll_die()

die_3 = Die(20)

print("Roll a die with twenty sides.")

for i in range(1, 11):

die_3.roll_die()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值