从头啃《python核心编程(第二版)》 第2章

标签: python 学习笔记
4人阅读 评论(0) 收藏 举报
分类:

第2章 python起步

语句和表达式

语句使用关键字组成命令,告诉程序要做什么

表达式没有关键字,如open(‘filename’, ‘r’)

str()和repr()

交互式环境,只输入变量名,变量内容是用引号引起来的,他显示的是对象的字符串表示,不仅仅是字符串本身

print 调用str()函数显示对象,交互式解释器使用repr()函数显示对象

“_”下划线在解释器中表示上一个表达式的值

print语句重定向

用>>表示重定向

重定向到标准错误输出

import sys

print >> sys.stderr, "this is print comment"

重定向到文件

import sys

f = open('filename', 'a'):
print >> f, "this is print comment"

raw_input()和EOF

EOF字符,windows是Ctrl+Z+回车,Linux是Ctrl+D

获取用户输入时若用户输入了EOF字符,会报EOFError

linux下可以尝试用GNUreadline库

文档字符串

模块第一行,类的第一行,函数的第一行,的字符串都是文档字符串

起到在线文档的作用,help()方法看的就是这些文档字符串

3<5<6

3<5<6等价于 3<5 and 5<6,在其他语言里是不被允许的

动态语言类型

变量的类型不需要事先声明,变量的类型和值在被赋值的那一刻初始化

不支持自增自减

python解释器会认为+-都是正负号,所以不支持自增自减

5种数字类型+1种浮点数类型

  • int
  • long 长度仅受限于机器虚拟内存的总数
  • bool
  • float
  • complex

  • decimal decimal模块的Decimal类,专门处理浮点数

运算符重载

一些运算符不止作用于数字类型,例如+也用于字符串连接, *也用于字符串重复

for迭代循环

python里的for循环接受一个序列或迭代器,迭代器后续学习

大多数语言for循环是计数器循环如C中的 for(i = 1; i<=10; i++)

区分括号还是元组

元组只有一个元素时要在元素后加逗号”,”代表这是单元素元组而不是括号

不加逗号如(‘good’)认为是括号而不是元组

迭代索引和值

python的for循环时想用索引进行迭代可以用range()配合len()

myList = [1,2,3,4,'5','6']
for i in range(len(myList)):
    print 'myList[%s], %s' % (i, myList[i])

使用enumerate()同时迭代索引和值

for k, v in enumerate(myList):
    print 'myList[k]', v

对字典使用enumerate()返回的是索引和索引对应的key

列表解析

列表解析用来方便的生成一个列表,通过for循环,同时也可以加入条件

myList = [x**2 for x in range(10)]

myList = [x**2 for x in range(10) if not x % 2]


# 最左边的x**2 看作列表的元素,for x in range(10) if not x % 2是生成的规则,后边部分像一个向右运行的机器,吐出来的是x**2这种元素

属性的概念

属性是和数据相关的项目

属性可以是简单的数值,也可以是可执行对象,如函数方法

哪些对象有属性,模块,类,文件,复数

函数参数,引用调用

python是通过引用调用的,也就是说参数传递的都是引用,也就是址传递,不像C语言里的值传递。在函数里改变了变量对象,这个变量实际也改变了

当函数参数是不可变对象时,如数字,元组,用起来还是值传递的效果,函数内的改变不会影响到函数外,因为改变不可变对象意味着创建新的对象,新创建一个对象能改变原变量什么呢

def change(num):
    num = num + 1
    print num

类属性,静态变量,实例属性,__init__()

__init__()方法,实例化类时执行的第一个函数,一般作为对象的一些初始化工作,类似java里的构造函数,与构造函数不同的是init方法不负责创建对象

clss FooClass(object):
    version = 3.0.1 # 这是一个类属性,所有的类实例,类中的所有方法共享
    def __init__(self,nm = 'lpdu'):
        self.name = nm  # 这是一个实例属性,一个实例一个,实例间不能共享

    def showinfo(self):
        print self.version
        print self.name

PEP python增强提案

Python的新特性及各种说明

http://python.org/dev/peps

查看评论

Python核心编程v2.0 第13章习题(下)

13. 大概写了下设想的样式,stock函数中的价格,应该由市场来调用,每日更改。这个地方设成定值,就没写程序验证了。 核心在于用户再去调用当时保存的stock类时,price已经改变就有了利润。...
  • u011010851
  • u011010851
  • 2017-09-18 16:48:30
  • 450

python核心编程-第12章课后练习答案

第一题: 路径搜索和搜索路径。路径搜索和搜索路径之间有什么不同? 解答:前者是指查找某个文件的操作,后者是去查找一组目录。 第二题: 导入属性。假设你的模块mymodule里有一个foo()函...
  • qq_34171520
  • qq_34171520
  • 2016-10-31 12:04:16
  • 774

python核心编程第13章答案

13-6. 几何。创建一个直线/直线段类。除主要的数据属性:一对坐标值(参见上一个练习)外,它还具有长度和斜线属性。你需要覆盖repr()方法(如果需要的话,还有str()方法),使得代表那条直线(...
  • Jay2uuScript
  • Jay2uuScript
  • 2016-03-11 16:14:09
  • 1686

《Python核心编程》第13章 习题

13-3.对类进行定制。写一个类,用来将浮点型值转换为金额。 class MoneyFmt(object): def __init__(self,value=0.0,flag='-'):...
  • birdzb
  • birdzb
  • 2016-12-06 23:36:39
  • 2093

python核心编程-第2章课后练习答案

2-4 使用raw_input()函数得到用户输入。 (a)创建一段脚本使用raw_input()内建函数从用户输入得到一个字符串,然后显示这个用户刚刚键入的字符串。 (b)添加一段类似代码,不过...
  • qq_34171520
  • qq_34171520
  • 2016-11-17 11:24:48
  • 286

python核心编程v2.0 第14章习题答案

part1基础部分到这章就完结了。part2的习题不计划做了。 1.python有4种可调用对象:函数,方法,类以及一些类的实例 eval()语句对表达式求值,表达式可为字符串或内建函数co...
  • u011010851
  • u011010851
  • 2017-09-28 19:37:50
  • 221

《Python核心编程》第14章 习题

14-3.执行环境。创建运行其他Python脚本的脚本。 filename = r'D:\test.py' execfile(filename)14-4. os.system()。调用os.sy...
  • birdzb
  • birdzb
  • 2017-04-01 20:28:24
  • 601

《python核心编程第二版》第二章练习答案解析

2-5循环和数字 a i=1 while i < 11: print i i+=1 b for i in range(11): print i2-6条件判断 m ...
  • u013938528
  • u013938528
  • 2015-04-19 10:57:21
  • 1199

《python核心编程第二版》第三章习题

# -*- coding: utf-8 -*- import os def maketextfile(): ls = os.linesep while True: ...
  • u013938528
  • u013938528
  • 2015-04-20 11:27:09
  • 953

python核心编程v2.0 第四章习题答案

1.python对象具有三种属性:身份,类型,值。身份类似于id,通过id()可以查看。类型决定了对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则,可以使用type()查看。值为对...
  • u011010851
  • u011010851
  • 2017-07-11 17:42:36
  • 293
    个人资料
    等级:
    访问量: 0
    积分: 30
    排名: 0
    文章分类
    文章存档