第2章 快速入门
1、程序输出
>>>mystr = 'hello world' >>>mystr # 仅用变量名,显示的是该对象的字符串表示,而不仅仅是字符串本本身。引号表示刚输出的变量的值是一个字符串 'hello world' >>>print(mystr) # print()语句调用str()函数显示对象,而交互式编辑器则调用repr()函数来显示对象。 hello world
>>>_ # 下划线(_)在解释器中表示最后一个表达式的值
'hello world'
>>>print("%s is No.%d" % ('China', 1)) # 使用字符串格式操作符%(常用的%s表示由一个字符串来替换,%d表示由一个整型来替换,%f表示由一个浮点型来替换)
China is No.1
2、程序输入
Python3.x中已修改为input()函数,其接受任意输入,将所有输入默认为字符串处理, 并返回字符串类型。
>>>myname = input("请输入姓名:") 请输入姓名:>? 金豆子 >>>print(myname) 金豆子
3、操作符
3.1 标准算术操作符
(1)单斜杠为浮点数除法,返回浮点结果 print(5/3) == 1.666667 (2)双斜杠为整数除法,返回不大于结果的一个最大的整数 print(5//3) == 1
操作符的优先级:+和-的最低,*、/、//、%的较高,单目操作符+和-优先级更好,乘方(**)的优先级最高。
3.2 标准比较操作符
比较运算根据表达式的值的真假返回布尔值
<、<=、>、>=、==、!=
>>>6>2 True >>>6<=2 False
3.3 逻辑操作符
and、or、not
使用逻辑操作符可以将任意表达式连接在一起,并得到一个布尔值
>>>2 < 4 and 2 == 4 False >>>2 >1 or 2 >= 3 True >>>not 7 <= 6 True >>>3 < 4 < 5 True
4、变量和赋值
变量名有字母、数字、下划线(_)组成,且以字母或下划线(_)开始,对大小写敏感。
5、数字
Python支持五种基本数字类型:有符号整型(int)、长整型(long)、布尔值(bool)、浮点型(float)、复数(complex)。
布尔值是特殊的整型,比如将布尔值与数字相加,则True会被当成整型值1(True+1=2),而False会被当成整型值0(False+1=1)
6、字符串
Python中字符串被定义为引号之间的字符集合。
使用索引操作符([])和切片操作符([:])可以得到子字符串。第一个字符的索引是0,最后一个字符的索引是-1。
加号(+)用于字符串的连接运算,星号(*)则用于字符串重复。
>>>'hello' + 'world' 'helloworld' >>>'hello'*2 'hellohello'
7、列表和元组
可以将列表和元组当成普通的“数组”。和数组一样,通过从0开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
列表元素用中括号([])包裹,元素的个数和值可以改变。
元组元素用小括号(())包括,不可以更改(尽管它们的内容可以)。元组可以看成是只读的列表。通过切片运算([]和[:])可以得到自己。
>>> a = (1, 2, 3) >>> a[0] 1 >>> a[:] (1, 2, 3) >>> a[0] = 4 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> a = (4, 5) >>> a[0] 4
8、字典
字典是Python中的映射数据类型,由键-值(key-value)对构成。
几乎所有类型的Python对象都可以用作键,不过一般还是以数字或者字符串最为常用。
值可以是任意类型的Python对象,字典元素用大括号({})包裹。
>>> info = {'name': 'lily', 'age': 10} >>> info {'name': 'lily', 'age': 10} >>> info['name'] 'lily' >>> info['age'] = 20 >>> info {'name': 'lily', 'age': 20} >>> for key, value in info.items(): ... print(key, value) ... name lily age 20 >>>
9、if语句
标准的if条件语句的语法如下:
if expression: if_suite
如果表达式的值非0或者为布尔值True,则代码组if_suite被执行;否则就去执行下一条语句。
python还支持elif(意指“else-if”)语句,语法如下:
if expression1: if_suite elif expression2: elif_suite else: else_suite
10、while循环
标准while条件循环语句的语法类似if。
while expression: while_suite
语句while_suite会被连续不断地循环执行,直到表达式的值变为0或False,接着Python会执行下一句代码。
>>> counter = 0 >>> while counter < 3: ... print("loop #%d" % counter) ... counter += 1 ... loop #0 loop #1 loop #2 >>>
11、for循环和range()内建函数
Python中的for接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素。
>>> for item in ['a', 'b', 'c']: ... print(item) ... a b c >>> for value in range(5): ... print(value) ... 0 1 2 3 4 >>>
range()函数经常和len()函数一起用于字符串索引。
>>> foo = 'abc' >>> for i in range(len(foo)): ... print(foo[i]) ... a b c >>> for i, ch in enumerate(foo): # enumerate()实现了索引和循环,i为索引,ch为 循环元素 ... print("索引:",i, "元素值:",ch) ... 索引: 0 元素值: a 索引: 1 元素值: b 索引: 2 元素值: c >>>
12、列表解析
>>> squ = [x ** 2 for x in range(4)] >>> squ [0, 1, 4, 9] >>> sqdEvents = [x ** 2 for x in range(8) if not x % 2] >>> sqdEvents [0, 4, 16, 36] >>> sqdEvents = [x ** 2 for x in range(8) if x % 2]
>>> sqdEvents
[1, 9, 25, 49]
13、错误和异常
try: try_suite except Exception as e: raise e else: else_suite
若try_suite语句为真,则执行else_suite,否则为raise e抛出异常。
14、函数
Python中的函数使用小括号()调用。函数在调用之前必须先定义。如果函数中没有return语句,就会自动返回None对象。
# 定义函数 def function_name([arguments]): function_suite
函数的参数可以有默认值。它表示函数调用时如果没有提供这个参数,它就取默认值为参数。
15、类
使用class关键字定义类。可以提供一个可选的父类或基类。
class行之后是可选的文档字符串、静态成员及方法定义。
class FooClass(): '''文档字符串''' version = 1.0 # 静态成员 def __init__(self, name='Jony'): '''类似构造器''' self.name = name # 类实例属性,仅在类实例中存在。self是类实例自身的引用。如其它面向对象语言的this标识符 def func1(self): '''方法定义''' print(self.version) # 引用静态变量 def func2(self): print(self.name)
def func3(self):
print(self.__class__.name) # 表示实例化它的类的名字 foo = FooClass() # 创建类实例 foo.func1() foo.func2()
foo.func3()
# 输出
1.0
Jony
FooClass
当一个类实例被创建时,__init__()方法会自动执行,在类实例创建完毕后执行,类似构造器。它的目的是执行一些该对象的必要初始化工作。