Python 使用int类型表示整数(正整数或者负整数)使用str类型表示字符串
Py所能表示的整数大小只受限于机器内存,而非固定数量的字节数
字符串可以使用双引号或单引号封装---只要字符串头尾使用的符号是对称的。
由于Py使用的是Unicode编码,因此字符串中的符号不局限于ASCII字符
PY使用[]来存取字符串等序列中的某一项,但是不能利用这种方法将其设为新字符。
如果需要将一个数据项从某种类型转换为另一种类型,那么可以使用语法datatype(item),
例如:
>>>int("45") #str类型转换为int类型
45
>>>str(912) #int类型转换为str类型
'912'
#要素2,对象引用
py使用动态类型机制 也就是说,在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)
type()函数会返回给定数据项的数据类型
#要素3,组合数据类型
元组与列表 可以存储任意数量,任意类型的数据项
元组是固定的,创建之后就不能被改变,列表是可变的,在需要的时候,可以插入或移除数据项。
元组使用逗号进行创建
列表使用[]创建
列表与元组并不真正存储数据项,而是存放数据引用
可以将某种组合数据类型嵌套在其他组合数据类型中,比如创建一个列表,其中的每个元素也是列表,
列表、元组以及大多数Python的其它组合数据类型存储的是对象引用,而非对象本身
len()函数 以某个单独的数据项作为参数,并返回该数据项的长度
所有的PY对象都知道自身的数据类型
在append()方法实现中,第一个参数是调用这个方法的对象本身
PY的函数调用方式
objectName.methodName(arguments)
点操作符用于存取对象的某个属性(属性不仅可以是方法,也可以是任意类型的对象(对象可能也会含有属性))
#要素4 逻辑操作符
身份操作符 is , is not
由于所有的PY变量实际上都是对象引用,有时,询问两个或者更多的对象引用是否都指向相同的对象是有意义的。
is操作符是一个二元操作符,如果左端的对象引用与右端的对象引用指向的是同一个对象,则会返回True
比较操作符
PY比较操作符的一个特别好用的特性是可以进行接连比较例如
>>> a = 9
>>> 0 <= a <= 10
True
PY中可以容易的创建自定义数据类型,并且与已有的数据类型进行很好的整合。
成员操作符:
对数据或集合这一类数据类型,比如字符串,列表或元组,我们可以使用操作符in来测试成员关系,用not in 来测试非成员关系
in操作符使用线性搜索,对于非常大的组合类型,速度可能会比较慢;而对于字典或者集合,in操作可以非常快。
逻辑运算符 and or not
and与or都是用short-circuit逻辑,并返回决定结果的操作数--而不是返回布尔值(除非实际上就是布尔操作数)
如果逻辑表达式本身出现在布尔上下文中,那么结果也为布尔值
not单一操作符在布尔上下文中评估其参数,并总是返回布尔型结果
运算符 逻辑表达式 描述 示例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
#要素5 控制流语句
布尔表达式实际上就是对某对象进行布尔运算,并可以产生一个布尔值结果(True或False)。在 PY中,预定义为常量False的布尔表达式、特殊对象None、空序列或集合(比如,空字符串、列表或元组)、值为0的数值型数据项等的布尔结果为False,其他的则为True。创建自定义数据类型时,我们可以自己决定这些自定义数据类型在布尔上下文中的返回值。
在PY中,一块代码称为suite,由于PY中某些语法要求存在一个suite,PY就提供了关键字pass,pass实际上是一条空语句,不进行任何操作。
IF语句
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
...
elif boolean_expressionN:
suiteN
else:
else_suit
WHILE语句
while boolean_expression:
suite
FOR...IN 语句
for variable in iterable:
suite
基本的异常处理
PY的很多函数和方法都会产生异常,并将其作为发生错误或重要事件的标志,与PY的其它对象一样,异常也是一个对象,转换为字符串时(比如,打印时)异常会产生一条信息文本。
try:
try_suite
except exception1 as variable1:
exception_suite1
...
except exceptionN as variableN:
exception_suiteN
#要素6 算术操作符
a+=8实际上与a=a+8是一样的,然而这里有两个重要的地方
第一点要记住的是,int数据类型是固定的,也就是说,一旦赋值,就不能改变,因此,
对固定的对象使用增强的赋值操作符时,实际上是创建一个对象来存储结果,之后,目标对象引用重新绑定,以便引用上面创建的结果对象,而不再引用以前的对象。
PY重载了操作符 + 与 +=,将其分别用于字符串与列表,前者表示链接,后者表示追加字符串并扩展列表。
>>> name = "sdf"
>>> name
'sdf'
>>> name + "wqe"
'sdfwqe'
>>> name += "dvcs"
>>> name
'sdfdvcs's
与整数类似,字符串也是固定的,因此,当使用+=时,会创建一个新字符串,并且表达式左边的对象引用将重新绑定到新字符串,
列表支持同样的语法,但列表是可变的,使用+= 后,原始的列表对象会被修改,这个过程不会创建新的对象,也不会对对象引用重新绑定。
>>> seed = ['aa','cc','ss','zz']
>>> seed
['aa', 'cc', 'ss', 'zz']
>>> seed+="ff"
>>> seed
['aa', 'cc', 'ss', 'zz', 'f', 'f']
>>> seed.append("ee")
>>> seed
['aa', 'cc', 'ss', 'zz', 'f', 'f', 'ee']
#要素7,输入输出
PY提供了内置的input()函数,用于接收来自用户的输入。这一函数需要一个可选的字符串参数(并将其在控制台上打印),之后等待用户输入响应信息或按Enter键来终止。如果用户不输入任何文本,而只是按Enter键,那么input函数会返回一个空字符串;否则,会返回一个包含了用户输入内容的字符串,而没有任何终止符。
#要素8,函数的创建与调用
函数也是对象,因此可以存储在组合数据类型中,并作为参数传递给其他函数
创建函数的通常语法格式:
def functionName(arguments):
suite
有多个参数的话,就必须用逗号进行分隔,PY有一个返回值默认为None,除非我们使用语法return value来从函数返回,返回值可以是一个值,也可以是一组值
在编写交互式的控制台应用程序时,一个频繁的需求是从用户处获取整数,下面给出了一个完成这一功能的函数
def get_int(msg):
while True:
try:
i = int(input(msg))
return i
except ValueError as err:
print(err)
age = get_int("enter your age:")
print("age is ",age)
运行结果
enter your age:5
age is 5
Python模块实际上就是包含Python代码的.py文件。要使用某个模块内的函数功能,必须先导入该模块
例如
import sys #sys是文件名
下面看一个导入模块的实例, random模块
>>> import random
>>> x = random.randint(1,6)
>>> y = random.choice(["apple","banana","cherry","durian"])
>>> print(x,y)
3 apple