浅谈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实现方法
Nov 18 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
python实现DES加密解密方法实例详解
Jun 30 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
python交换两个变量的值方法
Jan 12 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
关于python多重赋值的小问题
Apr 17 Python
查看keras的默认backend实现方式
Jun 19 Python
python如何爬取动态网站
Sep 09 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
python excel和yaml文件的读取封装
Jan 12 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中的MVC模式运用技巧
2007/05/03 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
python异常触发及自定义异常类解析
2019/08/06 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
ASP.NET Core中的配置详解
2021/02/05 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
优秀团队获奖感言
2014/02/19 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
毕业生政审意见范文
2015/06/04 职场文书
python如何将mat文件转为png
2022/07/15 Python