python基础教程慕课_Python基础教程(6)--抽象
标签(空格分隔): 参数 作用域 (个人总结学习)
懒惰即美德
抽象
函数调用
抽象和结构
创建函数
hasattr(func,__call__):判断函数是否可调用
斐波那契数列
def fibs(num):
result = [0, 1]
for i in range(num -2):
result.append(result[-2] + result[-1])
return result
记录函数
字符串文档
>>>square.__doc__
并非真正函数的函数
无返回值的函数返回None
参数
形参和实参
参数可以改变吗?
函数内参数重新绑定,不会影响函数外部的变量,因为参数存储在局部作用域
传入列表
change(name[:])
change(names)
查询联系人
def lookup(data, label, name):
return data[label].get(name)
def store(data, full_name):
names = full_name.split()
if len(names) == 2: names.insert(1,'')
lables = 'first', 'middle', 'last'
for label, name in zip(labels, names)
people = lookup(data, label, name)
if people:
people.append(full_name)
else:
data[label][name] = [full_name]
###关键字参数和默认值
###收集参数
- *params
```python
def print_param(title,*params):
print(title)
print(params)
**keys
def print_params(title,*params, **keys):
print(title)
print(params)
print(keys)
print_params("hello",2,3,4, foo1='23',foo2='34'):
- 实现多个名字存储
```python
def store(data, *full_names):
for full_name in full_names:
names = full_name.split()
if len(names) == 2: names.insert(1,'')
lables = 'first', 'middle', 'last'
for label, name in zip(labels, names)
people = lookup(data, label, name)
if people:
people.append(full_name)
else:
data[label][name] = [full_name]
反转过程
params = {'name': 'Sir Robin', 'greeting': 'wellmet'}
hello(**params)
练习使用参数
def story(**kwds):
return 'Once upon a time, there was a ' \
'%(job)s called %(name)s.' % kwds
def power(x, y, *others):
if others:
print 'Received redundant parameters:', others
return pow(x, y)
def interval(start, stop=None, step=1):
'Imitates range() for step > 0'
if stop is None: # If the stop is not supplied...
start, stop = 0, start # shuffle the parameters
result = []
i = start # We start counting at the start index
while i < stop: # Until the index reaches the stop index...
result.append(i) # ...append the index to out result...
i += step # ...increment the index with the step (> 0)
return result
作用域
命名空间:作用域,不可见字典
Shadowing
globals().['parameter']
vars
locals
nonlocal
递归
最小可能性问题
递归实例
阶乘和幂
另外一个经典:二元查找
def search(sequence, number, lower, upper=None):
if upper is None: upper = len(sequence)-1
if lower == upper:
assert number == sequence[upper]
return upper
else:
middle = (lower + upper) // 2
if number > sequence[middle]:
return search(sequence, number, middle+1, upper)
else:
return search(sequence, number, lower, middle)
本章新函数
map(func, seq[, seq,...])
filter(func,seq)
reduce(func, seq[, initial])
sum(seq)
apply(func[, args[, kwargs]])
打开App,阅读手记
python基础教程慕课_Python基础教程(6)--抽象相关推荐
- python until怎么用_python基础之从认识python到python的使用
python的历史: python的创始人是吉多·范罗苏姆(Guido van Rossum),人称"龟叔",1989年圣诞节期间,Guido开始写Python语言的编译器.他希望 ...
- python入门教程 傻瓜_python傻瓜教程
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 实现完美白化教程(傻瓜式)如何查看特征值一.安装meteoinfo(可在气象家园 ...
- python循环语句画图_Python基础之循环语句用法示例【for、while循环】
本文实例讲述了Python基础之循环语句用法.分享给大家供大家参考,具体如下: while 循环 Python中while语句的一般形式: while 判断条件: statements 同样需要注意冒 ...
- python新手入门课_Python基础视频12集入门课程
视频+笔记:├─1简介与实验环境配置9│ Python基础.pptx│ Python简介.pptx│ 实验环境配置2-1.pdf│ 2.1简介与实验环境配置.mp4│ 请简述 Python 语言与 C ...
- python程序设计教程杨年华_Python程序设计教程(21世纪高等学校计算机应用技术规划教材)...
目录 第1章Python概述 1.1Python语言的发展史 1.2Python语言的特点 1.3Python的下载与安装 1.3.1Python的下载 1.3.2Python的安装 1.4开始使用P ...
- python3.7教程百度云盘_Python新手教程百度网盘《怎么安装python3.7》
求最新python人工智能视频教程网盘链接 有的事实证明,Python语言更适合初学者,Python语言并不会让初学者感涩,它突破了传统程序语言困难的语法屏障,初学者在学习Python的同时,还能够锻 ...
- python基础开发环境_Python基础教程,第一讲,开发环境搭建
今天是写Python基础教程的第一课,也是下定决心做技术分享的第一篇文章.先扯几句和技术无关的吧,也便于大家了解这套课程的内容,适不适合自己学习,我做开发6年了,已年过30,一直从事的WEB方面的开发 ...
- python什么教程好_Python基础教程哪个好
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于零基础想学习编程的朋友来说,Python是个非常不错的选择.Python的基础概念是极简的对象化实现,内存管理都采用统一的计数GC,为了提高开发效率而 ...
- python类class定义_python基础教程之类class定义使用方法
面对对象(oop)中的对象,是一个非常重要的知识点,我们可以把它简单看做是数据以及由存取.操作这些数据的方法所组成的一个集合.我们在学习函数(function)之后,知道了如果重用代码,那为什么还要用 ...
最新文章
- 4、jquery表格操作
- 科学:螳螂虾大脑拥有记忆和学习中心
- wine清除软件残余图标
- 网页css样式中英对照,css中文样式(含中英文对照表).doc
- 串口、COM口、TTL和RS-232的区别详解
- SAP云平台Extension Factory和微软Azure上的Lambda Function
- JavaScript 游动层onmouseover
- 助你解决新手开车四大问题 为您支招
- 好看的css3用户基本信息卡片样式源码
- Python中使用PhantomJS抓取Javascript网页数据
- (84)Verilog HDL:四舍五入
- 黑马程序员_面向对象的三大特征
- AI 时代,程序员从小白到小牛的发展攻略丨今晚直播送机械键盘!
- 图的应用--最小生成树
- HDU - 1728 逃离迷宫 【BFS】
- 嵌入式linux调节lcd背光,背光调节的软件设计 - 基于嵌入式Linux的LCD背光调节及驱动实现...
- 手把手教你怎么从微软官方下载 Windos10 正版镜像
- js练习题:对象字面量的形式创建一个名字为可可的狗对象
- openstack搭建教程
- 仿腾讯QQ竖直滑动导航菜单
热门文章
- 基于 MinIO 对象存储框架的短视频点播平台设计
- 鸿蒙OS最快6月正式推送;微信Windows版将支持刷朋友圈;GCC 11.1正式发布|极客头条...
- 5G 来袭,数据暴增,新一代云存储平台如何承载?
- 云原生火爆技术人朋友圈,你可别云里雾里了!
- AI 看脸算命,3 万张自拍揭露:颜值即命?
- 零基础物联网开发,踩坑无数,得到这份宝典 | 原力计划
- 字节跳动武汉招聘 2000 人,距离大厂 Offer,你还差这篇 Java 干货!| 原力计划...
- GitHub 十大顶级 JavaScript 开源项目
- 业务复杂就用 if-else?刚来的技术大佬用这招彻底干掉了!
- 理想中的那些智能家居!