三元表达式,递归,匿名函数,内置函数

时间:2021-10-30 19:08:06

 

 



一 、三元表达式
只应用于条件成立返回一个值,条件不成立返回另一个值。

   示例:
    name=input('姓名>>: ')
    res='SB' if name == 'alex' else 'NB'
    print(res)
注:通常使用场合为特别简单一眼读懂的地方。

二、递归
函数的递归调用就是在函数调用的过程直接或者间接调用了函数本身。递归的的最大限制1000层,可修改。
示例:
def foo():
print('hahah')
bar()

def bar():
print('kkkkkkk')
foo()
foo()

递归分为两个阶段:
1 回溯 回溯注意一定要在某种程度下结束回溯,否则就是无限的死循环
2 递推


itmes = [1,[2,[3,[4,[5,[6,[7,[8,[9,[10,[11,[12,[13]]]]]]]]]]]]]

def tell(l):
for itme in l:
if type(itme) is not list:
print(itme)
else:
tell(itme)
tell(itmes)

总结:
1 递归一定要有一个明确的结束条件。
2 每进入下一次,问题的规模都应该减少。
3 在Python中递归的效率不高,递归层次过高会导致栈溢出。注意在Python没有伪递归优化。


三、匿名函数

语法 lambda x,y: x ** y

f = lambda x,y: x ** y

print(f(3,10))
print(f(2,100))


总结:
匿名函数就是没有名字的函数。
与普通函数有相同的作用域,但是匿名意味着引用次数为0,使用一次后就释放。
匿名的函数的函数通常应该是一个表达式,该表达式必须只有一个返回值。

四、内置函数
Python自带的常用函数。
要求优先掌握的内置函数
bytes() res = bytes('nihao',encoding='utf-8') #装换位bytes类型。
chr() print(chr(99)) #用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个ascii值。
divmod() #把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
enumerate() #函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
eval() #将字符串str当成有效的表达式来求值并返回计算结果。
filter() #函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,
序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
id() #id() 函数用于获取对象的内存地址。
input() #接受一个标准输入数据,返回为 string 类型。
iter() #函数用来生成迭代器。
len() #返回对象(字符、列表、元组等)长度或项目个数。
map() #根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个
元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
max() #返回字符串中最大的字母。
min() #返回给定参数的最小值,参数可以为序列。
ord() #用来返回单个字符的ascii值(0-255)。
sorted() #函数对所有可迭代的对象进行排序操作。