Python第二章
Posted 李栋94
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python第二章相关的知识,希望对你有一定的参考价值。
1. 下划线_代表最后一个表达式的值。注意:只在解释器中有用,既显示上一次的操作结果。
2. Print语句可以用%进行格式控制,与C相似。
如:
>>> print “%s is number %d!” % (“python”, 1)
Python is number 1!
3. Python 非常灵活,所以即使你将数字传递给 %s,也不会像其他要求严格的语言一样引发严重后果。
4. 符号 >> 用来重定向输出,下面这个例子将输出重定向到标准错误输出:
import sys
print >> sys.stderr, ‘Fatal error: invalid input!‘
import sys
print >> sys.stderr, ‘Fatal error: invalid input!‘
下面是一个将输出重定向到日志文件的例子:
logfile = open(‘/tmp/mylog.txt‘, ‘a‘)
print >> logfile, ‘Fatal error: invalid input!‘
logfile.close()
2.1.3 内建函数 input()
从用户那里得到数据输入的最容易的方法是使用 input()内建函数。它读取标准输入,并将读取到的数据赋值给指定的变量。
你可以使用 int() 内建函数将用户输入的字符串转换为整数。
例子:
>>> user = input(‘Enter login name: ‘)
Enter login name: root
>>> print ‘Your login is:‘, user
Your login is: root
上面这个例子只能用于文本输入。 下面是输入一个数值字符串(并将字符串转换为整数)的例子:
>>> num = raw_input(‘Now enter a number: ‘)
Now enter a number: 1024
>>> print ‘Doubling your number: %d‘ % (int(num) * 2)
Doubling your number: 2048
Raw的意思是“写后读”。
核心笔记:从交互式解释器中获得帮助在学习 Python 的过程中,如果需要得到一个生疏函数的帮助,只需要对它调用内建函数help()。通过用函数名作为 help()的参数就能得到相应的帮助信息:
>>> help(input)
Python 使用 # 符号标示注释,从 # 开始,直到一行结束的内容都是注释。
2.2 运算符
2.2.1 标准运算符
+ - * / 标准运算符, 与C一样。注意,/ 这里叫地板除(取比商小的最大整数)。
% 取余。
// 浮点除法 取四舍五入。总是执行真正的除法。
** 乘方运算符,优先级按数学规律。
根据真假返回BOOL值的标准比较运算符:
< <= > >= == != <>(被淘汰)
真返回True 假返回False 注:大小写敏感。
逻辑运算符:and = && or = || not = !
编码风格:括号在 Python语言中不是必须存在的, 不过为了可读性, 使用括号总是值得的。
2.3 变量和赋值
变量名以字母开头。
Python 是动态类型语言, 也就是说不需要预先声明变量的类型。 变量的类型和值在赋值那一刻被初始化。变量赋值通过等号来执行。
支持增量赋值:
n = n * 10
将上面的例子改成增量赋值方式就是:
n *= 10
Python 不支持 C 语言中的自增 1 和自减 1 运算符。
2.4 数字
1. Python 支持五种基本数字类型,其中有三种是整数类型。
int (有符号整数)
long (长整数)
bool (布尔值)
float (浮点值)
complex (复数)
2.注意:Python 长整数仅受限于用户计算机的虚拟内存总数。从 Python2.3 开始,再也不会报整型溢出错误, 结果会自动的被转换为长整数。
3.bool值:与C相同 1与0
4. decimal, 用于十进制浮点数。
2.5字符串
1.Python 支持使用成对的单引号或双引号,
三引号(三个连续的单引号或者双引号)可以用来包含特殊字符
2.使用索引运算符( [ ] )和切片运算符( [ : ] )可以得到子字符串。
3.字符串有其特有的索引规则:第一个字符的索引是 0, 最后一个字符的索引是 -1、
4.注意:字符串不支持通过索引进行单个赋值(或更改原值)。既:字符串是不可变的。
2.6 列表和元组
列表和元组可以当成普通的数组。它能保存任意数量任意类型的 Python 对象。
下标索引从0开始(与C相同)。
列表和元组的区别:
1》列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。
2》元组可以看成是只读的列表。
3》列表通过切片运算( [ ] 和 [ : ] )可以得到子集,与字符串使用方法一样。结果为列表,其值可以改变。
4》元组也可以进行切片运算,得到的结果仍是元组。值仍旧是只读。
2.7 字典
1. 字典是 Python 中的映射数据类型,类似于关联数和哈希表,由键-值(key-value)对构成。
2. 几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者字符串最为常用。
3. 值可以是任意类型的 Python 对象,字典元素用大括号({ })包裹。
4. 例子:
>>> aDict = {‘host‘: ‘earth‘} # create dict
>>> aDict[‘port‘] = 80 # add to dict
>>> aDict
{‘host‘: ‘earth‘, ‘port‘: 80}
>>> aDict.keys()
[‘host‘, ‘port‘]
>>> aDict[‘host‘]
‘earth‘
>>> for key in aDict:
... print key, aDict[key]
...
host earth
port 80
2.8 代码块及缩进对齐
代码块通过缩进对齐表达代码逻辑而不是使用大括号。
2.9 if语句
1. 标准 if 条件语句的语法如下:
if expression:
if_suite
如果表达式的值非 0 或者为布尔值 True, 则代码组 if_suite 被执行; 否则就去执行下一条语句。
代码组是一个 Python 术语, 它由一条或多条语句组成,表示一个子代码块。
注意:条件表达式不需要用括号括起来。
If …… Else 组合
if expression:
If_suite
else:
else_suite
Python 还支持 elif (意指 “else-if ”)语句,语法如下:
if expression1:
if_suite
elif expression2:
elif_suite
else:
else_suite
注意:python没有switch……case语句。
2.10 while循环
使用缩进来分隔每个子代码块,语法为:
while expression:
while_suite
2. while语句有一个可选的else从句.
2.11 for循环和range()内建函数
2.11.1 for循环
1. 类似于shell 脚本里的 foreach 迭代, 以可迭代对象作为参数,每次迭代其中一个元素。
2. 举例:
>>> for a in alist:
print a
将alist(事先定义的表格)内容全部打印出来。
在print后面增加逗号(,)可以取消自动换行。
2.11.2 for循环利用range()
当我们循环范围可变时,可以使用内建函数range()。 range()接受数组范围,生成一个列表。
例子:
>> for eachNum in range(3):
...
print eachNum
...
0
1
2
For循环输出字符串中的每个元素:
>>> foo = ‘abc‘
>>> for c in foo:
...
print c
...
a
b
C
>>> foo = ‘abc‘
>>> for i in range(len(foo)):
... print foo[i], ‘(%d)‘ % i
...
a (0)
b (1)
c (2)
For的另一个例子:用到else项
#!/usr/bin/python
# Filename: for.py
for i in range(1, 5):
print i
else:
print ‘The for loop is over‘
输出
$ python for.py
1
2
3
4
The for loop is over
从这里看出:1)else只执行一次。2)range是左闭右开[ , )型范围内建函数。3)range(1,5)给出序列[1, 2, 3, 4]
2.11.3 range()
默认地,range的步长为1。如果我们为range提供第三个数,那么它将成为步长。例如,range(1,5,2)给出[1,3]。记住,range 向上 延伸到第二个数,即它不包含第二个数。
2.11.3 enumerate() 列举内建函数
1. Enumerate()函数同时获取循环的索引和元素。
>>> for i, ch in enumerate(foo):
... print ch, ‘(%d)‘ % i
...
a (0)
b (1)
c (2)
2.12 列表解析
1.在一行中使用一个 for 循环将所有值放到一个列表当中:
>>> squared = [x ** 2 for x in range(4)]
>>> for i in squared:
... print i
0
1
4
9
可以在列表解析中进行判断赋值。
>>> sqdEvens = [x ** 2 for x in range(8) if not x % 2] #求平方
>>>
>>> for i in sqdEvens:
... print i
0
4
36
16
2.13 文件和内建函数open(), file()
2.13.1 打开文件
open()
handle = open(file_name, access_mode = ‘r‘)
其中
file_name 文件名称
Access_mode 为打开方式 ‘r‘ 表示读取,‘w‘ 表示写入, ‘a‘ 表示添加。其它可能用到的标声还有 ‘+‘ 表 示读写, ‘b‘表示二进制访问。
返回值:文件句柄。
关于属性:
核心笔记:什么是属性?
属性是与数据有关的项目, 属性可以是简单的数据值, 也可以是可执行对象, 比如函数
和方法。哪些对象拥有属性呢? 很多。 类, 模块, 文件还有复数等等对象都拥有属性。
我如何访问对象属性? 使用句点属性标识法。 也就是说在对象名和属性名之间加一个句
点: object.attribute
File()
功能等同于 open(), 不过 file()
这个名字可以更确切的表明它是一个工厂函数。(生成文件对象)类似 int()生成整数对象,dict()生成字典对象。
2.14 break语句和continue
Break终止循环。
一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。
3. Continue与C相同。对于while和for都适用。
1. 是什么:模块是一种组织形式, 它将彼此有关系的 Python 代码组织到一个个独立文件当中。模块可以包含可执行代码, 函数和类或者这些东西的组合。 2. 说明:1》模块的名字就是不带 .py 后缀的文件名。 2》使用 import 语句导入这个模块来使用。 访问模块: import module_name 导入: 一旦导入完成, 一个模块的属性(函数和变量)可以通过熟悉的 .句点属性标识法访问。 module.function() module.variable 例子:调用sys模块:(自己写的) >>> import sys >>> sys.platform ‘linux2‘ >>> sys.stdout.write(‘hello!‘) hello! >>> sys.version
以上是关于Python第二章的主要内容,如果未能解决你的问题,请参考以下文章