太白

递归函数

别来无恙 提交于 2020-03-21 04:31:37
一、初始递归 递归函数:在一个函数里在调用这个函数本身。 递归的最大深度:998 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去。但是我们之前已经说过关于函数调用的问题,每一次函数调用都会产生一个属于它自己的名称空间,如果一直调用下去,就会造成名称空间占用太多内存的问题,于是python为了杜绝此类现象,强制的将递归层数控制在了 997 (只要997!你买不了吃亏,买不了上当...). 拿什么来证明这个“998理论”呢?这里我们可以做一个实验: def foo(n): print(n) n += 1 foo(n) foo(1) 由此我们可以看出,未报错之前能看到的最大数字就是998.当然了,997是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它: import sys print(sys.setrecursionlimit(100000)) 我们可以通过这种方式来修改递归的最大深度,刚刚我们将python允许的递归深度设置为了10w,至于实际可以达到的深度就取决于计算机的性能了。不过我们还是不推荐修改这个默认的递归深度,因为如果用997层递归都没有解决的问题要么是不适合使用递归来解决要么是你代码写的太烂了~~~ 看到这里,你可能会觉得递归也并不是多么好的东西,不如while True好用呢!然而,江湖上流传这这样一句话叫做

第五天

风流意气都作罢 提交于 2020-02-22 11:59:54
字典 数据类型: 可变(不可哈希) list dict set 不可变(可哈希) str int bool tuple 例如 对字符串操作之后 形成的是新的字符串 原字符串不改变 字典:{}括起来 键:对值 键 : 不可变类型 int str (bool tuple 几乎不用) 房间号 唯一 值:可以是任意类型 房间 放什么都行 字典3.5无序 3.6x 初次建立 顺序 但是学术上不认为是有序 3.7x以后都是有序的 优点:查询速度快,存储关联性数据 缺点:,空间换时间 创建方式 ​ 直接创建 ​ dic = dcit(("one",1),("two",2),("three",3)) ​ dic={"大王":"365","age":18} 方式二 ​ dic=dict(one=1,two=2,three=3) 方式三 ​ dic=dict({"one":1,"two":2,"three":3}) 增 dic={"name":"太白","age":18} 第一种--有则改之,无则添加 dic["sex"]="男" dic["age"]=23 #有则改之,无则添加 "age"已经有了 把他的18改为23 第二种--有则不变,无则添加 dic.setdefault("hobby") dic={"name":"太白","age":18,"hobby":None} dic

python 13---17

大兔子大兔子 提交于 2020-01-15 07:07:09
第十三章 一. 匿名函数 匿名函数 lambda,也叫一句话函数。 现在有一个需求:你们写一个函数,此函数接收两个int参数,返回和值。 def func(a,b): return a+b print(func(3,4)) 那么接下来我们用匿名函数完成上面的需求: func = lambda a,b: a+b print(func(3, 4)) # 7 我们分析一下上面的代码: 语法: 函数名 = lambda 参数:返回值 1)此函数不是没有名字,他是有名字的,他的名字就叫做lambda 2)lambda 是定义匿名函数的关键字,相当于函数的def. 3)lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行。 func = lambda a,b,*args,sex= 'alex',c,**kwargs: kwargs print(func(3, 4,c=666,name='alex')) # {'name': 'alex'} # 所有类型的形参都可以加,但是一般使用匿名函数只是加位置参数,其他的用不到。 4)返回值在冒号之后设置,返回值和正常的函数一样,可以是任意数据类型。(但是想要返回多个元素要以容器的形式返回) 5)匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据 接下来做几个匿名函数的小题: 写匿名函数:接收一个可切片的数据

列表的日常操作

雨燕双飞 提交于 2019-12-26 17:46:12
增: .append 追加(默认追加到最后位置) l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.append('alex') l1.append(100) l1.append([1, 2, 3]) print(l1) .insert 插入(按下标来选择插入的位置)-->(1,'你妹') .extend 迭代追加(将新添加的内容以仅次于最外层包裹的单位来分开添加) l1 = ['alex', '太白', '吴老师', '景女神', '武大'] l1.insert(1,'小潘') l1.extend('alex') l1.extend(['肖锋', 666]) print(l1) 删: .pop() 按照索引删除,会将删除的元素作为返回值返回 l1 = ['alex', '太白', '吴老师', '景女神', '武大'] ret = l1.pop(0) print(ret) print(l1) .remove()按照元素删除,被删除的元素的返回值为None l1 = ['alex', '太白', '吴老师', '景女神', '武大'] ret = l1.remove('武大') print(ret) print(l1) .clear() 清空列表 del :1,按照索引删除;2,按照切片(加步长)删除;3,删除整个列表 l1 = ['alex',

Python总结

十年热恋 提交于 2019-11-30 16:11:08
数据类型 int 类型 操作方法 ```bit_length() 就是帮助你快速的计算整数在内存中占用的二进制码的长度. num = 10 print(num.bit_length()) ``` 当十进制用二进制表示时,最少使用的位数 运行结果: 4 布尔值bool 真 1 True 假 0 False 操作方法 ```int ---> bool i = 100 print(bool(i)) True 非零即True i1 = 0 print(bool(i1)) False 零即False bool ---> int t = True print(int(t)) 1 True --> 1 t = False print(int(t)) 0 False --> 0 int ---> str i1 = 100 print(str(i1)) '100' str ---> int 全部由数字组成的字符串才可以转化成数字 s1 = '90' print(int(s1)) 90 str ---> bool s1 = '太白' s2 = '' print(bool(s1)) True 非空即True print(bool(s2)) False bool ---> str t1 = True print(str(True)) 'True' ``` 字符串str 操作方法 ```a =

七. 基础数据类型补充内容

你离开我真会死。 提交于 2019-11-30 11:30:47
一. 基础数据类型补充内容 1.1 字符串 字符串咱们之前已经讲了一些非常重要的方法,剩下还有一些方法虽然不是那么重要,但是也算是比较常用,在此给大家在补充一些,需要大家尽量记住。 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2) #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 1.2 元组 python中元组有一个特性,元组中如果只含有一个元素且没有逗号,则该元组不是元组,与改元素数据类型一致,如果有逗号,那么它是元组。 tu = (1) print(tu,type(tu)) # 1 <class 'int'> tu1 = ('alex') print(tu1,type(tu1)) # 'alex'

四.python基础数据类型

寵の児 提交于 2019-11-30 08:48:32
一.什么是数据类型? 什么是数据类型?   我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数据类型有多种,如下:  整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int。数字:主要用于运算。1 ,2,3... bool。判断真假:True, False. str。简单少量的储存数据,并进行相应的操作。name = 'alex', tuple。只读,不能更改。(1,'alex') list:大量有序数据,[1,'ses',True,[1,2,3],{'name':'jinxin'}] dict:大量数据,且是关联性比较强的数据 {'name':'jinxin','age':18,'name_list':['张三','李四']} 二.基础数据类型。 2.1数字int。 nt,就是咱们常见的数据类型,主要是用于葛总运算,加减乘数等这里就不给你举例说明了。

对数据类型的相关知识的记录(python)

北慕城南 提交于 2019-11-25 18:57:33
第一次学习python的基础类型发现和java的有些不同所以记录下来没事的时候看一下# 不可变(可哈希)的数据类型:int,str,bool,tuple。# 可变(不可哈希)的数据类型:list,dict,set。# 二.基础数据类型。# 查找数据类型type()函数'''2.1数字int。2.2布尔值bool。2.3字符串str。2.4元组tuple。2.5列表list。2.6字典dict。2.6集合set。'''# 基础类型整形(int)'''int 适用于32 64位的长度用于二进制运算python给咱们提供了一种方法:bit_length()就是帮助你快速的计算整数在内存中占用的二进制码的长度.'''# 基础类型布尔值(bool)'''bool作用于判断# bool ---> intt = Trueprint(int(t)) # 1 True --> 1t = Falseprint(int(t)) # 0 False --> 0bool也会存在0和1的值因此也可以这样进行计算'''# 基础类型字符串(str)'''a = "ABCDEFGHIJK"a4 = "afjdkfjdkb"a1 = "小明的年龄为18"str2 = "%在世界的%s里占%2111",("%221%112%1121")str1 = "在世界的里占21111"print(str2