
Python-基础
基础的python学习中的心得以及问题总结。
练习长达坤年的扫地僧
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
os及os.path常用函数备忘
os模块操作目录的相关函数: getcwd():返回当前的工作目录 listdir(path):返回指定路径下的文件和目录信息 mkdir(path[,mode]):创建目录 makedirs(path1/path2...[,mode]):创建多级目录 rmdir(path):删除目录 removedirs(path1/path2...):删除多级目录 chdir(path):将path设置为当前工作目录 os.path模块操作目录原创 2021-02-01 23:36:48 · 143 阅读 · 0 评论 -
python常见的文件打开模式
常见的文件打开模式: r:只读模式,文件的指针放在文件开头 w:只写模式,文件不存在则创建,文件存在,则覆盖原有内容,文件指针在文件开头 a:追加模式打开文件,文件不存在则创建,文件指针在开头,文件存在则在文件尾追加内容,文件指针在源文件末尾 b:以二进制方式打开文件,不能单独使用,需要与其他模式一起使用,如:rb,wb +:以读写模式代开文件,不能单独使用,需要与其他模式一起使用,如:a+...原创 2021-01-12 20:45:36 · 6252 阅读 · 1 评论 -
python文件对象常用方法记录
文件对象常用方法: read([size]):从文件中读取size个字节或字符的内容返回。若省略[size],默认读取全文件内容 readline():读取文件中一行的内容。 readlines():把文件中的每一行都作为独立的字符对象,并将这些对象返回到列表中。 write(str):将字符串str写入文件。 writelines(s_list):将字符串列表s_list写入文件,不添加换行符。 seek(offset[,whence]):把文件指针移动到新原创 2020-12-30 19:15:11 · 409 阅读 · 0 评论 -
python中深拷贝及内在逻辑
浅拷贝类的拷贝:浅拷贝:python中的拷贝一般都是浅拷贝,拷贝时,被拷贝对象的子对象内容不进行拷贝,所以,被拷贝的对象和拷贝后的赋值的对象会引用同一个子对象。深拷贝:需要调用copy模块的deepcopy函数,递归拷贝对象中包含的子对象, 所以,被拷贝的对象和拷贝后的赋值的对象会引用不同的子对象。""" 类的拷贝: 浅拷贝:python中的拷贝一般都是浅拷贝,拷贝时,被拷贝对象的子对象内容不进行拷贝, 所以,被拷贝的对象和拷贝后的赋值的对象会引用原创 2020-12-11 20:11:29 · 186 阅读 · 0 评论 -
python的浅拷贝内在逻辑
类的拷贝:浅拷贝:python中的拷贝一般都是浅拷贝,拷贝时,被拷贝对象的子对象内容不进行拷贝,所以,被拷贝的对象和拷贝后的赋值的对象会引用同一个子对象。深拷贝:需要调用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,所以,被拷贝的对象和拷贝后的赋值的对象会引用不同的子对象。""" 类的拷贝: 浅拷贝:python中的拷贝一般都是浅拷贝,拷贝时,被拷贝对象的子对象内容不进行拷贝, 所以,被拷贝的对象和拷贝后的赋值的对象会引用同一个子对原创 2020-12-11 16:59:45 · 137 阅读 · 0 评论 -
python中__new__和__init__方法使用与内在逻辑
new在前去创建对象,init在后对对象的实例属性进行赋值,最后将创建的对象放在p1(本代码的实例化对象)中。""" __init__和__new__ __new__:创建对象。 __init__:对创建的对象进行初始化。"""#定义Person类class Person(object): def __new__(cls, *args, **kwargs): print("__new__()方法被调用,函数中cls的id为:{0}".原创 2020-12-10 20:31:18 · 171 阅读 · 0 评论 -
python中try-except-else-finally异常处理及常见异常
""" Python的异常处理机制 try-except-else-finally: 如果try中没有抛出异常,则执行else块, 如果try中抛出异常,则执行except块, 无论出错与否,finally块一定会执行。"""try: a = int(input("请输入一个整数:")) b = int(input("请输入一个整数:"))except BaseException as e原创 2020-11-24 20:05:05 · 747 阅读 · 0 评论 -
python的递归函数
递归函数:什么是递归函数:通俗来讲,在函数体内调用该函数本身,这个函数就是递归函数。递归函数的组成部分:递归的调用以及递归的终止条件(终止条件很重要,不然就是无限循环,你的内存会炸)递归的调用过程:(此处理解需要具备数据结构的知识,栈是先进后出的序列,第一次调用在栈底,每一次调用以此添加入栈中)每递归调用一次,都会在栈内存中分配一个栈帧每次执行完一次函数,都会释放相应的空间递归的优缺点:优点:思路清晰,代码简单(譬如算个阶乘啥的)缺点:占用内存大,效率低下"原创 2020-11-16 16:30:57 · 484 阅读 · 0 评论 -
python中函数的参数总结
位置参数:函数中的位置参数是将参数转换为列表对象,关键字参数:函数中的关键字参数是将参数转换为字典对象,函数定义时的参数:默认值形参:关键字形参:使用*定义,个数可变的位置形参:使用*定义个数可变的关键字形参:使用**定义函数调用时的参数:位置实参:将序列中的每个元素都转换为位置参数:使用*关键字实参:将字典中的每个键值对都转换为关键字实参:使用**"""位置参数:函数中的位置参数是将参数转换为列表对象,关键字参数:函数中的关键字参数是将参数转换为字典对象,函数定原创 2020-11-14 16:40:06 · 264 阅读 · 0 评论 -
python字符串编码解码
""" 为什么需要编码转换:因为计算机之间的通信使用的是byte字节 A计算机作为发送者,B计算机作为接受者:A(str在内存中yiUnicode表示)将字符串编码成byte字节传输给B,B接收之后将byte字节解码成Unicode显示"""s = "如果当时2020——vae许嵩"# 解码s_encode_GBK = s.encode("GBK")s_encode_utf8 = s.encode("utf-8")print(s_encode_GBK)print原创 2020-11-12 20:12:51 · 193 阅读 · 0 评论 -
python字符串格式化
# 格式化字符串的第一种方式 %# 类似于C语言 %s代表字符串,%i或者%d代表整数,%f代表浮点数name = "张三"identity = "法外狂徒"print("我叫%s,我是%s" % (name, identity))# 格式化字符串的第二种方式 {}# 注意,此处要求都是string类型print("我叫{0},我是{1}".format(name, identity))# 格式化字符串的第三种方式 f""print(f"我叫{name},我是{identity}")原创 2020-11-11 21:08:34 · 118 阅读 · 0 评论 -
python字符串的比较
关于其中字符串类型id引用驻留机制见python中的字符串的驻留机制字符串的比较操作: 运算符:>,>=,<,<=,==,!= 比较规则:首先比较两个字符串中的第- -个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符将不再被比较 比较原理:两字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal v原创 2020-11-10 19:01:17 · 22683 阅读 · 0 评论 -
python字符串的替换与合并
字符串的替换:replace(), 第一个参数指定被替换的子串, 第二个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化, 第三个采纳数可以指定最大替换次数(如果不设置替换次数,默认全部替换)。字符串的合并:join(), 将列表或者元组中的字符串合并成一个字符串。""" 字符串的替换:replace(), 第一个参数指定被替换的子串, 第二个参数指定替换子串的字符串,该方法返回替换后得到的字符串,原创 2020-11-10 16:53:53 · 443 阅读 · 0 评论 -
python字符串的字符判断操作(6个)
字符串的判断操作:isidentifier():判断指定的字符串是不是合法的标识符isspace():判断指定的字符串是否全部由空白字符组成(回车、换行、水平制表符)isalpha():判断指定的字符串是否全部由字母组成isdecimal():判断指定的字符串是否全部由十进制数字组成isnumeric():判断指定的字符串是否全部由数字组成isalnum():判断指定的字符串是否全部由字母和数字组成...原创 2020-11-10 15:47:54 · 1140 阅读 · 0 评论 -
python字符串的劈分split与rsplit
字符串劈分操作: split(): 从字符串左边开始劈分,默认的劈分字符是空格字符串,返回的值是一个列表 使用参数sep指定劈分字符串的劈分符 使用参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独成为一部分 rsplit(): 从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值是一个列表 使用参数sep指定劈分字符串的劈分符 使用参数maxspl原创 2020-11-10 15:30:27 · 992 阅读 · 0 评论 -
python字符串内容对齐与填充
字符串内容对齐操作的常见方法:center():居中对齐,如果设置的宽度小于字符串实际宽度,则返回原字符串第一个参数指定宽度,第二个参数指定填充符,此参数为可选项,默认为空格。ljust():左对齐,如果设置的宽度小于字符串实际宽度,则返回原字符串第一个参数指定宽度,第二个参数指定填充符,此参数为可选项,默认为空格。rjust():右对齐,如果设置的宽度小于字符串实际宽度,则返回原字符串第一个参数指定宽度,第二个参数指定填充符,此参数为可选项,默认为空格。zfill():右对齐,左边用原创 2020-11-10 14:59:41 · 1768 阅读 · 0 评论 -
python字符串的大小写转换
字符串的大小写转换操作:upper():把字符串中所有字符都转换成大写字母,转换的结果是新的字符串对象(即id不同)lower():把字符串中所有字符都转换成小写字母,转换的结果是新的字符串对象(即id不同)swapcase():把字符串中所有小写字母都转换成大写字母,把字符串中所有大写字母都转换成小写字母,转换的结果是新的字符串对象(即id不同)capitalize():把第一个字符转换为大写,把其余字符转换为小写,转换的结果是新的字符串对象(即id不同)title():把每个单词的第一个字符原创 2020-11-09 20:23:46 · 5520 阅读 · 0 评论 -
python 字符串的查询操作
字符串查询操作的常用方法:index():查找子串substr第一次出现的位置,如果查找的子串不存在,则抛出valueerrorrindex():查找子串substr最后一次出现的位置,如果查找的子串不存在,则抛出valueerrorfind():查找子串substr第一次出现的位置,如果查找的子串不存在,则返回-1rfind():查找子串substr最后一次出现的位置,如果查找的子串不存在,则返回-1代码抛出异常的操作就不做测试了""" 字符串查询操作的常用方法:原创 2020-11-09 19:14:40 · 651 阅读 · 2 评论 -
python中的字符串的驻留机制
字符串: 字符串是python中的基本数据类型,术语不可变的字符序列驻留机制: 1.仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同的字符串时,不会开辟新的空间,而是把该字符串的地址赋给新创建的变量 2.驻留机制的几种情况(交互模式,cmd进去) 字符串的长度为0或者1时;符合标识符的字符串;字符串只在编译时进行驻留,而非运行时;[-5,,256之间的整数数字] (即:s1="a%原创 2020-11-09 18:49:23 · 885 阅读 · 0 评论 -
python集合生成式
""" 集合生成式 与列表生成式位移的区别只在于将[]换成{}。"""# 列表生成lst = [i ** i for i in range(1, 10)]print(lst)# 集合生成式s = {i ** i for i in range(1, 10)}print(s) # 顺序并非升序,是因为,集合中存储的是id值,经过hash运算之后才寻址...原创 2020-11-07 21:18:05 · 579 阅读 · 0 评论 -
python集合的交集并集差集对称差集操作
补一下数学基础集合间的数学操作 交集: 调用函数intersection()或者 & ,原集合不发生变化 并集: 调用函数union() 或者 | ,原集合不发生变化 差集: 调用函数difference()或者 - ,原集合不发生变化 对称差集: 调用函数symmetric_difference() 或者 ^ ,原集合不发生变化代码""" 集合间的数学操作 交集: 调用函数intersection()或者 & ,原集合不发生原创 2020-11-07 21:07:24 · 3124 阅读 · 1 评论 -
python集合间的关系判断
集合之间的关系: 1.两个集合是否相等: 可以使用运算符 == 或者 != 进行判断 2.一个集合是否是另一个集合的子集: 可以使用issubset()来判断 3.一个集合是否是另一个集合的超集: 可以调用方法issuperset()进行判断 4.两个集合是否有交集: 可以调用方法isdisjoint进行判断代码""" 集合之间的关系: 1.两个集合是否相等:原创 2020-11-07 20:48:44 · 4933 阅读 · 0 评论 -
python集合的性质以及增删操作
什么是集合集合是python内置的一种数据结构与列表,字典一样属于可变序列,即:该结构内存储的数据允许增删改操作集合与字典的关系:集合是没有value的字典,即:字典内存储的是key-value的键值对,而集合中存储的是key集合中的元素不允许重复,会覆盖创建集合:# 创建集合# 第一种方式:直接使用{}set1 = {1, 2, 3, 4, 5, 6, 7, 7} # 两个7,输出只有一个,会覆盖print("直接使用{}创建的集合:", set1)# 第二种方式:使用内置函原创 2020-11-07 18:31:23 · 515 阅读 · 0 评论 -
python元组的性质以及创建与遍历
python元组的性质以及创建与遍历元组是什么为什么要将元组设置成不可变序列注意事项元组是什么元组是python内置的数据结构之一,是一个不可变序列可变序列:列表,字典 可以对序列进行增删改的操作,且对象地址(即对象的id)不会发生变化不可变序列:字符串,元组 没有增删改的操作定义:t = ( "aaa", "bbb", 123 )t = tuple(("aaa", "bbb", 123))为什么要将元组设置成不可变序列在多任务环境下,同时操作对象时不需要加锁,因此在程序中尽量使用原创 2020-11-05 21:03:14 · 701 阅读 · 0 评论 -
python字典生成式以及列表生成式
字典生成式借杨淑娟老师的图一用。。。代码:names = ["张三", "李四", "王五"]sexs = ["法外狂徒", "男", "女"]dictionary = {name: sex for name, sex in zip(names, sexs)}print(dictionary)截图:列表生成式代码:lst = [i ** i for i in range(1, 10)]print(lst)截图:...原创 2020-11-04 21:01:49 · 302 阅读 · 0 评论 -
python字典获取视图
'''获取字典的视图 keys():获取字典中所有的key values():获取字典中所有的value items():获取字典中所有的key-value对'''dictionary = {"a": 1, "b": 2, "c": 3, "d": 4}print(dictionary)print("keys():", dictionary.keys())print("list(keys()):", list(dictionary.keys()))print("value原创 2020-11-04 20:37:00 · 1753 阅读 · 0 评论 -
python——字典(创建,取值以及增删改)
python——字典(创建,取值以及增删改)1、什么是字典2、创建字典3、字典取值4、字典元素的操作4.1 key的判断4.2 字典元素增加4.3 字典元素的删除4.4 字典元素的修改1、什么是字典字典是python内置的数据结构之一,与列表一样,是一个可变序列(可变序列即可以进行增删改操作的数列,str类型就是不可变序列)使用{}来定义,以键值对的形式来存储,是一个无序的序列字典中的键必须为不可变序列:结合第二点中提及的字典为无序序列,意思就是字典中的数据排序不以添加的先后顺序为约束,而是在存储原创 2020-11-01 21:42:03 · 4715 阅读 · 0 评论 -
python列表排序
常见的有两种sort():默认为升序排序,当指定reverse = true时,执行降序排列,并且排序是在原列表的基础上执行的,即:排序前与排序后列表的id值不变sorted():内置函数sorted(),默认为升序排序,有同样的,指定参数reverse = true时,为降序排列,结果会返回给一个新的列表对象,原列表不会发生变化。数据结构中的其他排序方法未做代码实现代码:''' 常见的有两种 sort():默认为升序排序,当指定reverse = true时,执行降序原创 2020-11-01 16:02:34 · 1004 阅读 · 0 评论 -
python中列表的删除操作,五种方式
列表的添加操作列表删除操作1、列表删除操作1.1 remove()1.2 pop()1.3 切片1.4 clear与del1、列表删除操作五种方式分别为:remove():一次删除一个元素;如果列表内有重复元素则删除第一个;元素不存在时抛出异常ValueErrorpop():删除一个指定的索引位置上的元素;指定索引不存在则抛出异常IndexError切片:一次至少删除一个元素clear():清空列表del:删除列表1.1 remove()一次删除一个元素;如果列表内有重复元素则删原创 2020-10-28 21:16:06 · 39538 阅读 · 1 评论 -
python列表的添加的四种方式
python列表的增删改1、list增加元素1.1 append()1.2 extend()1.3 insert()1.4 切片1、list增加元素python中列表增加元素有四种方式:append():在列表末尾添加一个元素extend():在列表末尾添加至少一个元素insert():在列表任意位置添加一个元素切片:在列表任意位置添加至少一个元素1.1 append()在列表末尾添加一个元素,该元素可以是str类型,int类型,或者列表对象代码如下lst = ["KO", "no"原创 2020-10-28 19:55:12 · 81648 阅读 · 3 评论 -
python中list列表的切片截取操作,包含倒序输出
列表定义list为list = [*,*,*,*,*,*],切片为list[start:stop:step],其中,start:开始位(索引值) stop:结束位(索引值) step:步长,start与stop为左闭右开,即[start,stop),并且,切片出来的列表与原来的列表是两个新的列表对象,其id值是不一样的。直接上代码:注意:python中的列表索引和Java是一样的从0开始计数,便于学习,代码的列表中的值和索引值同步了。倒序需要注意一下。lst = [0, 1, 2,原创 2020-10-28 15:24:57 · 3681 阅读 · 0 评论 -
python中变量以及列表在数据结构以及物理结构上的区别
首先使用python将两种类型数据的 id,type,和value 输出,查看不同。代码如下:a = 100print("a——id:",id(a))print("a——type:",type(a))print("a——value:",a)print("\n")list = ["呆" , "萌" , 1]print("list——id:",id(list))print("list——type:",type(list))print("list——value:",list)代码执行截原创 2020-10-27 18:11:05 · 729 阅读 · 0 评论 -
python的九九乘法表
range函数用法见python中的整数序列range函数代码for i in range(1, 10): for j in range(1, i + 1): print(i, "*", j, "=", i * j, end="\t") print("\n")结果原创 2020-10-26 20:50:35 · 346 阅读 · 0 评论 -
python中的整数序列range函数
range(from,to,step)函数的三种创建方式。range对象无论其表示的序列有多长,它们占用的内存空间都是一样的,只需要储存三个参数即可,只有在使用到该序列时,才会去计算序列中的相关元素。返回的是range的迭代器对象。# range(from,to,step)函数的三种创建方式。# range对象无论其表示的序列有多长,它们占用的内存空间都是一样的,只需要储存三个参数即可,只有在使用到该序列时,才会去计算序列中的相关元素。# 返回的是range的迭代器对象。r1 = range.原创 2020-10-25 18:37:28 · 2456 阅读 · 0 评论 -
python分支结构代码的简化
简化if/else的代码举个例子,以比较大小为例:num_1 = int(input('请输入第一个整数:'))num_2 = int(input('请输入第二个整数:'))#正常的分支结构print("------正常的分支结构------")if num_1 >= num_2: print(str(num_1) + ">=" + str(num_2))else: print(str(num_1) + "<" + str(num_2))#简化结构pr原创 2020-10-25 18:09:10 · 847 阅读 · 0 评论 -
python运算符优先级排序
1、算术运算先算乘除,后算加减,有幂运算先做幂运算***,/,//,%+,-2、位运算先算位移,后算与或<<,>>&|3、比较运算即大小比较<,>,>=,<=,==,!=4、布尔运算and 或者 or5、赋值运算“=”借用 杨淑娟老师 的图片:...原创 2020-10-24 20:22:46 · 2991 阅读 · 0 评论