定义一个科技馆门票类 Ticket 。要求:初始化过程中根据要有姓名、年龄、星期数(1-7的整数,1-5表示周内,6、7表示周末)以及票价,根据年龄及周内/周末计算票价,票价规定如下:
a )、18岁以上成人周内票价为60元,周末票价均为平日的120%; b )、18岁以下票价为成人票价的一半,周末票价均为平日的110%;定义 show 方法,用于输出姓名、年龄和相应的票价。
创建 Ticket 对象t1,给定姓名、年龄及星期数(1-7的整数),调用 show 方法,输出实例对象的姓名、年龄和相应的票价。
class Ticket:
def __init__(self, name, age, day, price):
self.name = name
self.age = age
self.day = day
self.price = price
def show(self):
if self.age >= 18:
if self.day in [6, 7]:
self.price *= 1.2
return f"姓名:{self.name},年龄:{self.age},票价:{self.price}元"
else:
if self.day in [6, 7]:
self.price *= 1.1
else:
self.price *= 0.5
return f"姓名:{self.name},年龄:{self.age},票价:{self.price}元"
t1 = Ticket("Tom", 20, 3, 60)
print(t1.show())
def show(names,ages,weeks,n):
prices=[]
#计算价格
for i in range(n):
if ages[i]>=18:
if weeks[i]>=1 and weeks[i]<=5:
prices.append(60)
else:
prices.append(60*1.2)
else:
if weeks[i]>=1 and weeks[i]<=5:
prices.append(60/2)
else:
prices.append((60/2)*1.1)
#输出结果
print("姓名 年龄 票价")
for i in range(n):
print("{} {}岁 {}元".format(names[i],ages[i],prices[i]))
N=int(input("人数:"))
names=[]
ages=[]
weeks=[]
print("请输入信息:")
for i in range(N):
q=input("")
p=[i for i in q.split()]
names.append(p[0])
ages.append(int(p[1]))
weeks.append(int(p[2]))
show(names,ages,weeks,N)