900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 花了2万多买的Python教程全套 现在分享给大家……Python入门到精通(Python全栈开发教

花了2万多买的Python教程全套 现在分享给大家……Python入门到精通(Python全栈开发教

时间:2020-10-17 07:30:12

相关推荐

花了2万多买的Python教程全套 现在分享给大家……Python入门到精通(Python全栈开发教

我的Python足迹

print("hello word!")#1.整数与浮点print(123)print(123-321)print(0.1+0.2)#变量长=10宽=5高=2底面积=长*宽体积=底面积*高print(底面积)print(体积)#2.字符串,列表,元组#a字符串string_1='我是一个字符串'string_2=''#空字符串#b列表(list)是python的容器之一,由方括号和方括号括起来的数据构成list_1=[1,2,3,4,5]list_2=['a','b','','kk']list_3=[123,'abc',45,[1,2,'xx']]#也可由多种元素组合起来的列表#c元组(tuple)是python的容器之一,由小括号和小括号括起来的数据构成tuple_1=[1,2,3,4,5]tuple_2=['a','b','','kk']tuple_3=[123,'abc',45,[1,2,'xx']]#也可由多种元素组合起来的元组#元组与列表的区别:列表生成以后还可以往里面继续添加数据,也可以删除数据;但是tuple一旦生成就不能修改。#3.数据的读取# a指定下下标从0开始example_string ='我是字符串'example_list=['我','是','列表']example_tuple=('我','是','元组')print(example_string[0])#我print(example_list[1])#是print(example_tuple[2])#元组print(example_tuple[-1])#元组 -1表示最后一个元素以此类推#b切片操作切了以后还是它自己 格式 变量名[开始位置下标:结束位置下标:步长]print(example_string[1:3])#读取下标为1和为2的字符print(example_string[1])#是print(example_string[2])#字print(example_string[1:])#读取下标为1的元素和它后面的元素print(example_string[:3])#读取下标为0,1,2和3的元素print(example_string[:-1])#取-1表示倒序读取#c拼接与修改#c_1字符串与字符串拼接string_1='你好'string_2='世界'string_3=string_1+string_2print(string_3)#c_2元组与元组tuple_1=('abc','exo')tuple_2=('哇哇哇哇','哈哈哈')tuple_3=tuple_1+tuple_2print(tuple_3)#('abc', 'exo', '哇哇哇哇', '哈哈哈')#c_3列表与列表list_1=['abc','exo']list_2=['哇哇哇哇','哈哈哈']#['abc', 'exo', '哇哇哇哇', '哈哈哈']list_3=list_1+list_2print(list_3)#可通过列表的下表修改值 变量名[下标]=新的值existd_list=[1,2,34,45]existd_list[1]='new'print(existd_list)#列表还可以单独在末尾添加元素list_4=['python','爬虫']print(list_4)#['python', '爬虫']list_4.append('----')print(list_4)#['python', '爬虫', '----']list_4.append('酷')print(list_4)#['python', '爬虫', '----', '酷']#元组和字符串不能添加新的内容#4.字典与集合#a字典就是使用大括号括起来的键(key)值(value)对(key-value对)dict_1={'superman':'超人内裤外穿','天才':'99%的努力加汗水','xx':0,118:'118是正确答案'}#可以通过key来读取value a:变量名[key] b:变量名.get(key) c:变量名.get(key,'再找不到key的情况下使用这个值')example_dict={'superman':'超人内裤外穿','天才':'99%的努力加汗水','xx':0,118:'118是正确答案'}print(example_dict['天才'])#99%的努力加汗水print(example_dict.get(118))#118是正确答案print(example_dict.get('不存在的key'))#Noneprint(example_dict.get('不存在的key','没有'))#没有#使用get来读取,如果get只有一个参数,那么在找不到Key的情况下会得到“None”;如果get有两个参数,那么在找不到Key的情况下,会返回第2个参数。#修改key 变量名[key]='新的值'existed_dict={'a':123,'b':'爽歪歪'}print(existed_dict)#{'a': 123, 'b': '爽歪歪'}existed_dict['b']='我修改了b'print(existed_dict)#{'a': 123, 'b': '我修改了b'}existed_dict['c']='我是新来的'print(existed_dict)#{'a': 123, 'b': '我修改了b', 'c': '我是新来的'}#b.集合 集合最大的应用之一就是去重。例如,把一个带有重复元素的列表先转换为集合,再转换回列表,那么重复元素就只会保留一个example_set={1,2,3,'a','b','c'}duplicated_list={2,2,34,5,54,11,11,'a','a','s'}unique_list=list(set(duplicated_list)) #使用set()函数把列表转为集合print(unique_list)#[2, 34, 'a', 5, 54, 's', 11] 注:由于集合与字典一样,里面的值没有顺序,因此使用集合来去重是有代价的,代价就是原来列表的顺序也会被改变。#5.条件语句#a.if语句a=1b=2if a+b==3:print('答案正确') #答案正确print('以后的代码与以上if无关')#以后的代码与以上if无关#and or 连接表达式if 1+1==2 and 2+2==4:print('答案正确')if 1+1==3 or 3+3==6:print('答案正确')#b.短路效应# (1)在使用and连接的多个表达式中,只要有一个表达式不为真,那么后面的表达式就不会执行。# name_list=[]# if nmae_list and name_list=='张三':#print('ok')# (2)在使用or连接的多个表达式中,只要有一个表达式为真,那么后面的表达式就不会执行。# if 1+1==2 or 2+'a'==3 or 1+1==3:#print('ok')#c.多重条件判断# 对于多重条件的判断,需要使用“if...elif...else...”。其中,“elif”可以有0个,也可以有多个,但是else只能有0个或者1个。answer=2if answer==2:print('true')else:print('false')name='酱鸭饭'if name=='酱鸭饭':print('12元')elif name =='回锅肉':print('15元')elif name=='米饭':print('1元')elif name=='鸡汤':print('免费')else: print('换个店试试')# if state=='start':#code=1# elif state=='running':#code=2# elif state=='offline':#code=3# elif state=='unknow':#code=4# else: code=5## state_dict={'start':1,'running':2,'offlin':3,'unknow':4}# code=state_dict.get(state,5)'''----day02'''#1.函数与类#a.def定义函数 def函数名(参数1,参数2)……return返回值def func_example_1():a=1+1return ab=2+2 #同一个函数中return后的代码不会被执行print(b)#b.调用函数def get_input(): #得到用户输入的数据input_string =input('请输入由的逗号分隔的两个非零整数:')a_string,b_string=input_string.split(',')return int (a_string),int(b_string)def calc(a,b): #计算两个数的和差积商sum_a_b=a+bdifference_a_b=a-bproduct_a_b=a*bquotient=a/breturn {'sum':sum_a_b,'diff':difference_a_b,'pro':product_a_b,'quo':quotient}def output(result): #将结果打印出来print ('两数的和:{}'.format(result['sum']))print('两数的差:{}'.format(result['diff']))print('两数的商:{}'.format(result['quo']))print('两数的积:{}'.format(result['pro']))# a_int,b_int=get_input()# result_dict=calc(a_int,b_int)# output(result_dict)# def run():#a,b=get_input()#result=calc(a,b)#output(result)# run()# def get_input(split_char): #得到用户输入的数据#input_string =input('请输入由的{}分隔的两个非零整数:'.format(split_char))#a_string,b_string=input_string.split(split_char)#return int (a_string),int(b_string)# a,b=get_input('#')# print ('第一个数:{},第二个数:{}'.format(a,b))

正则表达式&文件操作

#3.1正则表达式 正则表达式是提取信息的方法之一。#正则表达式的基本符号#1.点号“.” 一个点号可以代替除了换行符以外的任何一个字符#2.星号“*” 一个星号可以表示它前面的一个子表达式(普通字符、另一个或几个正则表达式符号)0次到无限次#3.问号"?" 问号表示它前面的子表达式0次或者1次#4.反斜杠“\” 反斜杠在正则表达式里面不能单独使用,甚至在整个Python里都不能单独使用。反斜杠需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号#5.数字"\d" 正则表达式里面使用“\d”来表示一位数字。为什么要用字母d呢?因为d是英文“digital(数字)”的首字母#6.小括号"()" 小括号可以把括号里面的内容提取出来。#3.2使用正则表达式# 1.findall Python的正则表达式模块名字为“re”,也就是“regular expression”的首字母缩写。在Python中需要首先导入这个模块再进行使用import re #Python的正则表达式模块包含一个findall方法,它能够以列表的形式返回所有满足要求的字符串content='我的微信密码是:123456,QQ密码是:34643768abc,支付宝密码是:88888888,帮我记住密码'password_list=re.findall(':(.*?),',content)print('找到密码{}'.format(password_list))#re.findall(pattern,string ,flags=0) #pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志#2.search search()的用法和findall()的用法一样#3.“.*”和“.*? ”的区别# ①“.*”:贪婪模式,获取最长的满足条件的字符串。# ②“.*? ”:非贪婪模式,获取最短的能满足条件的字符串。#3.3正则表达式提取#1.不需要compile#2.先抓大再抓小big_small_text='''有效用户:姓名:张三姓名:李四姓名:王五无效用户:姓名:小爱同学姓名:小i的爹'''# user=re.findall('姓名:(.*?)\n',big_small_text)# print(user)user_big=re.findall('有效用户(.*?)无效用户',big_small_text,re.S)print('user_big:{}'.format(user_big))user_userful=re.findall('姓名:(.*?)\n',user_big[0])print('有效用户:{}'.format(user_userful))#3.括号内和括号外 括号限制提取的内容部分#3.2Python文件操作#1.使用Python读取文本文件# with open ('text.txt',encoding='utf—8') as f:# content_list=f.readlines()# #readlines读取所有行,# # 并以列表的形式返回结果# # #read 直接把文件里面的全部内容用一个字符串返回# print(content_list)#2.使用Python写文本文件with open('new.txt','w',encoding='utf-8') as f:#w是英文write的首字母,意思是以写的方式打开文件。这个参数除了为“w”外,还可以为“a”。# 它们的区别在于,如果原来已经有一个new.txt文件了,使用“w”会覆盖原来的文件,# 导致原来的内容丢失;而使用“a”,则会把新的内容写到原来的文件末尾f.write('你好')f.write('\n==================\n')f.write('嘿嘿,跟我学爬虫')a = 21b = 10c = 0c = a + bprint (ord('乘'))print(chr(6))name='乐呵呵'print(name)a=1.1b=2.2print(a+b)from decimal import Decimalprint(Decimal('1.1')+Decimal('2.2'))f1=Falsef2=Trueprint(f1,type(f1))name='张三'age=20print('我叫'+name+'今年'+str(age))#------将其他类型转为int型-------# a_1=123# print(int(a_1),type(a_1))# a_2='1234.4'# # print(int(a_2),type(a_2))# a_2_1='1234'# print(int(a_2_1),type(a_2_1))# a_3='hello'# # print(int(a_3),type(a_3))# a_4=True# print(int(a_4),type(a_4))# a_5=123.345# print(int(a_5),type(a_5))# # print(a_1,type(a_1),a_2,type(a_2),a_3,type(a_3),a_4,type(a_4),a_5,type(a_5))# print('第一个数:')# num_1=input()# print('第二个数:')# num_2=input()# print(int(num_1)+int(num_2))#解包赋值n,b,l=2,1,5print(n,b,l)#交换n,b=b,nprint(n,b,l)#-------------------'''双分支结构'''# print("输入一个数")# a=int(input())# if a%2==0:#print(a,'偶数')# else:#print(a,'奇数')'''多分支结构90-100 A80-89 B70-79 C60-69 D0-59 E小于0或大于100为非法数据'''# score=float(input('请输入成绩'))# if score<=100 and score>=90:#print('A')# elif 80<=score<=89:#print('B')# elif 70<=score<=79:#print('C')# elif 60<=score<=69:#print('D')# elif 0<=score<=59:#print('E')# else:#print('非法数据')# '''从键盘输入两个数比较大小'''# num_1=int(input('第一个数:'))# num_2=int(input('第二个数:'))# if num_1 >= num_2:#print(num_1,'大于等于',num_2)# else:#print(str(num_1)+'小于'+str(num_2))#-----使用条件表达式比较# print((str(num_1)+'大于等于'+str(num_2)) if num_1>=num_2 else str(num_1)+'小于'+str(num_2) )#-----pass占位符age=int(input('请输入年龄:'))if age:print('年龄',age)else:print('不能为零')

Python中的循环结构

#----range的三种创建方式'''第一种创建方式,只有一个参数'''r=range(10)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],默认从0开始,默认相差1称为步长print(r)#range(0, 10)print(list(r))#用于查看range中的整数序列'''第二种创建方式,给了两个参数'''r=range(1,10)print(list(r))#[1, 2, 3, 4, 5, 6, 7, 8, 9]'''第三种创建方式,给了三个参数'''r=range(1,10,2) #range(start,stop,step)print(list(r))#[1, 3, 5, 7, 9]print(10 in r)print(10 not in r)'''循环结构''''''while循环的执行流程初始化变量条件判断条件执行体改变变量'''#计算1-5的和sum=0 #用于存储累加和''' 初始化变量'''a=0'''条件判断 '''while a<=5:'''循环体'''sum+=a'''改变变量'''a+=1print('和',sum)'''计算1-100之间的偶数和''''''while循环'''sum=0a=0while a<=100 :if not bool (a%2):sum+=aa+=1print('和',sum)'''for循环'''sum=0for i in range(0,101,2):# if not bool(i%2):# print(i)sum+=iprint(sum)'''100-999之间的水仙花数'''for i in range(100,1000):ge=i%10shi=i//10%10bai=i//100if ge**3+bai**3+shi**3==i:print("水仙花数",i)'''打印矩形'''for item in range(3):#行数for j in range(4):print('*',end='\t') #不换行print() #打行'''打九九乘法表'''for i in range(1,10):for j in range(1,i+1):print(str(j)+'*'+str(i)+'='+str(i*j),end='\t')print()

列表

a=10lst=['hello','world',100]print(id(lst))print(type(lst))print(lst)'''创建列表的第一种方式,使用[]'''lst=['hello','world',100]'''创建列表的第二种方式,使用内置函数list()'''lst2=list(['hello','world',98])print('添加元素前',id(lst2),lst2)'''向列表里添加元素'''lst2.append(886) #向列表的末尾添加一个元素print('添加元素后',id(lst2),lst2) #添加前后标识列不变#lst2.append(lst) #将lst作为一个元素添加到列表的末尾lst2.extend(lst) #向列表的末尾添加多个元素print(lst2)lst2.insert(1,666)#任意位置添加一个元素print(lst2)lst2[1:]=lst #切片 在列表的任意位置添加至少一个元素print(lst2)'''向列表删除元素'''lst=[10,20,30,40,50,60,100]lst.remove(20)#从列表中移除一个元素,如果不存在会报错print(lst)lst.pop(1) #pop()根据索引移除元素lst.pop() #如果不指定参数移除最后一个元素print(lst)print('-----切片操作——删除至少一个元素,将产生一个新的列表对象------')new_list=lst[1:3]print('原列表',lst)print('新列表',new_list)'''直接删除'''lst[1:3]=[]print(lst)'''清除列表中的所有元素'''lst.clear()print(lst)'''del将列表直接删除'''del lst#print(lst) #lst' is not defined(defined 定义)'''列表元素的排序操作'''lst_1=[100,23,67,89,66,889,907]print('对排序',lst_1)lst_1.sort()#默认升序print(lst_1)lst_1.sort(reverse=True) #降序print(lst_1)print('------使用内置函数sorted()对列表进行排序--------')lst_1=[100,23,67,89,66,889,907]print('原列表',lst_1)#开始排序new_list_1=sorted(lst_1)print(lst_1)print(new_list_1)#降序new_list_1=sorted(lst_1,reverse=True)print(lst_1)print(new_list_1)

字典的创建方式

'''使用{}创建字典'''score={'张三':100,'李四':98,'王五':66}print(score)'''第二种创建dict()'''student=dict(name='张三',score=99)print(student)'''空字典'''d={}print(d)'''获取字典的元素'''print(score['张三'])print(score.get('成六',99))#判断存在print('张三' in score) #Trueprint('张三' not in score) #False#删除del score['张三']print(score)#新增score['老八']=99print(score)#修改score['老八']=123print(score)#打包items=['Fruits','Books','Others']prices=[96,87,66,200]d={item.upper():price for item ,price in zip(items,prices) }print(d)

集合

s1={1,2,3,4,5,6,7}s2={7,6,5,4,3,2,1}s2=set({7,6,5,4,3,2,1})print(s1!=s2) #两个集合是否相等s3={1,2,3,4,5}s4={1,2,3,4}print(s4.issubset(s3)) #s4是s3的子集print(s3.issuperset(s4)) #s3是s4的超集print(s3.isdisjoint(s1)) #是否存不在交集'''集合的数学操作'''s_1={1,2,3,4,5}s_2={2,3,4,5,6,7}print(s_1.intersection(s_2))print(s_1 & s_2) #交集操作print(s_1.union(s_2))print(s_1 | s_2) #并集操作print(s_2.difference(s_1))print(s_2-s_1) #差集print(s_1.symmetric_difference(s_2))print(s_1^s_2) #对称差集

字符串的常用操作集合

'''字符串的查询操作'''s='hello,hello'print(s.index('lo')) #3print(s.find('lo'))#3print(s.rindex('lo'))#9print(s.rfind('lo'))#9#print(s.index('k')) #ValueError: substring not foundprint(s.find('k')) #-1#print(s.rindex('k')) #ValueError: substring not foundprint(s.rfind('k')) #-1'''字符串的大小写转化操作'''s='Hello Python'print(s.upper())#HELLO PYTHONprint(s.lower())#hello pythonprint(s.swapcase())#hELLO pYTHON 反转字符串中的大小写print(s.capitalize())#Hello python 首字母大写print(s.title())#Hello Python'''字符串内容对齐操作'''s='hello,python''''居中对齐'''print(s.center(20,'#'))####hello,python####'''左对齐'''print(s.ljust(20,'*'))#hello,python********print(s.ljust(20))'''右对齐'''print(s.rjust(20,'#'))print(s.rjust(20)) # hello,python'''右对齐,使用0进行填充'''print(s.zfill(20))print(s.zfill(10))print('-8910'.zfill(8))'''字符串的分割'''s='hello world python'lst=s.split()print(lst) #['hello', 'world', 'python']s_1='hello|world|python'print(s_1.split(sep='|')) #['hello', 'world', 'python']print(s_1.split(sep='|',maxsplit=1)) #['hello', 'world|python']print('''rsplit()从右侧开始辟分''')print(s.rsplit())print(s_1.rsplit('|'))print(s_1.rsplit(sep='|',maxsplit=1)) #['hello|world', 'python']'''判断字符串操作'''s='hello,python''''isidentifier()判断字符串是否合法'''print('1.',s.isidentifier()) # Falseprint('2.','hello'.isidentifier()) # Falseprint('3.','张三_123'.isidentifier()) #True'''isspace()判断字符串是否全部由空白字符组成'''print('5.','\t'.isspace()) #True'''isalpha()判断字符串是否全部由字母组成'''print('6.','abc'.isalpha())#True'''isdecimal()判断字符串是否全部由十进制的数字组成'''print('7.','145'.isdecimal())#True'''isnumeric()判断字符串是否全部由数字组成'''print('8.','12345六'.isnumeric())#True'''isalnum()判断字符串是否全部由字母和数字组成'''print('9.','12345六张三'.isalnum())#True'''字符串操作的其他方法''''''字符串替换replace()'''s='hello,python'print(s.replace('python','c#')) #hello c#s_1='hello,python,python,python'print(s_1.replace('python','c#',2)) #hello,c#,c#,python'''字符串的合并join()'''lst=['hello','java','c']print('|'.join(lst)) #hello|java|cprint(''.join(lst)) #hellojavact=('hello','java','c')print(''.join(t))#hellojavacprint('*'.join('hello'))#h*e*l*l*o

字符串的比较操作 &字符串的切片

print('apple'>'app') #Trueprint('apple'>'banana') #Falseprint(ord('a'),ord('c')) #97 99print(chr(97),chr(98)) #a b'''==与is的区别==比较的是 valueis比较的是id'''a=b='python'c='python'print(a is c) #Trueprint(a==c) #True'''字符串的切片'''s='hello,python's_1=s[:5]s_2=s[6:]print(s_1)print(s_2)s_3='!'print(s_1+s_3+s_2)

格式化字符串

#1.%占位符name='张三'age=20print('我叫%s,今年%d'%(name,age)) #%s字符串 %i或%d整数 %f浮点数#2.{}占位符print('我叫{0},今年{1}岁'.format(name,age))#3.f-stringprint(f'我叫{name},今年{age}')print('%10d' % 99) # 99 10表示宽度print('%.3f' %3.1415926) #3.142 3表示小数点后三位print('%10.3f' %3.1415926) #3.142 一共总宽度为10 ,小数点后3位print('hellohello')print('{0:.3}'.format(3.1415926)) #3.14 .3表示的是一共是3位小数print('{:.3f}'.format(3.1415926)) #3.142 .3f表示是3位小数print('{:10.3f}'.format(3.1415926)) #3.142 同时设置宽度和精度,一共是10位,3位小数

字符串的编码

s='天涯共此时'print(s.encode(encoding='GBK'))#在GBK这种编码格式中一个中文占两个字节print(s.encode(encoding='UTF-8'))#在UTF-8中一个中文占三个字节#解码#byte代表就是一个二进制数据byte=s.encode(encoding='GBK') #编码print(byte.decode(encoding='GBK')) #解码byte=s.encode(encoding='UTF-8')print(byte.decode(encoding='UTF-8'))

函数

'''函数的创建和调用'''def calc(a,b):c=a+breturn cresult=calc(10,29)print(result)'''函数参数传递的内存分析'''def fun(arg1,arg2):print('arg1',arg1) #11print('arg2',arg2) #[22, 33, 44]arg1=100arg2.append(10)print('arg1',arg1) #100print('arg2',arg2) #[22, 33, 44, 10]n1=11n2=[22,33,44]fun(n1,n2)print(n1,n2) #11 [22, 33, 44, 10]'''在函数调用过程中,进行参数的传递如果是不可变对象,在函数体的修改不会影响实参的值 arg1的值修改为100,不会影响n1的值如果是可变对象,在函数体的修改会影响到实参的值 arg2的修改,append(10)会影响n2的值''''''函数的返回'''def fun(num):odd=[]even=[]for i in num:if i%2:odd.append(i)else:even.append(i)return odd,even'''函数的调用'''lst=[1,2,3,4,5,6,7,8]print(fun(lst)) #([1, 3, 5, 7], [2, 4, 6, 8])'''函数的返回值(1)如果函数没有返回值 return 可以不写(2)函数的返回值,如果是一个,直接返回类型(3)函数的返回值,如果是多个,返回的结果为元组'''print('-----')'''函数参数定义'''def fun(a,b=10): #b为默认值参数print(a,b)#函数的调用fun(100) #100 10fun(10,200) #10 200print('hello',end='\t')print('python')'''个数可变的位置参数'''def fun(*args): #函数定义时的 可变的位置参数print(args)fun(10)#(10,)fun(10,30)#(10, 30)def fun1(**args):print(args)fun1(a=10)#{'a': 10}fun1(a=20,c=30)#{'a': 20, 'c': 30}def num(a,b,c):print('a',a)print('b',b)print('c',c)num(1,2,3)lis=[11,22,33]num(*lis)#在调用时,将列表中的每一个元素都转化为位置实参传入dic={'a':100,'b':200,'c':300}num(**dic)#在调用时,将字典中的键值对都转化为关键字实参#变量的作用域def fun(a,b):c=a+b #c,就称为局部变量print(c)name='张三' #name,全局变量print(name)def fun():print(name)fun()

递归函数

def fac(n):if n==1:return 1else:return n*fac(n-1)print(fac(6)) #720'''斐波那契'''def fib(n):if n==1 or n==2 :return 1else:return fib(n-1)+fib(n-2)print(fib(6)) #8'''输出前6项'''for i in range(1,7):print('第',i,'项:',fib(i))'''第 1 项: 1第 2 项: 1第 3 项: 2第 4 项: 3第 5 项: 5第 6 项: 8'''

'''类的创建'''class Student:native_pace='吉林' #类属性def __init__(self,name,age):self.name=name #self.name 称为实体属性, 进行一个赋值的操作,将局部变量的name的值赋给实体属性self.age=age#实例方法def eat(self):print(self.name,'吃饭')#静态方法@staticmethoddef method():print('我是静态方法,用@staticmethod修饰')#类方法@classmethoddef cm(cls):print('我是类方法,用@classmethod修饰')#在类之外定义的称为函数,在类内称为方法def drink():print('喝水')'''创建Student类的对象'''stu_1=Student('张三',20)stu_2=Student('李四',30)stu_1.eat() #对象名.方法名print(stu_1.name)print('-----------')Student.eat(stu_1) #调用Student中的eat方法#类名.方法名(对象名)#动态绑定数据stu_1.gender='女'print(stu_1.name,stu_1.age,stu_1.gender)stu_1.eat()def show():print('定义在类之外的,称函数')stu_1.show=showstu_1.show()stu_2.show=show()

#封装class Student:def __init__(self, name, age,gender):self.name = name # self.name 称为实体属性, 进行一个赋值的操作,将局部变量的name的值赋给实体属性self.age = ageself.__gender=gender #性别不希望在类的外部被使用,所以加__def show(self):print(self.name,self.age,self.__gender)stu=Student('张三',20,'男')stu.show() #张三 20 男print(dir(stu)) #['_Student__gender', '__class__', '__delattr_print(stu._Student__gender) #男#继承class Person(object):def __init__(self,name,age):self.name=nameself.age=agedef info(self):print(self.name,self.age)class Student(Person):def __init__(self,name,age,stu_no):super().__init__(name,age)self.stu_no=stu_nodef info(self): #重写super().info()print(self.stu_no)class Teacher(Person):def __init__(self,name,age,teacher_no):super().__init__(name,age)self.teacher_no=teacher_nodef info(self):super().info()print(self.teacher_no)stu=Student('张三',20,'1026')teach=Teacher('李四',34,'001')print('----')stu.info()print('-----')teach.info()

class Student:def __init__(self,name,age):self.name=nameself.age=agedef __str__(self):return '我的名字是{0},今年{1}岁'.format(self.name,self.age)stu=Student('张三',20)print(dir(stu))print(stu) #我的名字是张三,今年20岁 默认调用__str__print(type(stu)) #<class '__main__.Student'>class Animal(object):def eat(self):print('动物会吃')class Dog(Animal):def eat(self):print('狗吃肉')class Cat(Animal):def eat(self):print('猫吃鱼')class Person:def eat(self):print('人吃五谷杂粮')#定义一个函数def fun(obj):obj.eat()#开始调用函数fun(Cat())fun(Dog())fun(Animal())print('---')fun(Person())

花了2万多买的Python教程全套 现在分享给大家……Python入门到精通(Python全栈开发教程)未完待续

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。