第一章快速改造:基础知识1.2交互式解释器在IDLE编辑器,在提示符后输入help然后按回车;也可以按下F1获得有关IDLE的帮助信息1.4数字和表达式1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数点的数字参与计算。
另外改变除法的执行方式:from_future_import division//可以实现整除,1.0//2.0返回0.0%取余数;**幂运算;>>> 1/2>>> 1.0/20.5>>> 1.0//2.00.0>>> 10%31>>> 9**(1/2)1>>> 9**(1.0/2)3.0>>> 2.75%0.50.25>>> -9%43>>> -3%21>>> -3/2-21.4.1长整数普通整数不能大于2147483647也不能小于-2147483648,若更大的数,可以使用长整数。
长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。
1.4.2十六进制和八进制0XAF返回175 ,十六进制;010返回8,八进制>>> 0xAF175>>> 01081.5变量包含字母、数字和下划线。
首字母不能是数字开头。
1.8函数Pow计算乘方:pow(2,3),2**3均返回8;pow等标准函数称为内建函数。
Abs(-10)求绝对值,返回10;round(1.0/2.0)返回1.0,把浮点数四舍五入为最接近的整数值。
>>> pow(2,3)8>>> 2**38>>> abs(-10)10>>> round(1.0/2.0)1.0>>> round(8.06,2)8.06>>> round(8.06,1)8.11.9模块import>>> import math>>> math.floor(8.8) 向下取整8.0>>> math.ceil(8.8)向上取整9.0>>> int(math.ceil(32.1))33>>> int(32.9)32>>> flo=math.floor>>> flo(33.9)33.0使用了from 模块import 函数,这种方式的import命令之后,就可以直接使用函数,而不需要使用模块名最为前缀了。
但是要注意在不同模块引用,可能导致函数冲突。
>>> from math import sqrt>>> sqrt(9)3.0>>>1.9.1 cmath和复数nan- not a number返回的结果Cmath即complex math复数模块>>> import cmath>>> cmath.sqrt(-1)1j返回的1j是个虚数,虚数以j结尾;这里没有使用from cmath import sqrt,避免与math 的sqrt冲突。
1.10.3注释符号:#1.11字符串,使用”\”可以进行转义。
1.11.2拼接字符串>>> 'Hello, ' 'World''Hello, World'>>> 'Hello,' 'World''Hello,World'>>> 'Hello, '+'World''Hello, World'>>> 'Hello, '+5Traceback (most recent call last):File "<pyshell#43>", line 1, in <module>'Hello, '+5TypeError: cannot concatenate 'str' and 'int' objects>>>需要保证两边是一样的字符串,而有其他格式要报错的1.11.3字符串表示str和repr- 两个均为函数,事实上str是一种类型Str会将值转换为合理形式的字符串。
另外一种是通过repr函数,创建一个字符串。
Repr(x)也可以写作`x`实现(注意:`是反引号),python3.0中已经不适用反引号了>>> print 'hello,world'hello,world>>> print repr('hello,world')'hello,world'>>> print str('hello,world')hello,world>>> print 1000L1000>>> 1000L1000L>>> print repr(1000L)1000L>>> print str(1000L)1000>>> tmp=42>>> print 'The number is:'+tmpTraceback (most recent call last):File "<pyshell#55>", line 1, in <module>print 'The number is:'+tmpTypeError: cannot concatenate 'str' and 'int' objects >>> print 'The number is:'+`tmp`The number is:42>>> print 'The number is:'+str(tmp)The number is:42>>> print 'The number is:'+repr(tmp)The number is:421.11.4 input和raw_input的比较>>> name=input("What's your name:") What's your name:GumbyTraceback (most recent call last):File "<pyshell#60>", line 1, in <module>name=input("What's your name:") File "<string>", line 1, in <module> NameError: name 'Gumby' is not defined >>> name=input("What's your name:") What's your name:'Gumby'后面输入的字符串增加了引号不报错。
>>> input('Enter a number:')Enter a number:33>>> name=input("What's your name:") What's your name:'Gumby'>>> raw_input("What's your name:") What's your name:Gumby'Gumby'>>> raw_input("What's your name:") What's your name:Gumby'Gumby'>>> raw_input('Enter a number:')Enter a number:3'3'>>>1.11.5长字符串、原始字符串和unicode(1)长字符串使用三引号;转义的反斜杠用于行尾>>> print 'hello, \world!'hello, world!>>> print '''hello,world!'''hello,world!>>> 1+2+3\+410(2)原始字符串,对于反斜线并不会特殊对待,以r开头,注意字符串尾部>>> print 'c:\nowhere'c:owhere>>> print r 'c:\nowhere'SyntaxError: invalid syntax>>> print 'c:\nowhere'c:owhere>>> print r'c:\nowhere'c:\nowhere>>> print r"This is illegal\"SyntaxError: EOL while scanning string literal >>> print r"This is illegal\\"This is illegal\\>>> print r"This is illegal" "\\"This is illegal\(3)Unicode在字符串前增加前缀U>>> print u'hello, world'hello, world第二章列表和元组序列中的每个元素被分配一个序号-- 即元素的位置,也被称为索引。