使用快捷键:1.Ctrl+D:快速复制当前行2.Ctrl+/:注解3.Shift+Enter:快速返回下一行,无论光标在一行中的哪个位置配置:1.Python解释设备配置:File-->setting-->Project-->PythonInterpreter2.修改py文件名:鼠标放在py文件名上右击,Refactor-->Rename3.安装thelibrary:pip3installlibrarynamestructure:1.classperson://首先类一个类(比如humanperson)2.def__init__(self,name,sex)://用def做一些定义(定义一些人的特征等,可以分为多个Definition)self.name=name//code1self.sex=sex//code2defsay(self,word)//还是定义print(f'{self.name}say:"{word}"')//代码3,张三=person('张三','男')//调用person类,传入定义的值作为根,(value中只有name和sex,所以只传入了2个'张三','male')4、zhangsan.say('Hello')//调用类中的函数,函数say中有值word,所以调用say也必须有值,否则会报错,只是recordpoints:0,...与pass定义相同,效果相同。1.在注释格式后面加单行:2个空格+#+1个空格+注释内容函数与函数之间的格式:两行必须为空2.del:不是删除,而是解除绑定关系3.格式code(如果代码格式不规范,可以用这个快速让代码格式规范化,按照PEP8规范):Code->Reformat代码变量名规则:1、只能是字母、数字的任意组合,和下划线2,不能用关键字命名3,不能以数字开头。5.Python其实可以使用中文变量名作为变量名。(3个重要特征):id:反映变量值的内存地址。不同的内存地址有不同的id和不同的类型:不同类型的值用来表示记录的不同状态。8.字符串(字母):需要用“”括起来9.XX+():表示运行一个函数。检查id号:print(id(变量名))检查类型:print(type(变量名))isand==is:比较左右值的ids是否相等==:比较是否左右值相等,理解:smallintegerpool1.这个值是python的取值范围:[-5,256]2.从python解释器启动的那一刻起,就会在内存中申请一系列的内存空间存储常用的整数。3.在pycharm中,扩大取值范围。如果这个值超出了python的范围,即使为真,也应该被认为是假的。常量:常量1.python语法中没有常量的概念,但是在程序开发的过程中会涉及到常量的概念2.所有小写字母都大写来表示常量,这是一种约定俗成,标准的数字类型(整数类型int,浮点类型float)可以在int和float之间加字符串:功能:记录状态、名称、描述性质的段落定义:用引号("",'',"")括起来的字符串"""",'''''')可以直接相加,但仅限于str和str的相加,表示拼接操作。低效不推荐。字符串可以相乘,相当于重复。(容器类型)listList,dictionaryDict:1、相同点:可以存储多个值,称为容器类型2、区别:ListList使用索引来对应值,索引体现dictdict对应的位置/顺序到KeyValue,其中key一般是string类型,str类型右边有描述函数,所以key对value可以有描述函数3.字典中的value值可以是任意类型,而且key必须是不可变类型,所以key不能是list或者dictionarybool类型1。用来记录true和false两种状态。2.通常用作判断条件。我们将在if判断中使用它。输入输出:input格式化输出:1.根据位置取值与%s一一对应,少一不生效res="我的名字是%s,年龄是%s%(howell,18)",括号内也可以用list或者dictionary填入,dictionary2,%s是String类型,可以接受任意类型。%d只能接受整数。3、如果要使用%s输出另一个%,需要:%s%%,字符串格式化输出:str.format。推荐使用这个1.按照key=value传值,res="我的名字是{name},年龄是{age}".format(age=18,name='howell')2.fege:x=input("我的名字是:")y=input("我的年龄是:")res=f'我的年龄是{y},我的名字是{x}'print(res)18,算术运算符1,+是加2,/结果带小数3,//只保留整数部分4,%取模,取余5,**19次方,比较运算1,>==>=<<=!=20、赋值运算符1、变量赋值:=2、递增赋值:a+=1(等于a=a+1)/%*可以使用21、链式赋值1、z=y=x=1022、交叉赋值1.m,n=n,m23.解压赋值1,*_2,_*24,variableandimmutabletype1,changeable:value改变,id不变。证明原值改变了,原来的值是可以改变的。2.不可变的:value改变,id改变。证明在不改变原值的情况下产生新值,证明原值不可修改。3、整数、浮点数、str、bool是不可变类型,listdic是可变类型。25.什么是条件?什么可以被视为条件?为什么要使用条件?1.显式布尔值:TrueFalse2。隐式布尔值:所有数据类型,其中0、None、empty(空字符串、空列表、空字典)表示False26的布尔值。逻辑运算符优先级:not>and>orn??ot:not和紧跟其后的条件是不可分割的整体and:逻辑与,and用于连接左右条件,两个条件同时为真,最后的结果istrueor:逻辑或,or用于连接左右条件,如果两个条件之一为真,则最终结果为真;如果两个条件都为False,则结果为False27,成员运算符in,notin1,判断字符串是否存在2.判断元素是否存在于列表中3.判断key是否存在于字典中28.恒等运算符是1。判断ID是否相等28.流控if判断1.if条件:statement1statement2......print()2,语法2ifcondition:code1code2...else:code1code2print()2、语法3ifcondition:code1code2...elif:code1code2print()else:code1print()29、流程控制1、loopwhile循环1、循环的语法和基本使用2、dead循环与效率问题3、循环的应用4、退出循环的两种方式Ways1.条件:2.while+break5,while循环嵌套6,while+continue7,while+else2,forloopofloopforvariablenameiniterableobject:list,dictionary,string,tuple,set1,for循环2的预发布和基本使用,for循环应用3,for循环嵌套4,for+break5,for+continue6,for+elseforandwhile1的总结,相似之处:both循环,fou循环都可以做2.区别:while循环称为条件循环,循环次数取决于条件何时变为假。for循环称为“值循环”,循环次数取决于in后面包含的值的个数3。L=['a','b','c']for..在L循环中,不要通过增删改查修改L的值,否则不知道会出现什么错误30.short电路操作31,深度复制1,如何复制列表1,浅复制是复制全部内容,不区分内容,对不可变类型没有影响,但是对可变类型有影响(如果复制的内容被修改,原来的内容也会被修改)2.深拷贝是为了区分内容,区分可变类型和不可变类型3.对于字符串切片或者复制,地址ID是不会变的,因为字符串不会变,但是列表的地址ID是不同的,因为里面的值是可以变的。32.基本数据类型及其内置方法1.numbersintfloat1,function:2,定义:名字加括号()是触发一个函数,()可以传参,ege:age=10相当于age=int(10)除了创建原始类型,还可以转换3、类型转换4、使用2、字符串3、列表4、元组(tuple)不可变5、字典6、集合(理解)33、文件处理1、字符编码编码解码保证不乱码:what二、文件处理1、文件处理的基本流程2、With3.Operationmode控制读写文件的方式:r(read-only),w(write-only),a(write-only,Appendwrite,writetotheback)控制读写文件内容的方式:t(文本方式读写文本),b(二进制方式),需与上述方法配合使用4.操作文件的方法5.控制文件指针6.文件修改的两种方式34.for+rangeforloop控制循环次数:range()35,for+continue36,forloop嵌套foriinrange(3):print(loop,i)forjinrange(4):print(recirculation,j)forloophas在循环值方面比while循环有很大优势,并且比while循环更简单37.只有break是终止for循环的唯一解决方案38.PrintSupplement:39,Hexadecimal:binary:only2numbers,0and1octal:only8numbers,0-7hexadecimal:only16numbers,0-9,a,b,c,d,e,f10十六进制--二进制:除以2取余,倒着写就是二进制,用bin()函数进行转换,ege:print(bin(11))结果为:0b1011,其中0b代表二进制十进制-八进制:ege:print(oct(11))结果为:0o13,其中0o表示八进制十进制-十六进制:ege:print(hex(11))结果为:0xb,这里的0x表示十六进制二进制-十进制:ege:print(int('0b1011',2))八进制-十进制:ege:print(int('0b1011',8))十六进制--十进制:ege:print(int('0b1011',16))40.使用int和float时没有需要掌握的内置方法。它们的用途是数学运算+比较运算。python中没有+L表示long类型41.字符串类型:str可以将任意类型转换成字符串1.内置方法:1.通过索引获取值(正向获取+反向获取):onlyage:msg="helloworld"可以正向获取:print(msg[0])或print(msg(5))反向获取:print(msg[-1])只能取:msg[0]="H",即,msg中的值不能修改2.切片相当于Java的三元运算符索引的扩展应用,从一个大字符串开始复制中间的一个子字符串,新复制的字符串存放到一个新的空间,里面什么都没有todowiththeoriginalstringmsg='helloworld'res=msg[0:5]//结果就是hello步Length:res=msg[0:5:2]//result:hloreversestep:res=msg[5:0:-1]//result:ollereverse:res=msg[::-1]//结果是:dlrowolleh3,lengthlenmsg='helloworld'print(len(msg))4,成员操作in和notin判断一个子串是否存在于一个大字符串中print('howell'in'howellisNo.1')removeblanksstrip删除字符串左侧和右侧的符号strip删除字符串左侧的符号lstrip删除字符串右侧的符号rstripmsg='howell'res=msg.strip()。出来,如果括号里有self,则认为没有是去掉什么,可以写多个值,只去掉两边,中间不去掉如果登录账号,加上.登录错误splitsplit#将一个字符串按照一定的分隔符进行拆分,得到一个新的列表。切片是一个普通的字符串切片,相当于复制行为,相当于shallowcopy1。默认的分隔符是空格,2。如果分隔符是其他的,只需在()中填写分隔符即可。3、如果字符串中有多个分隔符,只需要将前两个分隔开,然后在()中再添加一个参数,如:split(':',2)age:info='howell18male'res=info.split()join:将list连接成字符串,splitage:l=['howell','18','male']res=":".join(l)#根据一个分隔符,将元素全为字符串的list拼接成一个大字符串7,循环42,将所有字符串改为大写lower,全部小写,upperage:msg='AbbbCCd'print(msg.lower())#abbbccdprint(msg.upper())#ABBBCCD43,startwithwhat,endwithwhat,startswith,endswithage:使用同上44,replacemsg="youcanyouup,nocannobb"print(msg.replace("待修改字符","待修改字符","修改多少次"))45、isdigit#判断字符串是否由数字组成用法同4246,字符串理解操作【】【】【】【117没看过】【】】【】https://www.bilibili.com/video...47.可以同时存储多个值的类型叫做容器类型orderedtype称之为序列类型48.基本数据类型:1.列表功能:按posi存储多个值tion定义:方括号内,逗号分隔,多种类型值看类型,使用type函数类型转换:凡是for循环可以遍历的类型,都可以作为参数传递给list()转换成list2、tuple(不可变列表)3、dict4,加入valuestothelist:支持变量类型添加修改XX.append(value)5.插入value:XX.insert(index,'value')6.extend:XX.extend(可以for循环的value)49.删除1.方法一:delpublicdeletion方法不唯一,只是单独删除,没有返回值(验证方法:a=delx[1],直接报错,并且不支持赋值语法)2、方法二:x.pop(indexvalue):如果不指定索引,默认删除最后一个。删除后会有一个返回值,返回删除的h值。1,2,3,'a','b','c']1,L.count('a')//检查L中有多少个a2,L.index('a')//检查index,如果有多个相同的值,返回第一个值的索引3,L.clear(不需要传参)//清除4,L.reverse(不需要传参)//反转列表5,L.sort()//默认从小到大排序L.sort(reverse=True)//从大到小排序是比较,列表中的元素必须是同一类型。整数和浮点类型可以一起比较大小。字符串也可以进行大小比较,根据ASCI表进行比较。比较长的字符串的大小,可以根据位置逐个比较列表。强制与字符串相同,但对应位置的元素必须是同一类型。51.队列:先进先出(FIFO=firstinfirstout)先吃的东西拉出栈:后进先出(LIFO=lastinfirstout),后吃的东西先吐出51.元组:是一个“不可变列表”功能:根据索引/位置存储多个值,仅供读取,不可重定义:任意类型的多个元素用逗号隔开()*如果元组中只有一个元素,必须加逗号(,)分隔年龄:t=(10,)只需要读取,不需要修改,使用tuple类型转换,可以和list一样,可以是任意类型for循环遍历可以作为参数传给tuple(),转成元组print(tuple('hello'))print(tuple([1,2,3]))print(tuple({'a1':111,'a'}))52.字典类型:定义:{}中的倍数用逗号隔开一个key:value,其中value可以是任意值,但key必须是不可变类型,不能重复d=dict()这定义了一个字典ryd=dict(x=1,y=2,z=3)//{'x':1,'y':2,'z':3},这也创建了一个字典print(d,type(d))//{}
