一、python操作符
1.程序的输入与输出
user = raw_input("Enter login name: ")
print(user)
在python3中是使用input函数
2.运算符
(1)+ - * / // % **
// 是用作浮点除法(对结果进行四舍五入)
** 是乘方运算
(2)< <= > >= == != <> //!= 与 <>都表示不等于
这些比较操作符返回的结果是True or False
(3)逻辑操作符
and not or
(4)增量运算
n=n*10 可以改为 n*=10
但python不支持C语言中的自增1和自减1操作符,这是因为+和-也是单目操作符,Python会将--n解释为-(-n)从而得到n,同样++n的结果也是n
二.数据类型
1.数字
长整型 布尔型 浮点数 复数
2.字符串
加号用于字符串的连接运算,星号(*)则用于字符串重复
3.列表解析
swd = [x ** 2 for x in range(8) if not x %2 ]
print(swd)
4.关于换行:
常用的换行符是 \ ,但是在以下情况,可以单一语句跨多行,例如:在含有小括号、中括号、花括号时可以多行书写,而不需要换行符,另外就是三引号包括下的字符串可以跨行书写
5.关于赋值操作
(1)链式赋值
x=1
y=x=x+1
但y=(x=x+1)是错误的,因为Python的赋值语句不会返回值
(2)增量赋值
x=x+1 等价于 x+=1
对于x=x+1实际上对分配了一个新的x的对象,无论x是可修改的还是不可修改的对象
对于x+=1,如果x是可修改对象,则实际上是就地处理一次,如果x是不可修改对象,则和x=x+1一样,新分配了一个对象
(3)多重赋值
x=y=z=1
(4)多元赋值
(x,y,z)=(1,2,'a string') //其中等号两边是一个元组
(5)值交换
通过多元赋值可以实现无需中间变量交换两个变量的值
x,y=1,2
x,y=y,x
三.标识符
1.合法的标识符
(1)第一个字符必须是字母或者下划线 //不能是数字
(2)剩下的字符可以是字母和数字或下划线
(3)大小写敏感
2.专用下划线标识符
(1)_xxx 不用 ‘from module import *’
(2)_xxx_ 系统定义名字
(3)_xxx 类中的私有变量名,在模块或者类外不可以使用
4.模块加载:
作为模块导入的时候实际上就是对py文件进行了依次初始化,也就是跑一遍代码。那么模块中的函数自然就被执行了,而且在终端上看到了效果。
如果想实现导入模块的时候不执行函数,而单独运行模块的时候执行这个函数,如下即可:
if __name__ == '__main__':
main()
通过name属性,能在运行时检测该模块是被导入还是被直接执行
如果是被导入,则该模块的__name__的值为模块名字
如果被直接执行,__name__的值为‘__main__’
5.关于引用
对于赋值语句:x=1,则创建了一个整型变量,并且增加一个了引用x
对于:y=x,则是把x这个引用给y,结果就是整型变量 1 多了一个引用y
增加引用的方式:
(1)x=1 //对象被创建
(2)y=x //另外的别名被创建
(3)foobar(x) 作为参数传递给函数
(4)myList=[1,2,x] //成为容器对象的一个元素
当引用计数为0时,就会被垃圾回收机制所回收
减少引用的方式:
(1)y=123,//指向新的变量
(2)del y //使用del显示的删除引用
(3)myList.remove(x)
四.Python对象
1.标准类型:
(1)Interger 整型
(2)Boolean 布尔型
(3)Long interger 长整型
(4)Floating point real number 浮点型
(5)Complex number 复数型
(6)String 字符串
(7)List 列表
使用[]表示一个空列表,是一种有序数据集合,可对元素进行增删改查,常用的方法
a.append() //在list后面增加元素
b.insert(i) //在指定位置插入元素
c.pop() //返回最后一个元素,并在list末尾删除元素
d.pop(i) //删除指定元素
f.extend(list) //将两个list合成一个list
g.查找需要遍历
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.sort() #排序 //使用字典序,而不是字母序
L.reverse() #倒序
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
enmumertate和zip
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1): //后面的1表示指定的索引开始
print index, item
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个 tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) [(1, 4), (2, 5), (3, 6)]
#复制list:
L1 = L #L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。
L1 = L[:] #L1为L的克隆,即另一个拷贝。
(8)Tuple 元组
元组使用()来表示,元组也是有序列表,可通过下标进行索引,但是元组跟String类似,在初始化之后不能改变,因此String和Tuple都是不可变序列,当元组中只有一个元素时:
test = (123,)在元素后面需要加一个逗号,否则会被认为是一个整数
Tuple和String类似,也支持通过下标进行索引和分片
常用的内置函数:
com(tuple1,tuple2) //比较两个元组元素
len(tuple) //计算元组元素个数
max(tuple) //返回元组中元素最大值
min(tuple) //返回元组中元素最小值
del tup //删除元组
tup3= tup1 + tup2; //元组相加
(9)Dictionary 字典
字典使用{} 来表示,字典是无序的,他通过键值来引用,字典也是可变序列,可以包含其他任何类型,键是唯一的,并且是不可变的,键可以是字符串、数字、元组
del dict['Name']; # 删除键是'Name'的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典
常用字典操作:
dic.clear()清空字典
dic.keys()获得键的列表
dic.values()获得值的列表
dic.copy()复制字典
dic.pop(k)删除键k
dic.get(k)获得键k的值
dic.update()更新成员,若成员不存在,相当于加入
dic.items()获得由键和值组成的列表
(10)set 集合
Python的集合(set)和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素.
set集合是可变序列,但是不可索引
常见操作:
name = {'d','s'}
name.add('d') //增加元素
name = {'d','s'}
name.clear() //清空元素
所有标准对象都可以用于布尔测试,同类型的对象之间可以比较大小,每个对象天生具有布尔True或False的值,空对象、值为零的任何数字或者Null对象(Null对象只有一个值None)的布尔值都是False
None;False(布尔类型);所有值为零的数;0;0.0;0L;"";[];();{}