Python-62-物件導向-實作練習-輸入寵物資訊,找出年紀最大與最小者

建立一個類別 可以儲存屬性:寵物名、年紀、毛顏色

讓使用者建立3隻動物 寵物名、年紀、毛顏色

提示:可存入陣列[]

使用者輸入完後找出年紀最大 與 最小

並印出

寵物名,是年紀最大者 12歲

寵物名,是最年輕為 5歲


  • 步驟1:先儲存三隻寵物的名、年紀、毛色,並印出
  • 步驟2:找出陣列中年紀最大與最年輕者
  • 完整程式碼

 

參考Code:

步驟1:先儲存三隻寵物的名、年紀、毛色,並印出

方式一:

#請用物件導向寫法
#建立3隻狗 儲存屬性: 寵物名、年紀、顏色
class Cat2:
    
    def __init__(self, name, age, color):
        self.name = name
        self.age = age
        self.color = color
 
    
# 建立3隻寵物並儲存在 List 之中 

#方法一:

cats = [
        Cat2(input("請輸入寵物名1="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名2="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名3="), input("請輸入age="), input("請輸入color=")),
       ]

for key in cats:
  print("名",key.name)
  print("年紀",key.age)
  print("毛色",key.color)

看看效果

方式2: 重複的地方,需要再簡寫,使用for迴圈,append去添加陣列資料

#請用物件導向寫法
#建立3隻狗 儲存屬性: 寵物名、年紀、顏色
class Cat2:
    
    def __init__(self, name, age, color):
        self.name = name
        self.age = age
        self.color = color
 
    
# 建立3隻寵物並儲存在 List 之中 
#方法二:
cats=[]
    
for times in range(3):
    cats.append(Cat2(input("請輸入寵物名="), eval(input("請輸入age=")), input("請輸入color=")))   
   
for x in cats:
    print(x.name)
    print(x.age)
    print(x.color)
    

看看效果

 

步驟2:找出陣列中年紀最大與最年輕者

 

#找出年紀最大與最年輕者
maxcats=0 #(第一圈=2,第二圈5,第三圈8) 最大=8
mincats=30#(第一圈=2,第二圈2,第三圈2) 最小=2

for x in cats:
    
    if(x.age>maxcats):#(第一圈:2 > 0 ,第二圈:5 > 2 ,第三圈 : 8>5)
        maxname=x.name #(第一圈: a1 ,第二圈 : a2 ,第三圈 : a3)
        maxcats=x.age # (第一圈: 2 ,第二圈: 5 ,第三圈 :8)
    if(x.age<mincats):#(第一圈:2 < 30,第二圈 : 5 < 2 , 第三圈 : 8<5)
        minname=x.name #(第一圈: a1 ,第二圈不跑 ,第三圈不跑)
        mincats=x.age #(第一圈: 2 ,第二圈不跑,第三圈不跑)
        
# 找出最大的年紀數字
print("{} 年紀最大者 {} 歲".format(maxname,maxcats))
print("{} 是年輕者為 {} 歲".format(minname,mincats))

 

 

完整程式碼

 

#請用物件導向寫法
#建立3隻狗 儲存屬性: 寵物名、年紀、顏色
class Cat2:
    
    def __init__(self, name, age, color):
        self.name = name
        self.age = age
        self.color = color
 
    
# 建立3隻寵物並儲存在 List 之中 

#方法一:
    """
cats = [
        Cat2(input("請輸入寵物名1="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名2="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名3="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名4="), input("請輸入age="), input("請輸入color=")),
        Cat2(input("請輸入寵物名5="), input("請輸入age="), input("請輸入color="))
       ]

"""
#方法二:
cats=[]
    
for times in range(3):
    cats.append(Cat2(input("請輸入寵物名="), eval(input("請輸入age=")), input("請輸入color="))) 

"""
for x in cats:
    print(x.name)
    print(x.age)
    print(x.color)
"""    

#找出年紀最大與最年輕者
maxcats=0
mincats=20

for x in cats:
    
    if(x.age>maxcats):
        maxname=x.name
        maxcats=x.age
    if(x.age<mincats):
        minname=x.name
        mincats=x.age
        
# 找出最大的年紀數字
print("{} 年紀最大者 {} 歲".format(maxname,maxcats))
print("{} 是年輕者為 {} 歲".format(minname,mincats))

看看效果

 

Yiru@Studio - 關於我 - 意如