原文链接:https://blog.csdn.net/Venom__/article/details/103642794
一: 利用猫狗与人的年龄换算器和类的继承编写的“养宠物经历”
1、PyQt设计界面:
2、对象命名:
3、源程序:
# 系统包
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
# 项目包
from Ui_MainWindow import Ui_MainWindow
class people:
name = ""
age = 0
sex="女"
hometown = "章丘"
memories = ""
def OutputName(self):
strOutput = "我叫" + self.name
return strOutput
def OutputAge(self):
strOutput = "今年已经" + self.age + "岁了"
return strOutput
def OutputSex(self):
if self.sex == "女":
strOutput = "我先进行一下自我介绍,本人喜欢小动物,喜欢滑雪,旅行,唱歌,吃美食,喜欢记录一些美好的事情,不管事拍照,还是写日记,我比较喜欢直来直去,性格活泼开朗,对待事情严谨认真不轻言放弃的态度,把事情做到极致,很注重仪式感。"
else:
strOutput = "我是一个活泼开朗的男孩,我珍惜我生命中的每一分、每一秒"
return strOutput
def OutputHometown(self):
strOutput = "家住在环境优美,历史悠久,人杰地灵,是“龙山文化”的发祥地,是李清照故居。在" + self.hometown
return strOutput
def OutputMemories(self):
strOutput = "在我开心但也是伤心,难忘莫过于我" + self.memories
return strOutput
def OutputResume(self):
strOutput = " " + self.OutputName() + ","
strOutput = strOutput + self.OutputAge() + "。"
strOutput = strOutput + self.OutputSex() + "。"
strOutput = strOutput + self.OutputHometown() + "。"
strOutput = strOutput + self.OutputMemories() + "。"
return strOutput
class pet(people):
petname = ""
petage = ""
appearance = ""
character = ""
happy =""
words =""
def OutputPetName(self):
strOutput = "在我12岁的时候,爸爸送我一只猫,和一条狗。当时见到它们样子十分的可爱,根据他们的体貌特征分别给他们取名字,分别为" + self.petname
return strOutput
def OutputPetAge(self):
strOutput = "当时的我懵懵懂懂却不知它们已经" + self.petage
return strOutput
def OutputAppearance(self):
strOutput = "团绒它有一身雪一般洁白的皮毛;一条又细又短的尾巴在一见到我就拼命地晃动;两只圆溜溜的大眼睛流露出柔和的目光,仔细一看还是个双眼皮,真是太优秀了;一对可爱的耳朵顶在它的头上,它的耳朵大多时候都是放松的,只有高度警惕的时候才是竖起来的;它会疑惑地歪着头看你,它会嘴里呜呜的发出声音浑身摆动,尾巴摇动很厉害的跟你做游戏。小花猫的脑袋圆圆的,顶着一对尖尖的小耳朵,那大大的绿眼睛瞪得像两盏小绿灯" + self.appearance
return strOutput
def OutputCharacter(self):
strOutput = "都说狗见到猫必然出事,可我不这么认为:自从养了它们没见过为争宠或者吃的所争执,它们俩的性格都十分" + self.character + "特别说一下团绒的懂事,无论是给它喂什么吃的,总是在我们离开后再吃,很绅士的一条乖狗狗呢!"
return strOutput
def OutputHappy(self):
strOutput = "最开心的事情就是" + self.happy
return strOutput
def OutputWords(self):
strOutput = "但是快乐的时光总是短暂的,随着一年一年的过去,你还没有觉得时间过去很久之后,它们都已经年龄很大了。它们也变得没有以前活泼了,团绒的嗓音没有之前那样洪亮,有些沙哑,我也知道它们的身体一天不如一天,狗是忠诚的,这一点我一直坚信,即使是这样,它仍然坚守在自己的岗位上。当它们离开我的时候,我真的特别难过好长时间。但是生离终究敌不过死别,死亡是霸道的,死亡将它带走了就再也回不来了,之后我就再也没有养过其他的猫和狗,即使是它们再可爱,在这里我还是想对他们说:“" + self.words
return strOutput
def OutputResume(self):
strOutput = " " + self.OutputName() + ","
strOutput = strOutput + self.OutputAge() + "。"
strOutput = strOutput + self.OutputSex() + "。"
strOutput = strOutput + self.OutputHometown() + "。"
strOutput = strOutput + self.OutputMemories() + "。"
strOutput = strOutput + self.OutputPetName() + ","
strOutput = strOutput + self.OutputPetAge() + "。"
strOutput = strOutput + self.OutputAppearance() + "。"
strOutput = strOutput + self.OutputCharacter() + "。"
strOutput = strOutput + self.OutputHappy() + "。"
strOutput = strOutput + self.OutputWords() + "。"
return strOutput
class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
super(CMainWindow, self).__init__(parent)
self.setupUi(self)
# 主窗体设置
self.show()
def Dog(self):
a = int(self.txtAgeNumber1.text())
if 0<=a<=2:
if a ==2:
self.txtDogResult.setText("二十三岁")
if a== 1:
self.txtDogResult.setText("十八岁")
if a <=0:
self.txtDogResult.setText("小于十八岁")
else:
a = 23 + ( a - 2) *5
self.txtDogResult.setText(str(a))
def Cat(self):
b = int(self.txtAgeNumber2.text())
if 0<=b<=2:
if b ==2:
self.txtCatResult.setText("二十四岁")
if b== 1:
self.txtCatResult.setText("十五岁")
if b <=0:
self.txtCatResult.setText("小于十五岁")
else:
b = 24 + ( b - 2) *4
self.txtCatResult.setText(str(b))
def Generate(self):
p = pet ()
p.name = self.txtName.text()
p.age = self.txtAge.text()
p.sex= self.txtSex.text()
p.hometown = self.txtHometown.text()
p.memories = self.txtMemories.text()
p.petname= self.txtPetName.text()
p.petage = self.txtPetAge.text()
p.appearance = self.txtAppearance.text()
p.character= self.txtCharacter.text()
p.happy = self.txtHappy.text()
p.words = self.txtWords.text()
self.txtResume.setText(p.OutputResume())
二、注解:
1:
2:Python Class的基础用法类(Class):用来描述具有相同的属性和方法的对象的 集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
3:def关键字可以为类定义一个方法,与一般的函数定义不同,类方法必须包含参数self,且为第一个参数。
4:def函数名 :说这个函数是受保护的函数,只有类本身和其子类才能调用。
5:
6:继承的作用是
1)提高代码的重用性。
2)提高程序的扩展性。
7:宠物和人的年龄换算:定义小狗、小猫 2岁以前和人的固定年龄。小狗1岁相当于18,2岁相当于人的23岁。小于1岁定义小于18岁,小猫1岁相当于人的15岁,2岁相当于人的24岁。小于一岁定义小于15岁。当小狗小猫大于两岁是采用数学等差数列通项公式计算后面的年龄。