1
创建一个名为User的类,其中包含属性first_name和last_name,还有用户简介通常会存储的其他几个属性。在类User中定义一个名为describe_user()的方法,它打印用户信息摘要;再定义一个名为greet_user()的方法,它向用户发出个性化的问候。
class User(object):
""" User类 """
def __init__ (self,first_name,last_name,gender,age):
""" 初始化User类 """
self.first_name=first_name
self.last_name=last_name
self.gender=gender
self.age=age
def describe_user (self):
""" 打印用户信息摘要 """
print('name:%s·%s\ngender:%s\nage:%d'%(self.first_name,\
self.last_name,self.gender,self.age))
def greet_user (self):
""" 问候方法 """
print('Holle %s'%self.first_name)
michael=User('Michael','Jacken','male',61)
michael.describe_user()
2
可以指定一批生成的个数,可以指定数值的范围,可以调整每批生成数字的个数
class Num(object):
""" 数字生成类 """
def num_create(self):
"""随机数生成"""
import random
for i in range(self.num):
self.num_list.append(random.uniform(self.num_min,self.num_max))
def __init__ (self,num,num_min,num_max):
""" 初始化数字生成类 """
self.num=num
self.num_min=num_min
self.num_max=num_max
self.num_list=[]
aa=Num(3,1,2)
aa.num_create()
print(aa.num_list)
3
有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。即:{‘k1’:大于66的所有值,‘k2’:小于66的所有值}
class Jihe(object):
""" 集合计算类 """
zidian={}
list1=set()
list2=set()
def jisuan (self):
""" 计算方法 """
for i in self.list:
if i > 66:
Jihe.list1.add(i)
elif i < 66:
Jihe.list2.add(i)
Jihe.zidian['小于66的所有值']=Jihe.list2
Jihe.zidian['大于66的所有值']=Jihe.list1
def __init__ (self,*args):
""" 初始化类 """
self.list=args
Jihe.jisuan(self)
a=Jihe(11,22,33,44,55,66,77,88,99,90)
print(a.zidian)
4
使用while,再完成以下图形的输出
*
*
class Picture(object):
""" 图形输出类 """
def __new__ (self,i):
""" 图形输出类初始化 """
obj=object.__new__(self)
while i < 9:
if i <5:
print((2*i*'*'+'*').center(9))
if i>=5:
print((2*(8-i)*'*'+'*').center(9))
i+=1
self.i=i
return obj
def aa (self):
print(self.i)
""" Function doc """
a=Picture(0)
a.aa()
5
地铁交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。
#要求:
#假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;每月月初小明第一次刷公交卡时,扣款5元;编写程序,从键盘获取距离,帮小明计算,如果不使用市政交通一卡通的每月总费用,和使用市政交通一卡通的每月总费用
class Fare(object):
""" 地铁消费类 """
def __init__ (self,dist,whether=0):
""" 上班距离:dist
是否用一卡通:1为使用,0为不使用,默认0 """
self.dist=dist
self.whether=whether
def fare_one(self):
'''6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里'''
if self.dist > 32:
return (self.dist-12)//20+6
#(s-32)//20+6+1
elif self.dist > 22:
return 6
elif self.dist > 12:
return 5
elif self.dist > 6:
return 4
else:
return 3
def fare (self):
""" 乘车总费用计算 """
if self.whether == 0:
return 40*Fare.fare_one(self)
else:
'''支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠'''
fare=5
for i in range(40):
if fare<100:
fare+=Fare.fare_one(self)
elif fare<150:
fare+=0.8*Fare.fare_one(self)
elif fare<400:
fare+=0.5*Fare.fare_one(self)
else:
fare+=Fare.fare_one(self)
return fare
xiaoming=Fare(20,1)
print(xiaoming.fare())