Pyhton学习——Day7
##############################################匿名函数####################################################
# lambda x:x+1
# def calc(x):
# return x+1
# calc(10)
#用匿名函数来表示#####基本语法结构####lambda + 匿名函数的形参+函数表达处理公式(相当于函数的return)
# lambda x:x+1
# res = lambda x:x+1
# print(res(10)
###########根据输入的内容修改#################################################################################
# name = 'alex'
# def name_change(name):
# name = input('>>>')
# print(name)
# name_change(name)
###########匿名函数#####################需要和其他函数一起使用,一般不是独立存在的##############################
# name = 'alex'
# name_change = input(">>>")
# lambda name:name_change
# test = lambda name:name_change
# print(test(name_change))
##########匿名函数#####################只能使用一行,不能进行逻辑判断#############################################
##################################################################################################################
#编程方法论:
#1.面向过程式编程
#2.函数式编程
#3.面向对象
####################################
#什么是过程?
#没有返回值的对象就是面向过程,过程也是函数
#面向过程就是把大的问题分解成小的问题,基本单位就是函数
#######################################
# 什么是函数式编程?
# 和面向对象一样,基本单位都是函数
#函数式编程 = 编程语言定义的函数 + 数学意义的函数
#相比面向过程,函数式编程会更为精简,都是可读性差
#python不是一门严格意义上的函数式编程语言
#######################################
#函数式编程的特性
#1.不可变,不用变量保存状态,不修改变量
#2.函数体内不应该有任何形式的赋值操作
#3.尽量不要使用在子函数去改全局变量
##########################################
# def foo(n):
# print(n)
# def bar(name):
# print('my name is %s' %name)
# foo(bar('alex'))
# 把函数当做参数传值,传给另一个函数
# def foo():
# print('from foo')
# return foo
# print(foo()())
######################################高阶函数#################################################
#1.把函数当做参数传给另外一个函数
#2.返回值中包含函数
##############################高阶函数用于构成装饰器###########################################
#——————————————————————————————————————————————#
##############################尾调用优化##########################################################
#尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)
#——————————————————————————————————————————————#
###############################map函数##############################################################
# num_1 = [1,2,10,5,3,7]#根据列表得出所有的元素的平方组成列表
# ret = []
# for item in num_1:
# ret.append(item**2)
# print(ret)
# [1, 4, 100, 25, 9, 49]
#############################封装函数##############################################################
# num_1 = [1,2,10,5,3,7]
# def map_test(array):
# ret = []
# for item in num_1:
# ret.append(item**2)
# return ret
# print(map_test(num_1))
#————————————————————————————————————————————————#
# num_1 = [1,2,10,5,3,7]
# def add_one(x):#lambda x:x+1
# return x+1
# def min_one(x):
# return x-1
# def map_test(func,array):
# ret = []
# for item in num_1:
# res = func(item)
# ret.append(res)
# return ret
# print(map_test(add_one,num_1))
######终极版本#############
# num_1 = [1,2,10,5,3,7]
# def map_test(func,array):
# ret = []
# for i in array:
# res = func(i)
# ret.append(res)
# return ret
# print(map_test(lambda x:x-1,num_1))
# [0, 1, 9, 4, 2, 6]
#########################map函数#####################################################################
# num_1 = [1,2,10,5,3,7]
# res = map(lambda x:x-1,num_1)
# print('内置函数map,处理结果',res)
# 内置函数map,处理结果 <map object at 0x00000000027B8128>
# [0, 1, 9, 4, 2, 6]
# for i in res:
# print(i)
# print(list(res))
#map实际是迭代器
#map 两个参数,第一个填方法,第二个写可迭代对象
#———————————————————————————————————————————————————#
#####################################filter函数#########################################################
# movie_person = ['alex','wupeiqi','yuanhao','sb_alex','linhaifeng']
# def sb_show(n):
# return n.endswith('sb')
# def filter_test(array):
# ret = []
# for p in array:
# if not p.startswith('sb'):
# ret.append(p)
# return ret
# print(filter_test(movie_person))
# movie_person = ['alex','wupeiqi','yuanhao','sb_alex','linhaifeng']
# res = filter(lambda x:not x.startswith('sb'),movie_person)
# print(list(res))
# ['alex', 'wupeiqi', 'yuanhao', 'linhaifeng']
#——————————————————————————————————————————————————————#
#################################reduce函数###################################################################
# from functools import reduce
num_l = [1,2,3,4,5,6,100]
# res = 0
# for num in num_l:
# res+=num
# print(res) # def reduce_test(func,array):
# res = 0
# for num in (array):
# res+=num
# return res
# print(reduce_test(num_l))
#reduce函数实际就是压缩数据,使用方法:函数+序列+初始值
#################################################################总结######################
#1.map用来处理序列中的每个元素,得到的结果是一个迭代器形式的列表(元素的格式及位置与原来一样)
#2.filter函数时遍历序列中的每一个元素,判断每个元素,得到布尔值,如果是True则留在内存中[用于过滤数据]
#3.reduce就是合并数据
#——————————————————————————————————————————————————#
##########################################内置函数########################################################
# 1.abs()取绝对值
# print(abs(-5))
# 5
#################
# 2.all()代表所有的值,所有的元素取出做布尔运算,0 None ‘ ’为假,所有的结果都是真则为真,有一个为假则为假
# print(all([1,2,'1']))
# True
#3.any()代表任意的值,有一个为假,则全为假,有一个为真则全为真
# print(any([1,2,'3',0]))
# True
# 4.bin()十进制转换为二进制
# print(bin(3))
# 0b11
# 5.bool判断布尔值,空、None、0布尔值为False
#6.bytes()代表把字符串转换为字节的形式,通过2进制传输
# name = "你好"
# print(bytes(name,encoding='UTF-8').decode('UTF-8'))#用什么方式编码就要用什么解码
#7.classmethod()
#8.delattr()
#9.dict()字典
#10.dir()目录,某一个对象下所具有的所有方法
#11.divmod()取商得余数,可以用来做网页的分页功能
# print(divmod(10,3))10代表总记录,3代表每页显示3条记录
# (3, 1)
#12.eval()将字符串中的字典提取出来,去除字符串,并执行数值计算
# dic = {'name':'alex'}
# dic_str = str(dic)
# print(dic_str)
# print(eval(dic_str))
#13.hash()可hash的数据类型即不可变的数据类型,不可hash的位可变的数据类型
# hash实际是一种算法,根据算法得出hash值,任何值都会被算为指定位数的值,不能反推出值,变量不变,hash值不变
#hash使用方法:网络下载时,数据传输时修改木马程序,导致电脑中毒,对软件整体做hash运算,将值和软件同时下载
#下载后解码时使用hash值得出下载值,只要hash值相同及软件未被修改
#14.help查看方法的使用
#15.bin(10)十进制转换为二进制
#16.hex(12)十进制转换为十六进制
#17.oct(12)十进制转换为8进制
#18.isinstance()什么是什么的实例,判断输入的数据是不是该类的数据类型
# print(isinstance(1,int))
# True
#19.globals 系统处理成相对路径
# name = '哈哈哈哈哈哈哈'
# print(globals())
#max()、min()取最大最小值
Pyhton学习——Day7的更多相关文章
- Pyhton学习——Day26
#多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...
- pyhton 学习
官方学习文档 https://docs.python.org/3/tutorial/
- 20190320_head first pyhton学习笔记之构建发布
1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...
- python学习Day7 数据类型的转换,字符编码演变历程
一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...
- Python学习-day7 类 部分socket
这周还是继续关于类的学习,在面向对象的学习过程中又学习了网络编程,并且提交了编写FTP的作业. 复习一下类的相关概念和定义 类 属性 实例变量:内存中 ...
- Pyhton学习——Day2
Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...
- Pyhton学习——Day28
#上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...
- Pyhton学习——Day27
# hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...
- Pyhton学习——Day25
#面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...
随机推荐
- Angular之constructor和ngOnInit差异及适用场景(转)
原始地址:https://blog.csdn.net/u010730126/article/details/64486997 Angular中根据适用场景定义了很多生命周期函数,其本质上是事件的响应函 ...
- Cocos2d-x碰撞检測
假设不适用Box2D物理引擎.那么要进行Cocos2d-x的碰撞检測那我们的方法往往就是进行"矩形和点"."矩形和矩形"这样粗略的碰撞检測.我们一般採取开启sc ...
- 让VMware ESXi虚拟交换机支持VLAN
眼下虚拟化应用比較广泛,通常情况下.一台物理主机在安装VMware ESXi或Hyper-V虚拟机软件后.能够在一台物理主机上创建多个虚拟机,而且创建的每一个虚拟机能够像原来的物理一样对外提供服务,这 ...
- HDU 5078 Revenge of LIS II(dp LIS)
Problem Description In computer science, the longest increasing subsequence problem is to find a sub ...
- 字节与字符_字节流与字符流_ASCII与Unicode_GB2312_GBK_GB18030_BIG-5
字节(Byte):通常将可表示经常使用英文字符8位二进制称为一字节. 一个英文字母(不分大写和小写)占一个字节的空间,一个中文汉字占两个字节的空间. 符号:英文标点2占一个字节,中文标点占两个字节. ...
- 错误 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
转 Linux下Android SDK中adb找不到的解决方案 2013年04月22日 20:41:48 阅读数:7621 在Linux平台下配置Android SDK开发环境过程中,Eclipse会 ...
- 0x11 栈
这个不难吧,算是常识了..毕竟也是刷过USACO的人 对顶栈这东西前几天才遇到过,好像和在线求中位数那东西放一起了吧 单调栈倒是没什么...贴个代码算了.一开始有点蠢的每个位置算,后来发现出栈再算就行 ...
- Java-杂项:Java数组Array和集合List、Set、Map
ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...
- xBIM 学习与应用系列目录
xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览 xBIM 实战03 使用WPF技术实现IFC模型的加载与浏览 xBIM 实战02 在浏览器中加载IFC模型文件并设 ...
- CentOS 7 NAT模式上网配置
一 VMware 配置 在“编辑”选项卡中,选择“虚拟网络编辑器”,如下图: 选择VMnet8,修改子网IP与子网掩码,注意不要给“使用本地DHCP服务将IP地址分配给虚拟机”选项打勾,如下图: 点击 ...