Python4.2
列表推导式
lists=[x for x in range(10) if x>2]
print(lists)

字符串比较:
is:比较的是两个对象的内存地址
in:比较的是一个对象是否包含在另一个对象中
==:比较的是两个对象的内容(但是数据类型必须一致)
str1='a'
str2='a'
if str1 is str2:
print('内存一致')
else:
print(False)

str1='a'
str2='abc'
if str1 in str2:
print('str2包含str1')
else:
print(False)

str1='1'
str2='1'
if str1==str2:
print('str2==str1')
else:
print(False)

多态:
多态的优势:
1、增加了持续的灵活性
2、增加了持续的额外扩展的功能
Python中的一切皆对象
这个一切指的是变量,函数 类......
name='xiaoming'
def func():
print('hello word')
class Person():
def info(self):
print('This is my method')
# 把每个输出都看作一个对象--万物皆可对象
obj=name
print(obj)
obj=func()
obj=Person()
obj.info()
# print(name)
# func()
# obj=Person()
# obj.info()

class Person():
def info(self):
print('This is my method')
# 这个是个主函数--统一程序执行入口
if __name__ == '__main__':
obj=Person()
obj.info()

class Animal(object):
def talk(self):
print('动物会叫')
class Cat(Animal):
def talk(self):
print('猫也会叫')
class Person(Animal):
def talk(self):
print('人也会叫')
def func(animal):
animal.talk()
if __name__ == '__main__':
obj=Person()
func(animal=obj)

继承实战:
从左到右的原则:线性查找的顺序原则,也就是说调用show()方法,如果找到第一个满足的方法,后面继承的类即使有这个方法,也不会调用
前提条件:子类没有重写父类的方法
class Father(object):
def __init__(self,salary):
self.salary=salary
@property
def getSalary(self):
return self.salary
def show(self):
print('男人赚钱')
class Mother(object):
def __init__(self,hobby):
self.hobby=hobby
def show(self):
print('女人花钱')
class Son(Father,Mother):
def __init__(self,salary,hobby):
Father.__init__(self,salary)
Mother.__init__(self,hobby)
obj=Son(salary=10,hobby='读书')
obj.show()

函数实战:
import json
import sys
# 封装
def out():
username = input('请输入您的用户名:\n')
password = input('请输入您的密码:\n')
return username,password
def register():
# username=input('请输入您的用户名:\n')
# password=input('请输入您的密码:\n')
username,password=out()
temp=username+','+password
json.dump(temp,open('data.txt','w'))
# with open('data.txt','w')as f:
# f.write(temp)
def login():
# username=input('请输入您的用户名:\n')
# password=input('请输入您的密码:\n')
username, password = out()
lists=str(json.load(open('data.txt','r'))).split(',')
# with open('data.txt','r')as f:
# lists=f.read().split(',')
if username==lists[0] and password==lists[1]:
return '欢迎回来!'
else:
print('请输入正确的用户名或密码')
def profile():
with open('data.txt','r')as f:
lists=f.read().split(',')
print('欢迎{0}访问这个网页'.format(lists[0]))
def exit():
sys.exit(1)
def main():
while True:
try:
f=int(input('1、注册 2、登陆 3、网页 4、退出\n'))
if f==1:
register()
elif f==2:
print(login())
elif f==3:
profile()
elif f==4:
exit()
except Exception as e:continue
if __name__ == '__main__':
main()

oop实战:
import json
import sys
class Stack(object):
# 封装
def out(self):
username = input('请输入您的用户名:\n')
password = input('请输入您的密码:\n')
return username,password
def register(self):
# username=input('请输入您的用户名:\n')
# password=input('请输入您的密码:\n')
username,password=self.out()
temp=username+','+password
json.dump(temp,open('data.txt','w'))
# with open('data.txt','w') as f :
# f.write(temp)
def login(self):
# username = input('请输入您的用户名:\n')
# password = input('请输入您的密码:\n')
username, password =self.out()
lists=str(json.load(open('data.txt'))).split(',')
# with open('data.txt','r')as f:
# lists=f.read().split(',')
if username==lists[0]and password==lists[1]:
# return True
return '欢迎回来 登陆成功'
else:
print('请输入正确的用户名和密码')
def profile(self):
with open ('data.txt','r')as f:
lists=f.read().split(',')
# print(lists)
print('欢迎{0}访问这个主页'.format(lists[0].replace('"','')))
def exit(self):
sys.exit(1)
def main(self):
while True:
try:
f=int(input('1、注册2、登陆 3、主页 4、退出\n'))
if f==1:
self.register()
elif f==2:
print(self.login())
elif f==3:
self.profile()
elif f==4:
self.exit()
except Exception as e:continue
if __name__ == '__main__':
obj=Stack()
obj.main()


浙公网安备 33010602011771号