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()

 

 


posted @ 2022-04-02 18:31  净植  阅读(141)  评论(0)    收藏  举报