浅谈python新手中常见的疑惑及解答


Posted in Python onJune 14, 2016

1 lambda函数

函数格式是lambda keys:express   匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值。所以不用return,也没有函数名,经常用在需要key参数的函数中,比如sorted。

2 元组(),它是以逗号辨别的,而不是小括号。比如一个元素的元组新手经常写成(12),其实他会被解释成单个元素12.正确的写法应该是(12,),在元素后面加上逗号。

3 模块导入。比如

import random
print random.choice(range(10))

from random import choice
print choice(range(10))

新手会有一种误解,第二种方法只导入了一个函数,而没有把整个模块导入,这是错误的。整个模块其实已经被导入,只是那个函数的引用被保存了起来。所以from-import这种语法不会带来性能上的差异,也没有节省内存。

4 当你有许多module,比如几百个,想要使用时可能会想一个一个导入太麻烦,有没有简便的方法?答案是有的,就是将这些模块组织成一个package。其实就是将模块都放在一个目录里,然后再加一个__init__.py文件,python会将其看作为package,使用里面的函数就可以以dotted-attribute方式来访问。

5 参数传递可变对象是传引用的,不可变对象是传值的。那么什么对象是可变的,什么是不可变的。所有python对象都有三个属性:类型、标识符和值,如果值是可变的就是可变对象,如果值不可变就是不可变对象。像数字、字符串、元组都是不可变对象,剩下的列表、字典、类、类实例等都是可变对象。

6 迭代器的理解,是实现了迭代器协议的容器对象。自己实现一个迭代器,类中要有__iter__()方法,该方法返回一个对象。这个对象要有__next__()方法,在next方法中的适当位置返回StopIteration异常。迭代器不经常使用,所以不用太担心。有替代方法就是生成器。

class MyIterator(object):
  """docstring for MyIterator"""
  def __init__(self, num):
    self.num = num

  def __iter__(self):
    return self;

  def __next__(self):
    if self.num <= 0:
      raise StopIteration;
    
    self.num -= 1;
    return self.num;

for each in MyIterator(5):
  print(each);

-> 结果

7 生成器。函数中只要出现了yield语句就会将其转变成一个生成器。在遇见yield语句后会保存上下文环境,并退出函数。

注意:生成器中没有return语句。

def fun2(num):
  print("start generator");
  while(num>0):
    yield num;
    num -=1;

a=[each for each in fun2(5)]
print(a);->结果
start generator
[5, 4, 3, 2, 1]

学习过程中,难免出错。如果您在阅读过程中遇到不太明白,或者有疑问。

以上这篇浅谈python新手中常见的疑惑及解答就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的彩票机选器实例
Jun 17 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
windows下python安装pip图文教程
May 25 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
对python的输出和输出格式详解
Dec 08 Python
python的scipy实现插值的示例代码
Nov 12 Python
Python之Class&amp;Object用法详解
Dec 25 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
Python字符串三种格式化输出
Sep 17 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 #Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 #Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 #Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 #Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 #Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 #Python
浅谈python中的getattr函数 hasattr函数
Jun 14 #Python
You might like
PHP 身份验证方面的函数
2009/10/11 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
Javascript中replace()小结
2015/09/30 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
Python实现自动上京东抢手机
2018/02/06 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
《唯一的听众》教学反思
2014/02/20 职场文书
房地产端午节活动方案
2014/08/24 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
详解OpenCV曝光融合
2022/04/29 Python
python单向链表实例详解
2022/05/25 Python