python学习第十三、十四天


python内置函数图:

https://www.processon.com/mindmap/5bdc30b9e4b0e4521338ce35




# # # lambda() #匿名函数
# ### 练习:
# n = lambda a,b: a+b
# print(n(2,3))
#
# # 用 lambda 计算字符串长度
# # a = lambda n : len(n)

# lst = ['金克斯','阿卡丽','阿狸','Vn','大嘴','德玛西亚皇子']
# # 按照文字长短来排序
# def func(s):
# return len(s)
#
# s = sorted(lst , key=func) # 把列表中的每一个元素传递给func,
# print(s)

# # 按照年龄排序
# lst = [
# {'id':1,'name':'alex','age':28},
# {'id':2,'name':'taibai','age':58},
# {'id':3,'name':'taihei','age':18},
# {'id':4,'name':'henhei','age':38}
# ]
# def func(dic):
# return dic['age']
#
# s = sorted(lst , key=func)
# print(s)





# # # filter() 筛选
# ### 练习:
# lst = ['金克斯','阿卡丽','阿狸','Vn','大嘴','德玛西亚皇子']
#
# # 把后面的可迭代对象(lst)中的元素交给前面(f)的函数。根据返回值True或者False,判断是否保留该元素
# f = filter(lambda s : len(s) > 2 , lst)
# print(f)
# print('__iter__' in dir(f))
# for el in f:
# print(el)

# # 筛选年龄大于等于38的人
# lst = [
# {'id':1,'name':'alex','age':28},
# {'id':2,'name':'taibai','age':58},
# {'id':3,'name':'taihei','age':18},
# {'id':4,'name':'henhei','age':38}
# ]
# f = filter(lambda dic:dic['age'] >= 38 , lst)
# for el in f:
# print(el)






# # # map() 映射
# # 把可迭代对象中的每一个元素拿出来交给前面的函数执行。保留最后执行结果。
# ### 练习:
# # 计算列表中每一项的平方
# lst = [2,5,64,6,3,2,5,8,4,]
# m = map (lambda x: x**2 , lst)
# for el in m:
# print(el)

# # 给出一个列表判断正确的用户名和密码:
# # ["alex_123", "alex_456", "wusir_123", "wusir_456", "alex_789"]
# # 正确的用户名: alex
# # 密码:456
# lst = ["alex_123", "alex_456", "wusir_123", "wusir_456", "alex_789"]
# m = map (lambda x : x == 'alex_456' ,lst)
# for el in m:
# print(el)
# lst1 = list(map (lambda x : x == 'alex_456' ,lst))
# print(lst1)






# # # 递归
# # 函数自己调用自己
# import os
# def func(path,ceng):
# lst = os.listdir(path) #打开一个文件夹。获取文件夹中的所有内容
# for el in lst: #当前文件夹的所有文件名(包括文件夹名字)
# # 拼接文件的真实路径
# file_real_path = os.path.join(path,el)
# # 判断这路径是文件还是文件夹
# if os.path.isdir(file_real_path):
# print('\t'*ceng,el)
# # 递归的入口
# func(file_real_path,ceng+1) # 重新执行刚刚的操作
# else: # 不是文件夹,是文件
# # 递归的出口
# print('\t'*ceng,el)
# func('d:/a',0)
# # os : 和操作系统相关的一些功能
# # os.listdir() : 帮我们打开一个文件夹,返回文件夹内的所有内容(文件的名字)
# # os.path.join : 拼接文件的真是路径
# # os.path.isdir(路径) : 判断是文件还是文件夹(True为文件夹,False为文件)







## 判断用户输入的数字是否存在在列表中
lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963]
## 普通版:
# num = int(input('请输入一个数字:'))
# for el in lst:
# if num == int(el):
# print('True')
# break
# else:
# print('False')
# 二分法:
# left = 0 # 左边界
# right = len(lst) - 1 # 末尾索引 右边界
# num = int(input('请输入一个数字:'))
# while left <= right: # 当左边界大于右边界结束循环
# mid = (left + right) // 2 # 求中间索引坐标
# if num < lst[mid]: #判断数字与中间值的大小
# right = mid - 1 # 右边界往左移
# elif num > lst[mid]: #判断数字与中间值的大小
# left = mid + 1 # 左边界往右移
# else:
# print('True') # 找到目标数字
# break
# else: # 当左比右大,结束循环,没有找到目标数字
# print('None')
## 使用递归的二分法
# def binary_search(lst, n, left, right):
# if left > right:
# return False
# mid = (left + right) // 2
# if n < lst[mid]:
# right = mid - 1
# return binary_search(lst, n, left, right)
# elif n > lst[mid]:
# left = mid + 1
# return binary_search(lst, n, left, right)
# else:
# print('找到了')
# return True
#
# n = int(input('请输入一个数字:'))
# ret = binary_search(lst, n, 0, len(lst)-1)

posted @ 2018-11-05 22:21  EuanXu  阅读(183)  评论(0编辑  收藏  举报