进入交互模式:python
退出交互模式:exit();
方便调试
执行:python 1.py
直接编写的python文本文件,有Python解析执行,不需要编译。
编译后生成的pyc
编译方法:
import py_compilepy_compile.compile('1.py');
经过优化后的源文件, pyo
python -o -m py_compile hello.py
字母,数字,下划线组成,不可以数字开头,不可以使用关键字
id(a) #查看内存区块标示a = 123a = 456id(a) #得到不同的地址空间a = 123b = 123id(a) #与id(b)得到相同的地址空间
整除: 3.0//2 1.0
幂次方: 2**3 8
a = raw_input() #字符串a = int(a) #转换为整数raw_input("please input number1:") #终端提示
python不需要声明,由存储的数据决定
数据类型:数字,字符串,列表,元组,字典
type(123) #查看类型
type(123456789123456) #
为了区分整型和长整型,长整型加个l: a = 12L
c=3.14j #
a = 'test'b = "test\nabc"c = """test""" #保存格式化输入 或者作为注释d = """test abc"""
a='asfasdfasf'print a[2] #fprint a[2] + a[1] #fsprint a[1:4] #sfaprint a[:4] #asfaprint a[1:] #sfasdfasfprint a[::2] #afsfs 2为步长print a[-4:-1] #fasprint a[-2:-4:-1] #sa
列表,元组和字符串都是序列
序列的两个主要特点是索引操作符和切片操作符:
索引操作符:从序列中抓取一个特定项目切片操作符:获取一个切片,即一部分序列
str="abcd"print str[1] #bprint str[1:4] #bcdprint str[-1] #dprint str[:] #abcdprint str[::] #abcd
元组和列表十分类似,元组的值和字符串一样不可修改
元组通过圆括号用都好分割的项目定义
t=("Jason", 20, "male")t[0] Jason
元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候
#空元组a=()#单一元组a=(20,)
和字符串类型一样,可以通过索引和切片操作,元组的值不可改变
t=("Jason", 20, "male")t[1] = 30 #TypeError:'tuple' oblect does not support item assignment#拆分元组name, age, gender = t;name Jason#扩展:a,b,c = 1,2,3
元组不可变,存储可变的数值,可以使用列表
列表是可变类型的数据
列表的组成:用户[]表示列表,半酣了多个以逗号分隔开的数字,或字符串
listmilo = []listmilo = ['arthinking', 'Jason', 1]listmilo[0] #output: arthinkinglistmilo[0:2] #output: [arthinking, Jason]l2 = ['abc'] # 不用逗号
取值:
切片和索引list[]
添加:
list.append()
删除:
del(list[i])del(list)list.remove(1) # 删除第一个出现的元素list.remove(list[i])
元素重新赋值后,内存空间地址不变
修改
list[i] = x
查找
var in list
t1=["a", "b"]t2=["1", "2"]print zip(t1, t2) #[('a', '1'), ('b', '2')]
字典是python中唯一的映射类型(哈希表)
字典对象是可变,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值
keys()或者values()返回键列表或者值列表
items()返回包含键值对的元组
a = {'a':1, 'b':2}c ='cc'b = {'a':1, 'b':2, c:3, 1:4}
使用工厂方法dict():
dict(a=1, b=2)
内建方法:fromkeys(),字典中的元素具有相同的值,默认为None
print {}.fromkeys(('x', 'y'), -1) #output: {'x': -1, 'y': -1}
直接使用key访问:key不存在会报错,可使用had_key()或者in和not in判断,但是has_key()方法即将废弃
循环遍历:
for key in dict1.keys()
使用迭代器:
for key in dict1
直接用键值访问更新
del dict1['a'] #删除键为a的元组dict1.pop('a') #删除并且返回键为a的元素dict1.clear() #删除字段所有元素del dict1 #删除整个字典
字典相关的内建函数:
工厂函数dict();
dict(zip('x','y')) #或者dict(x=1,y=2)
使用字典生成字典比用copy慢,这种情况下推荐使用copy()
if 1
格式遵循代码块缩进原则
true:表示非空的量(string, tuple, list, set, dictonary等),所有非零数
false:表示0,None,空的量等
if x
for iterating_var in sequence: statements(s)
格式遵循代码块缩进原则
for x in [0,1,2,3,4,5,6]: print x, "testabc"
如果所创建的对象为整数,可以用range
i为初始值,默认为0
j为终止值,但不包括在内,步值默认为1
for x in range(100):
for x in "hello": print x# 迭代索引for index in range(len(list)): print list[index]
a = {'a':1,'b':2}for x in a: print a[x] #输出key
for k,v in a.items(): print k,v
for k,v in a.items(): print k,velse: print "end" # 正常执行完for之后会执行
import timefor x in range(20): print x #time.sleep(1) if x == 3: pass #代码中起到占位的作用 if x == 4: continue if x == 5: exit() #退出程序 if x>=6: breakelse: print "end" #break之后就不会执行这句了