1、变 量:变量是计算机内存中的一块儿区域,变量可以存储规定范围内的值,而且值可以改变。
变量命名:变量名有字母、数字、下划线组成;
数字不能开头,或 纯数字;
不可以使用关键字;
范 例: a a1 a_ a_1 变量的赋值: a = 1 范 例:>>> a=2 >>> a 2
#数字不可以开头:SyntaxError: invalid syntax 语法错误;
2、变量是一个标签
>>> id(a) 7989040 >>> a=121221 >>> id(a) 7989136
#id()查看内存地址; #变量是对赋值的一个引用; #同样的一个地址空间,可以有多个标签; >>> b=1 >>> c=1 >>> id(b) 7713592 >>> id(c) 7713592
3、赋值运算
pthon 运算符包括 赋值运算|算术运算|关系运算|逻辑运算;
表达式是将不同数据(包括变量、函数)用运算符号按一定规则链接起来的一种式子;
算术运算符 :
+ 加 - 减 * 乘 / 实数除 // 整数除法 % 求余 ** 求幂运算
范例: >>> 1+1 2 >>>4-1 3 >>> 3/2 1 >>> 3.0/2 1.5 >>> 3//2 1 >>> 3.0//2 1.0
>>> b = 3 ** 3 #赋值运算 >>> b 27 >>> print b 27 >>> b -2 25 >>> a-=50 #赋值给自己 >>> a 50
关系运算符
#判断的作用 >>> 1<2 True >>> 1>2 False >>> 3>5 False >>> 3!=5 #注意!=顺序 True
逻辑运算符
and 逻辑与 # 两个条件同时为真,返回true
or 逻辑或 # 两个条件同时失败,返回false
not 逻辑否 # 判断结果取反
>>> 1>2 False >>> not 1>2 True >>> not 6<2 or 4<2 True
#运算符的优先级
单纯的算术运算和数据法则是一致的。
a=2+4*4
赋值运算
数算运算符高与赋值运算
#计算器
#!/usr/bin/python a = int(raw_input("please input number1:")) b = int(raw_input("plwase input number2:")) print a+b print a-b print a*b print a%b #raw_input() 方法 #int() 定义数值类型,字符串无法相加
4、数据类型
#不需要事先申明,根据事物的特点
数字
整型int:范围-2147 483 648 到 2147 483 647
>>> num1=123 >>> id(num1) 21892896 >>> type(num1) <type ‘int‘>
长整型long :范围很大,为了区分普通整数和长整数,需要在整数后加L或者小写l
#人为定义长整型
>>> num1=2L >>> type(num1) <type ‘long‘> #存的值只有2 #建议使用大写的L
浮点型 :(小数型)flote
例如:0.0 、 12.0、-18.8、3e+7 >>> x=3e+7 >>> type(x) <type ‘float‘> >>> y=0.0 >>> type(y) <type ‘float‘> >>> a=1.0 >>> type(a) <type ‘float‘> #如果想要变为浮点型,只需要加一个小数点
复数型:complex |python 对复数提供内嵌支持,这是其他大部分软件所没有的
例:3.14j、8.32e-36j >>> num1=3.145j >>> type(num1) <type ‘complex‘> >>> #小写字母j 表示定义一个复数类型 ;此处的e=10
#######################123 和 “123”#########################################
>>> a=123 >>> stra="123" >>> print a 123 >>> print stra 123 >>> a+stra Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for + : ‘int‘ and ‘str‘ >>> type(stra) <type ‘str‘>
#######################################################################
字符串 string
#使用引号定义的一组可以包含数字、字母,符号(非特殊系统符号)的集合
#三重引号 docsting
>>> str1=‘hello word‘ >>> str2="hello good" >>> str3="I‘m is kong" >>> type(str3) <type ‘str‘> #单引号和双引号没有任何区别,区分对待(例如:let‘s go) #如果更复杂可以使用转义符号\(例如:>>> say="let‘s \"go\"" ) #控制字符串换行,需要使用转义字符 换行\n >>> mail="hello \n my name is kong" >>> print mail hello my name is kong
#""" 三重引号
>>> mail="""tom: ... i am jack ... good bay ... """ >>> mail ‘tom:\n\ti am jack\n\tgood bay\n‘ >>> print mail tom: i am jack good bay >>>
################在python 中字符串、列表、元组 称作序列类型的数据#######################
字符串:
范例: >>> a="abced" >>> a[0] ‘a‘ >>> a[1] ‘b‘ >>> a[0]+a[1] ‘ab‘
#+ 两个字符串的拼接
#起始索引从0开始 ,但是这样只能取一个
#切片
>>> a[:2] ‘ab‘ >>> a[4:] ‘e‘
元组 tuple :
元组和列表十分相似,只不过元组和字符串一样是不可变的,即不能修改元组。
元组通过圆括号中用逗号分隔的项目定义
元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。
元组创建范例:
一般元组
>>> t=("name","kong","age","18") >>> t[1] ‘kong‘ >>> 定义单一元组 >>> cc=("my name kong",) >>> cc[3] #注意要添加一个逗号 #定义空的元组由一对空的圆括号组成
元组的操作
元组和字符串类型一样属于序列类型,可通过索引和切片操作。
额外的操作:定义一个变量,拆分元组(定义变量的模式)
>>> t=("milo","30","male") >>> name,age,gender=t >>> name ‘milo‘ 类似于>>> a,b,c=1,2,3 >>> a 1 >>> b 2 >>> a,b,c=(1,2,3) 注意添加小括号 >>> t=["name","age"] >>> t1=["kong","age"] >>> zip(t,t1) [(‘name‘, ‘kong‘), (‘age‘, ‘age‘)] #zip遍历, 变为元组,但没有绝对的联系
列表【】
#list 是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目
列表是可变类型的数据
列表的组成:用[]表示列表,包含了多个以逗号隔开的数字,或者字串
空列表的定义:
>>> list1=[] >>> type(list1) <type ‘list‘> 单个值得定义不需要有逗号,也是列表(元组需要有逗号) >>> list1=[2,3,4,] >>> list1 [2, 3, 4] >>> list1=["milo","30","male",] >>> list1[0] # 取值和元组相同,唯一的区别是可以重新赋值 ‘milo‘
列表的操作:
>>> list1 [‘kong‘, ‘30‘, ‘male‘] >>> id(list1) 140548135398648 >>> list1[0]="kon" >>> id(list1) 140548135398648 注意#存储空间未修改,但是元组是不可以的
添加:
#借助列表类型的方法 >>> list1 [‘kon‘, ‘30‘, ‘male‘, ‘12345678‘] >>> list1.append(‘phone‘) >>> list1 [‘kon‘, ‘30‘, ‘male‘, ‘12345678‘, ‘phone‘]
删除:
list1.remove("12345678") #如果有多个,它会选择第一个剔除 或者:list1.remove(list1[3]) #注意list1是一个变量 ,要操作的列表名 [‘kongjiagou‘, ‘1233e2e32‘] >>> del(mail[0])
序列的两个主要特点:
索引操作符:从序列中抓取特定项目
切片操作符:获取序列的一个切片,即一部分序列
序列的基本操作:
1、len(): 求序列长度
2、 + :连接两个序列
3、 * : 重复序列元素 "#"*50
4、in :判断元素是否在序列中
>>> str1="abcdefssfs" >>> ‘c‘ in str1 True #注意引号的使用,它是区分字符串和变量的方法 >>> str1="abcded" >>> ‘a‘ in str1 True >>> a=100 >>> ‘a‘ in str1 True >>> a in str1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ‘in <string>‘ requires string as left operand, not int >>>
5、max():返回最大值
6、min():返回最小值
7、cmp(tuple1,tuple2) 比较两个序列值是否相同
#############################################################################################
字 典:
#存储数据的方式,更方便
字典是python中唯一的映射类型(哈希表#无序的)
字典对象是可变的,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的健值。
keys()或者values()返回键列表或者值列表
items()返回包含健值对的元组
创建字典使用{}
>>> dic={"name":"kong","age":"232"} >>> dic["name"] ‘kong‘ 混合类型的定义 >>> dic1={1:‘name‘,‘age‘:20,‘d‘:‘1232‘} >>> dic1[1] ‘name‘
#工厂方法dict()生成字典,但是它比较慢,效率低,另一种方式是fromkeys(),字典中的元素具有相同的值,默认为none,最常用的还是{}
#访问字典的值:可以直接使用key访问:key不存在会报错,可以使用had_key()或者in 和not in判断,但是has_key()方法即将废弃。
for循环遍历:
>>> >>> dic1 {1: ‘name‘, ‘age‘: 20, ‘d‘: ‘1232‘} >>> for k in dic1: ... print k ... 1 age d >>> for k in dic1: ... dic1[k] ... ‘name‘ 20 ‘1232‘