- 博客(17)
- 收藏
- 关注
原创 打印自定义行数的杨辉三角形
打印出杨辉三角形,要求可以自定义行数杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 ...
2021-08-04 17:51:19 557
原创 自定义实现str.count函数
# 1. 判断第一个参数和第二个参数是否是字符串类型,不是则返回错误信息# 2. 判断start是None或者int类型,不是则返回错误信息# 3. 判断end是None或者int类型,不是则返回错误信息# 4. 如果start==None,重新赋值为0,说明从字符串起始位置开始计算# 5. 如果end==None,重新赋值为len(s),说明到字符串最后位置结束# 6. 如果子串是空串,则返回len(s)+1,在字符串s的每个字符间找空串# 7. 如果end<0,重新赋值为len(s)-
2021-07-08 16:45:46 513
原创 Python实现find方法
自定义实现str中的find方法:1. 如果子串在字符串中第一次出现的位置2. 如果没有找到,返回-1def find(s, targer_str): # 如果要查找的字符串为空,返回-1 if s == '': return -1 length = len(targer_str) for i in range(len(s)): # 从当前位置开始的length个字符,是否等于目标字符串,如果是,则返回当前位置 .
2021-05-04 15:27:33 613
原创 Python自定义实现字符串的split方法
自定义实现str的spilt方法:如果切割符为默认值:字符串首尾的空白字符去掉,不参与分割,即不像指定分隔符会切割出''空字符串 指定切割符不能是空字符串 最大切割次数,默认为-1 切割次数为负数时,整个字符串切割 正数时,切割给定的次数# 自定义实现split方法:# 算法:# 1. 遍历这个字符串,start=0,# 判断当前字符以及后续的几个字符是否时sep# 如果不是,就继续遍历,如果是,就把这个位置记录下来作为end的坐标# 2. 基于start和en..
2021-05-04 15:15:32 594
原创 Python自定义实现replace方法
自定义实现replace方法:1. 将字符串中所有old替换成new,其余内容保持不变2. 替换次数默认为-1,表示全部替换3. 替换次数为负数时,全部替换;为正数时,表示替换次数;为0时,不替换解法1: 借用split方法,实现字符替换的效果# 自定义实现replace方法解法1:# 算法:# 1. 用split方法,使用要替换的字符作为参数,将字符串分割为一个list# 2. 使用替换后的单词进行join,把list里面的单词连接起来,拼成一个句子,完成替换def.
2021-05-03 22:32:23 869
原创 Python自定义实现title方法
自定义实现str中的title方法:1. 将字符串中每个单词的首字母转换成大写字母(如是小写则转换,大写则不转换)2. 空格,下划线数字等其他字符后面的字母,也判断为是一个单词,需要进行大小写转换3. 除了单词首字母,其余位置如是大写字母,需要转换为小写字母# 自定义实现title方法# 算法:# 1. 判断是不是第一个位置,再判断第一个位置是不是字母,判断是否是小写,如果是小写,就转换为大写字母# 2. 对于非第一个位置的其他小写字母,如果前一个字符不是任何字母,那么转换为大写字.
2021-05-03 22:18:35 860
原创 Python中的any()和all()
any():接收一个迭代器为参数,如果迭代器中某个条目为真,则返回值就为True,当迭代器为空时,返回值为False。all():接收一个迭代器为参数,如果迭代器中所有条目为真,则返回值才为True,当迭代器为空时,返回值为True。以下是python中对两个函数的声明定义:# python中对any函数的声明定义any(iterable, /) Return True if bool(x) is True for any x in the iterable. If th...
2021-04-29 05:30:50 200
原创 使用Python实现比较字典大小
'''算法:1. 先判断传入的参数是否是字典,如果不是,则停止比较---》not isinstance(dict1, dict) or not isinstance(dict2, dict)2. 如果都是字典,先比较字典长度是否一致;如果不一致,则停止比较,结果:长的字典大于短的字典3. 如字典长度一致,则继续比较key,key的比较顺序和keys()方法返回键的顺序相同(相同的键会映射到哈希表的同一个位置,这就保证了对字典键的检查的一致性)4. 通过hash(dict1_keys_list[i.
2021-04-28 07:17:24 7823 1
原创 使用默认参数,实现每次调用结果累计
调用函数时没有传参,而是使用默认参数,且默认参数为列表时,结果会进行累计。因为一个函数的每个默认参数地址都只有一个,每次调用函数时,如果没有显式传参,使用的都是默认地址,那操作的都是同一个地址,所以所有的增加都被记住,实现了累计的效果。如果显示传参,每次调用函数,参数的地址会被重新指向传入参数的地址。def add_end(arr=[]): arr.append('END') return arrprint(add_end([1, 2, 3]))print(add_en.
2021-04-26 05:58:10 256
原创 可变对象/不可变对象传递
引用赋值,只是将一个变量的引用赋给另外一个变量,两个变量指向同一块内存,所以修改一个,另外一个也会受影响。对于可变对象的函数传参,未做处理的情况下,实际是将引用传入函数。即将实参的引用赋值给了形参。def add_element(arr): arr.append(100) print("函数处理过的参数:", arr)a = [1, 2, 3]print("传参前的a:", a)add_element(a)print("传参后的a:", a)运行结果:p..
2021-04-25 17:40:59 159
原创 快速排序
'''1. 取一个基点,将列表分为大于和小于基点值的两部分(除基点外的元素进行划分)2. 对大于小于的部分,分别再取基点,找到小于大于基点的值3. 如此反复,直到列表的长度小于等于1(长度为0或者1的数字,是有序的列表)'''def quick_sort(arr): if len(arr) <= 1: # 列表中只有一个元素说明列表已经有序,返回 return arr pivot = arr[0] # 取列表第一个...
2021-04-23 18:30:10 87
原创 归并排序
今天试着写了一下归并排序的实现,在实现过程中,因为写错一些地方,导致一直报“IndexError: list index out of range”的问题在实现merge函数的时候,考虑到了下标越界的问题,但是由于将and用错成了or,这就导致,两个数组只有有一个的index没有超过数组的长度就能继续执行。但是运行到if arr1[index1] <= arr2[index2]语句的时候,由于有一个索引已经超长,会报错。一直没有看出问题在哪里,觉得这一块不会有错,后面用print打印信息.
2021-04-23 18:21:51 85
原创 python collections
判断一个对象是否可迭代在py3.8中使用from collections import Iterable引入,提示在3.9中将会被废弃。改成from collections.abcimport Iterable引入Iterable模块>>> from collections import Iterable<stdin>:1: DeprecationWarning: Using or importing the ABCs from 'collections' in.
2021-04-23 18:14:00 82
原创 Python string模块
Python string模块使用string模块预定义的字符串所有字母和数字。在使用前需要先import。>>> import string>>> dir(string)['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__nam
2021-04-12 20:51:46 1575 1
原创 Django urls.py中的path和re_path
在Django 1.1.x版本中,使用url方法配置路由。在url() 方法中,普通路径和正则路径均可使用,需要自己手动添加正则首位限制符号。urlpatterns = [url(正则表达式, view函数, 参数, 别名)]正则表达式:一个正则表达式字符串view函数:一个可选用对象,通常为一个是为一个视图函数或者在include函数中的urls.py的元祖或者列表参数:可选的要传递给视图函数的默认参数(关键字参数:字典形式)别名:一个可选的name参数,即为命名空间from djang
2021-04-08 11:40:33 868
原创 django-admin.py & manage.py
django-admin.py是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django proje里面都会包含一个manage.pydjango-admin.py help + subcommand可以查看subcommand的具体的使用语法语法:django-admin.py [options]manage.py [options]subcommand是子命令;options是可选的常用子命令:startproject
2021-04-08 09:50:45 119
原创 安装pipenv遇到的一个坑
安装pipenv遇到的一个坑根据网上各种文章,安装pipenv之后,直接使用pipenv install或者pipenv --three可以创建一个虚拟环境。但是在操作过程中遇到了如下的错误:echo@programs % pipenv --threeCreating a virtualenv for this project…Pipfile: /Users/programs/PipfileUsing /Library/Frameworks/Python.framework/Versions/3.
2021-04-07 14:58:10 1376 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人