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,使用 ...
随机推荐
- typescript枚举,类型推论,类型兼容性,高级类型,Symbols(学习笔记非干货)
枚举部分 Enumeration part 使用枚举我们可以定义一些有名字的数字常量. 枚举通过 enum关键字来定义. Using enumerations, we can define some ...
- opencv 霍夫变换 实现图片旋转角度计算
在OCR实际开发中,证件照采集角度有很大的偏差,需要将图片进行旋转校正, 效果图: 在应用中发现应该加入高斯模糊,可以极大减少误差线条. 知道线条后 通过求斜率 得旋转角度 .(x1-x2)/(y1- ...
- docker存储与网络
目录 Docker存储 挂载主机目录 创建一个数据卷 挂载一个宿主机目录作为数据卷 数据卷容器 创建一个数据卷容器 利用数据卷容器迁移数据 删除数据盘 Docker网络 简介 bridge网络 bri ...
- python influxdb
Git:https://github.com/influxdata/influxdb-python 帮助文档:http://influxdb-python.readthedocs.io/en/late ...
- Goslate: Free Google Translate API
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- JAVA 动态代理学习记录
打算用JAVA实现一个简单的RPC框架,看完RPC参考代码之后,感觉RPC的实现主要用到了两个方面的JAVA知识:网络通信和动态代理.因此,先补补动态代理的知识.---多看看代码中写的注释 参考:Ja ...
- 阿里云服务器安装SQLServer本地无法远程访问
新买的阿里云服务器,安装上sqlserver2012,本机连接测试没有问题,但是回到本地,使用ip远程连接报错. 尝试了网上各种办法,都是失败.最后找到原因,原来在阿里云的控制台上有设置: 首先进入安 ...
- aircrack-ng套件学习笔记
Aircrack-ng套件 1.airdecap-ng 该工具主要用于对加密无线数据报文的解码. 1.当无线网络启用了WEP或者WPA-PASK加密,可以使用wireshark过滤,过滤条件为:IEE ...
- android ContentObserver内容观察者基本使用
package com.example.observertest; import android.content.ContentResolver; import android.database.Co ...
- JavaScript之DOM概念
一.DOM概念 1.DOM是什么? 1.1 起源.DOM起源于Netscape与Microsoft 公司的DHTML(动态HTML). 1.2 名词解释.Document Object Model,文 ...