Python核心编程--学习笔记--2--Python起步(上)
2013-11-24 19:11
591 查看
本章是对Python的主要特性做一个快速介绍。
主提示符(>>>):解释器在等待输入下一个语句;
次提示符(...):解释器在等待输入当前语句的其它部分。
Python有两种方式来完成要求:
语句:使用关键字来组成命令,可以有输出,也可以没有;
表达式:没有关键字,可以是算术表达式,也可以是函数。
下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串:
print的格式化输出——%s:字符串(其实任何类型都可以用%s输出),%d:整数,%f:浮点数。
符号>>用来重定向print输出:
内建函数int():可以将数值字符串转换成整数值,这样才可以对它进行数学运算
内建函数help():将陌生函数名作为其参数,可以得到帮助信息:
特殊注释:文档字符串:在模块、类或者函数的起始添加一个字符串,起到在线文档的功能。对于函数,调用help即显示该字符串。
标准比较运算符,返回布尔值True或者False:
逻辑运算符:
逻辑运算符可以将任意表达式连接在一起:
与C语言不同,Python是动态类型语言,不需要预先声明变量的类型。变量要定义之后才能使用,变量的类型和值在赋值那一刻被初始化(之后类型和值都可以变化)。
变量支持复合赋值,即 +=,-= 等等。
不支持自增(++)和自减(--)运算符。因为+和-是单目运算符,Python会将--n解释为-(-n),从而仍然得到n。n--为语法错误。
使用索引运算符([ ])和切片运算符([ : ])可以得到子字符串,字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是-1。
加号(+)用于连接字符串,星号(*)用于字符串重复。
列表元素用中括号([ ])包裹,元素的个数及元素的值可以改变。
元组元素用小括号(( ))包裹,元素的个数及元素的值不可以更改(值的内容可以更改,比如元组中包含列表,该列表元素不能指向其他列表,但是列表元素的内容可以改变)。元组可以看成是只读的列表。
列表/元组都可以通过切片运算([ ]和[ : ])得到子集,其子集仍然是列表/元组,这一点与字符串的使用方法一样。
键可以使用所有不可变类型(所以列表不可以)的对象(一般使用字符串或数字),值可以是任意对象,字典用({ })包裹。
上面每次print都输出到新的一行,因为print语句默认给每一行添加一个换行符。在print语句最后添加一个逗号(,)即可输出到同一行:
由上可看出,带逗号的print语句会在输出元素之间自动添加一个空格;不带有任何参数的print语句,会输出一个换行符。可以通过指定输出格式,来指定或者避免空格。
内建函数range()接受一个数值范围,生成一个列表,可以实现计数循环。
range()函数经常和len()函数一起用于字符串索引:
字符串也可以直接使用for循环输出元素:
以上要么循环索引,要么循环元素。这导致了enumerate()函数的推出(Python2.3 新增)。 它同时做到了这两点:
也可以挑选符合要求的值加入列表:
1 介绍
交互执行时,解释器有两种提示符:主提示符(>>>):解释器在等待输入下一个语句;
次提示符(...):解释器在等待输入当前语句的其它部分。
Python有两种方式来完成要求:
语句:使用关键字来组成命令,可以有输出,也可以没有;
表达式:没有关键字,可以是算术表达式,也可以是函数。
2 程序输出,print语句
可以用print语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值。>>> myString = 'Hello World!' >>> print myString Hello World! #没有引号 >>> myString 'Hello World!' #有引号
下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串:
>>> _ Hello World!
print的格式化输出——%s:字符串(其实任何类型都可以用%s输出),%d:整数,%f:浮点数。
>>> print "%s is number %d!" % ("Python", 1) Python is number 1!
符号>>用来重定向print输出:
logfile = open('/tmp/mylog.txt', 'a') print >> logfile, 'Fatal error: invalid input!' logfile.close()
3 程序输入,内建函数raw_input()
raw_input():从标准输入读取一个字符串,自动删除串尾的换行字符,并将读取到的数据赋值给指定的变量。>>> user = raw_input('Enter login name: ') Enter login name: root >>> print 'Your login is:', user Your login is: root
内建函数int():可以将数值字符串转换成整数值,这样才可以对它进行数学运算
>>> num = raw_input('Now enter a number: ') Now enter a number: 1024 >>> print 'Doubling your number: %d' % (int(num) * 2) Doubling your number: 2048
内建函数help():将陌生函数名作为其参数,可以得到帮助信息:
>>> help(raw_input) Help on built-in function raw_input in module __builtin__: . . .
4 注释
普通注释:以#开始,直到单行结束。特殊注释:文档字符串:在模块、类或者函数的起始添加一个字符串,起到在线文档的功能。对于函数,调用help即显示该字符串。
5 运算符
标准算术运算符:+ - * / #Python3.0后为标准除;3.0之前整数为地板除,浮点数为标准除 // #整数和浮点数都是地板除 % #浮点数也可以求余 ** #幂运算
标准比较运算符,返回布尔值True或者False:
< <= > >= == != <> #不等号,逐渐被淘汰
逻辑运算符:
and or not
逻辑运算符可以将任意表达式连接在一起:
>>> 3<4 and 4<5 True >>> 3<4<5 #等价于上面的表达式 True
6 变量和赋值
与C语言一样,变量名以字母或下划线(_)开头,其它的字符可以是数字,字母或下划线。与C语言不同,Python是动态类型语言,不需要预先声明变量的类型。变量要定义之后才能使用,变量的类型和值在赋值那一刻被初始化(之后类型和值都可以变化)。
变量支持复合赋值,即 +=,-= 等等。
不支持自增(++)和自减(--)运算符。因为+和-是单目运算符,Python会将--n解释为-(-n),从而仍然得到n。n--为语法错误。
7 数字
int (有符号整数) 84 -127 017 0x1f long (长整数) 1234567L -12345l 0xADCFAEBL #范围远超C语言,仅受限于计算机虚拟内存 bool (布尔值) True(=1) False(=0) #可以和整数直接进行运算 float (浮点值) 3.14 4.2E-10 -90. complex (复数) 6.23+1.5j -12-875J
8 字符串
Python支持成对的单引号或者双引号(单/双引号内可以包含成对的双/单引号),三引号(三个连续单/双引号)可以包含特殊字符(如换行符)。>>> str1 = 'hello' >>> str2 = "world" >>> str3 = '''Hello ... World!''' >>> print str1, str2 hello world >>> print str3 Hello World! >>> str3 'Hello\nWorld!'
使用索引运算符([ ])和切片运算符([ : ])可以得到子字符串,字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是-1。
>>> str = "Python is cool!" >>> str[0] 'P' >>> str[-1] '!' >>> str[4:] 'on is cool!' >>> str[-3:] 'ol!' >>> str[:3] #从str[0]开始,不包括str[3] 'Pyt' >>> str[:-1] #不包括str[-1] 'Python is cool'
加号(+)用于连接字符串,星号(*)用于字符串重复。
>>> str1 = 'abc' >>> str2 = "DEF" >>> str1 + str2 'abcDEF' >>> str1 * 2 'abcabc'
9 列表和元组
列表和元组可以视为普通的“数组”,能保存任意数量任意类型的Python对象。通过从0开始的数字索引访问元素,可以存储不同类型的对象。列表元素用中括号([ ])包裹,元素的个数及元素的值可以改变。
>>> list1 = [1,2,3,'abc'] >>> list1 [1, 2, 3, 'abc'] >>> list1[3] = 'def' >>> list1 [1, 2, 3, 'def']
元组元素用小括号(( ))包裹,元素的个数及元素的值不可以更改(值的内容可以更改,比如元组中包含列表,该列表元素不能指向其他列表,但是列表元素的内容可以改变)。元组可以看成是只读的列表。
>>> list2 = [4,5,6,'xyz'] >>> tuple1 = (11,12,13,list1) >>> tuple1 (11, 12, 13, [1, 2, 3, 'def']) >>> tuple1[3] = list2 #更改元组元素的值,错误 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> tuple1[3][3] = 'python' #更改元组中列表元素的内容,正确 >>> tuple1 (11, 12, 13, [1, 2, 3, 'python'])
列表/元组都可以通过切片运算([ ]和[ : ])得到子集,其子集仍然是列表/元组,这一点与字符串的使用方法一样。
10 字典
类似于关联数组或则哈希表,由键-值(key-value)对组成。键可以使用所有不可变类型(所以列表不可以)的对象(一般使用字符串或数字),值可以是任意对象,字典用({ })包裹。
>>> aDict = {'host': 'earth'} #创建字典 >>> aDict['port'] = 80 #添加元素 >>> aDict {'host': 'earth', 'port': 80} >>> aDict.keys() ['host', 'port'] >>> aDict['host'] 'earth' >>> for key in aDict: ... print key, aDict[key] ... host earth port 80
11 代码块即缩进对齐
Python不使用花括号来包裹代码块,而使用缩进对齐来表达代码逻辑。12 if语句
if expression: #expression值为True或者非0时,条件成立 if_suite
if expression: if_suite else: else_suite
if expression1: if_suite elif expression2: #else if elif_suite else: else_suite
13 while循环
while expression: while_suite
14 for循环和range()内建函数
Python的for循环和C的计数循环不一样,更像是shell脚本里的foreach迭代。它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素。>>> print 'I like to use the Internet for:' I like to use the Internet for: >>> for item in ['e-mail', 'net-surfing', 'homework', 'chat']: ... print item ... e-mail net-surfing homework chat
上面每次print都输出到新的一行,因为print语句默认给每一行添加一个换行符。在print语句最后添加一个逗号(,)即可输出到同一行:
>>> for item in ['e-mail', 'net-surfing', 'homework', 'chat']: ... print item, ... print e-mail net-surfing homework chat
由上可看出,带逗号的print语句会在输出元素之间自动添加一个空格;不带有任何参数的print语句,会输出一个换行符。可以通过指定输出格式,来指定或者避免空格。
内建函数range()接受一个数值范围,生成一个列表,可以实现计数循环。
>>> for eachNum in range(3): #不包括3 ... print eachNum ... 0 1 2
range()函数经常和len()函数一起用于字符串索引:
>>> str = 'abcd' >>> for i in range(len(str)): ... print '%d' % i, str[i] ... 0 a 1 b 2 c 3 d
字符串也可以直接使用for循环输出元素:
>>> for c in str: ... print c ... a b c d
以上要么循环索引,要么循环元素。这导致了enumerate()函数的推出(Python2.3 新增)。 它同时做到了这两点:
>>> for i,ch in enumerate(str): ... print "%d" % i, str[i] ... 0 a 1 b 2 c 3 d
15 列表解析
可以在一行中使用一个for循环将所有值放到一个列表当中:>>> squared = [x ** 2 for x in range(4)] >>> squared [0, 1, 4, 9]
也可以挑选符合要求的值加入列表:
>>> squared = [x ** 2 for x in range(8) if not x % 2] #if后面成立才加入列表 >>> squared [0, 4, 16, 36]
相关文章推荐
- Python核心编程--学习笔记--2--Python起步(下)
- Python-核心编程-学习笔记
- python核心编程学习笔记-2016-08-02-01-读取文件的函数中的文件指针问题
- python 核心编程学习笔记(第3章) 对应Let's-python视频第4集
- python核心编程学习笔记-2016-08-15-01-左加法__add__和右加法__radd__
- Python核心编程--学习笔记--6--序列(上)字符串
- python 核心编程学习笔记(第4章) 对应Let's-python视频第5集
- 学习python核心编程-第三章-课后习题笔记
- Python核心编程--学习笔记--3--Python基础
- Python核心编程--学习笔记--4--Python对象
- python核心编程学习笔记-pyt…
- Python核心编程--学习笔记--1--Python简介
- Python核心编程--学习笔记--5--数字
- python核心编程学习笔记-2016-08-28-01-习题18-4和习题18-9
- python核心编程学习笔记-(第1天)-运行python
- python核心编程学习笔记-2016-08-05-01-习题9-19
- python核心编程学习笔记-2016-09-25-01-python扩展
- python核心编程学习笔记-2016-09-18-01-数据库编程(三)
- python核心编程学习笔记-2016-07-23-02-切片索引
- Python核心编程--学习笔记--7--字典和集合