PYTHON-匿名函数,递归与二分法,面向过程编程-练习
# 四 声明式编程练习题 # 1、将names=['egon','alex_sb','wupeiqi','yuanhao']中的名字全部变大写
names = ['egon', 'alex_sb', 'wupeiqi', 'yuanhao']
# # 方式一:手动实现
# new_names=[]
# for line in names:
# new_names.append(line.swapcase())
# print(new_names)
#
# # 方式二:列表生成式
# new_names=[line.swapcase() for line in names]
# print(new_names)
#
# # 方式三:map+匿名函数
# res=map(lambda line :line.swapcase() ,names)
# print(list(res)) # names=[name.upper() for name in names]
# print(names) # 2、将names=['egon','alex_sb','wupeiqi','yuanhao']中以sb结尾的名字过滤掉,然后保存剩下的名字长度
names = ['egon', 'alex_sb', 'wupeiqi', 'yuanhao'] # new_names=[]
# for line in names:
# if not line.endswith('sb'):
# new_names.append(line)
# print(new_names) # new_names=[len(line) for line in names if not line.endswith('sb') ]
# print(new_names) # res=filter(lambda line:not line.endswith('sb'),names)
# print(list(res)) # 3、求文件a.txt中最长的行的长度(长度按字符个数算,需要使用max函数)
# file=[]
# with open('a.txt','rt',encoding='utf-8')as f:
# for line in f:
# res=f.read()
# # print(res)
# res=res.split('\n')
# file.append(res)
# print(file)
# def funcs(x):
# return len(x)
# res=max(file,key=funcs)
# print(res)
# res2=max(res,key=funcs)
# print(len(res2)) # print(max(len(line) for line in f)) # 4、求文件a.txt中总共包含的字符个数?思考为何在第一次之后的n次sum求和得到的结果为0?(需要使用sum函数)
# with open('a.txt','rt',encoding='utf-8')as f:
# print(sum(len(line) for line in f))
# print(sum(len(line) for line in f)) # 求包换换行符在内的文件所有的字符数,为何得到的值为0? # 5、思考题
# with open('a.txt') as f:
# g=(len(line) for line in f)
# print(sum(g)) #为何报错? # with open('a.txt') as f:
# print(sum(len(line) for line in f))
# print(sum(g)) #为何报错?(len(line) for line in f)时循环多个值
#
# 6、文件shopping.txt内容如下
# mac,20000,3
# lenovo,3000,10
# tesla,1000000,10
# chicken,200,1
# 求总共花了多少钱?
# 打印出所有商品的信息,格式为[{'name':'xxx','price':333,'count':3},...]
# 求单价大于10000的商品信息,格式同上 # with open('shopping.txt','rt',encoding='utf-8') as f:
# info=[line.strip('\n').split(',') for line in f]
# print(info)
# cost=sum(float(unit_price) *int(count) for _,unit_price,count in info)
# print(cost) # with open('shopping.txt', 'rt', encoding='utf-8') as f:
# # for line in f:
# # print(line)
# info=[{'name':line.strip('\n').split(',')[0],
# 'price':int(line.strip('\n').split(',')[1]),
# 'count':int(line.strip('\n').split(',')[2])} for line in f]
# print(info) # with open('shopping.txt',encoding='utf-8') as f:
# info = [{'name': line.strip('\n').split(',')[0],
# 'price': int(line.strip('\n').split(',')[1]),
# 'count': int(line.strip('\n').split(',')[2])} for line in f if int(line.strip('\n').split(',')[1]) > 10000]
# print(info) # ====================
# 函数递归
# 四 二分法
#
# 想从一个按照从小到大排列的数字列表中找到指定的数字,
# 遍历的效率太低,用二分法(算法的一种,算法是解决问题的方法)可以极大低缩小问题规模
# 实现类似于in的效果
# l = [1, 2, 10, 30, 33, 99, 101, 200, 301, 311, 402, 403, 500, 900, 1000] # 从小到大排列的数字列表
# # find_index = 900
# def search(find_index, l):
# print(l)
# if len(l)==0:
# print('not find!')
# return
# mid_num = len(l) // 2
# mid_index = l[mid_num]
# # print(mid_index)
# if find_index > mid_index:
# print('right')
# l = l[mid_num + 1:]
# search(find_index, l)
# elif find_index < mid_index:
# print('left')
# l = l[0:mid_num]
# search(find_index, l)
# else:
# print('find it!')
#
# search(901, l) # 实现类似于l.index(30)的效果
# 查找一个值是否存在于列表中并返回索引
# l = [1, 2, 10, 30, 33, 99, 101, 200, 301, 311, 402, 403, 500, 900, 1000] # 从小到大排列的数字列表
# def search(num,l,start=0,stop=len(l)-1):
# if start <= stop:
# mid=start+(stop-start)//2
# print('start:[%s] stop:[%s] mid:[%s] mid_val:[%s]' %(start,stop,mid,l[mid]))
# if num > l[mid]:
# start=mid+1
# elif num < l[mid]:
# stop=mid-1
# else:
# print('find it',mid)
# return
# search(num,l,start,stop)
# else: #如果stop > start则意味着列表实际上已经全部切完,即切为空
# print('not exists')
# return
#
# search(301,l)
PYTHON-匿名函数,递归与二分法,面向过程编程-练习的更多相关文章
- python函数:匿名函数、函数递归与二分法、面向过程编程
今天主要讲三大部分内容: 一.匿名函数二.函数递归与二分法三.面向过程编程 一.匿名函数: """ 1. 什么时匿名函数 def定义的是有名函数:特点是可以通过名字重复调 ...
- JS匿名函数递归实现阶乘
var rs = (function (value) { if (value > 1) return value * arguments.callee(value - 1); return va ...
- python 匿名函数的使用(并没有那么简单)
以下为几种匿名函数的使用方式:x=[(lambda x:x**2)(x) for x in range(10)]print(x)y=[x**2 for x in range(10)]print(y)i ...
- Python匿名函数_return语句
Python匿名函数: 使用 lambda 关键字创建匿名函数: lambda 定义的函数只是一个表达式,而不是代码块 lambda 函数拥有自己的命名空间,不能够访问参数列表之外的 或 全局命名空间 ...
- Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
一. lamda匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n ...
- python匿名函数(lambda)
简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方 ...
- python匿名函数
文章导读: 以前自己一直没搞明白Python中的匿名函数,现在拿这个问题基本上搞明白了,拿自己的理解整成一篇文章,附带大量例子,让其更加好理解. 在编程语言中,函数的应用: 1. 代码块重复,这时候必 ...
- python 匿名函数与三元运算
匿名函数 匿名函数就是不需要显示式的指定函数名 首先看一行代码: def calc(x,y): return x*y print(calc(2,3)) # 换成匿名函数 calc = lambda x ...
- python 匿名函数&内置函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数怎么定义匿名函数: cal = lambda x : x*x # cal是函数名,lambda是定义匿名函数的关键字 冒号前面的额x是参数即函数 ...
- python匿名函数 高阶函数 内置函数 文件操作
1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...
随机推荐
- C++11并发——多线程lock_gurad ,unique_lock (三)
http://www.cnblogs.com/haippy/p/3346477.html struct defer_lock_t {}; 该类型的常量对象 defer_lock(defer_lock ...
- R语言画棒状图(bar chart)和误差棒(error bar)
假设我们现在有CC,CG,GG三种基因型及三种基因型对应的表型,我们现在想要画出不同的基因型对应表型的棒状图及误差棒.整个命令最重要的就是最后一句了,用arrows函数画误差棒.用到的R语言如下: d ...
- 约会 音频mm教你追女孩
微信吧地址发给他人. 美团提前选好环境然后提前打电话订购一个位置. 微博作用是为:更多的谈资.热搜 ,最近上榜的话题说. 打车软件: 地图: 2.外表: 下澡,指甲,胡子,发型,适合服装.发型和服装搭 ...
- Failed to load because no supported source was found
Uncaught (in promise) DOMException: Failed to load because no supported source was found? 等待解决:
- Django 日志配置按日期滚动
记录下Django关于日期的配置,以及如何根据日期滚动切割日志的问题. 配置的源码在githun上 https://github.com/blackmatrix7/django-examples/tr ...
- Django 2.0.3 使用笔记
运行环境: Python 3.5.2 Django 2.0.3 Django Admin中model显示为中文 定义model时,定义一个Meta对象,设置需要显示的中文名称.verbose_name ...
- uwsgi多进程配合kafka-python消息无法发送
在工作中,使用uwsgi部署项目,其中uwsgi设置为多进程,并且python中使用了kafka-python模块作为生产者不断产生数据,但上线不久后几乎所有的生产者消息都报:KafkaTimeout ...
- Hystrix介绍以及服务的降级限流熔断
(dubbo熔断,Hystrix问的少) 无论是缓存层还是存储层都会有出错的概率,可以将它们视同为资源.作为并发量较大的系统,假如有一个资源不可用,可能会造成线程全部 hang (挂起)在这个资源上, ...
- spring @Entity @Table
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; impor ...
- 求FIRST集和FOLLOW集
花了点时间弄了个大概,希望对和我一样的人有所帮助. 文法如下: E -> TE'E' -> +TE'|εT -> FT'T' -> *FT'|εF -> (E)|id ...