1、打印:print(100000)
print("字符串输出")
2、获取输入:input("输入提示:")
3、导入模块:
a、import math
这种方式使用math库中的函数方式:math.floor(3.0)
b、如果不想在floor前面加上math前缀,可以用这种加载方式:from math import floor,那么上述语句可以使用:
floor(3.0)
4、注释:
#表示单行注释
‘’‘多行注释’‘’ """多行注释"""前后都是三个单引号或者三个多引号
#coding=utf-8编码标注
5、转义字符:‘\’
6、字符串拼接:'+'
7、数字类型:
int float bool
complex(复数),Python3中没有Long,而2中有
8、str和repr的差别:
str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号
print(str("Echo"))的结果是:'Echo'
print(repr("Echo"))的结果是:Echo
9、打印跨越多行的字符串:
print('''多行字符串''')或者将字符串头尾的单引号改成双引号
10、原始字符串:
在字符串引号的前面加上一个r(和C#中的@一个意思),如:
print(r"第一行\n第二行")因为r,在第一行和第二行之间的\n就不会变成换行符
不过原始字符串不能以反斜杠结尾,如果原始字符串结尾需要是一个反斜杠的话,可以使用拼接的方式:print(r"第一行\n第二行" '\\')
11、常用内建序列:列表和元组,列表可以修改,元组则不能;其他内建序列还有:字符串、Unicode字符串、buffer对象和xrange对象
如下:edward john是列表,database也是列表
edward = ['EdwardGumby', 42]
john = ['JohnSmith', 50]
database =[edward,john, 1]
print(database)
print(database[0])
print(edward[-1])
输出结果:
序列中的元素都是有编号的,从0开始递增,因此可以用下标访问,如上,database[0]。下标-1表示从尾部开始
12、序列的分片,冒号分割,做闭包,左边位置包括,右边位置不包括:
tag="0123456789"
print(tag[2:3]) #2
print(tag[2:-1])#2345678
print(tag[-3:-1])#78
print(tag[0:])#0123456789
print(tag[:])#0123456789
print(tag[-3:0]) #空 无效
print(tag[::2])
#02468第三个参数表示步长,如前面几行没设置就是默认1
print(tag[::-2])
#97531步长是负数,从右向左提取
print(tag[2:8:-2])
#无效 步长是负数,起始点索引必须大于结束点索引
print(tag[8:2:-2])#864
print(tag[2::-2])
#20第二个位置开始往左边按照步长2分片
13、序列成员资格检查in,检查一个值是否在序列中,使用in运算符
permissions ='rwx'
print('x'inpermissions) #True
print("a"in permissions) #False
print("rw"in permissions) #True
14、序列的长度、最小值和最大值:len、min、max
15、列表的基本操作:
可以用字符串创建列表:print(list("Perl"))#['P','e','r','l']
元素赋值:x[1]=2,改变x列表第2个位置的值,不能为一个位置不存在的元素进行赋值。
删除元素:del
x[1],删除列表第2个位置的元素,并且列表长度-1
分片赋值:
perl =list("Perl")
print(perl)#['P','e','r','l']
perl[1] = 'a'
print(perl)#['P','a','r','l']
del perl[1]
print(perl)#['P','r','l']
perl[1:1] = 'ffff'
#['P','f','f','f','f','r','l']如果起始点和结束点位置一样,则做插入
print(perl)
perl[1:3] = 'gggg'
#['P','g','g','g','g','f','f','r','l']如果起始点和结束点之间的位置不够放右值,则替换掉已有的位置值,剩余的值做插入处理
print(perl)
perl[1:8:2] =
'hhhh' #['P','h','g','h','g','h','f','h','l']如果步长大于1,那么右值的个数要等于分片数,否则编译不通过
print(perl)
16、 列表方法
append,在列表末尾追加新对象x.append(1)
count,计算某个元素在列表中出现的次数:x.count(1)
extend,在列表的末尾一次性追加另一个序列的多个值,通过修改原始序列,而“+”连接操作符是返回一个全新的列表
index,从列表中找出某个值第一个匹配项的索引,但是如果索引的值不存在,会产生异常
insert,将对象插入列表,x.insert(1,'dkjf')
pop,一处列表中的一个元素,默认最后一个,并返回该元素的值
remove,用于移除列表中某个值的第一个匹配项,在原有列表上修改
reverse,将列表中的元素反向存放,在原有列表上修改
sort,排序列表,在原有列表上修改,返回一个空值,如果想保存排序前的x列表,那么在排序前保存x列表的副本,保存x列表副本的方式:
y=x[:] y.sort()用副本y排序
y=sorted(x)这个函数可以用于任何序列,但是总是返回一个列表
y=x错误的使用方式,这条语句是将x y指向同一个副本
高级排序
x.sort(cmp) #cmp制定排序函数
x.sort(key=len) #按长度排序
x.sort(reverse=True)
#反向排序
17、元组,不能修改的序列,列表用中括号,元组用圆括号,单个元素的元组,要在元素后面加一个逗号,如(1,),因为如果不加逗号会被认为是数字
tuple([1,2,3]) #把list转换成元组
tuple('abc')==》('a','b','c')
序列的操作函数元组都有,但是列表的没有哦
18、字符串,字符串是不能修改的序列
格式化:
format ="Hello %s %d %%"
values =("wff", 10)
print(format%values)#Hello wff 10 %
格式化字符串里如果要显示%就得用‘%%’
模板字符串:
字符串函数:
find,查找子字符串,返回字符串所在位置,不存在返回-1。str.find('aaa')
join,是split方法的逆方法,将队列拼成字符串,可以带拼接符。
lst=['1','2']
sep='+'
newlst=sep.join(lst)
print(newlst) #1+2
lower,返回字符串的小写字母版,str.lower()
replace,字符串替换,
split
strip去除字符串两侧的空格
translate
maketrans(这个函数3.5之后现在在str类中)
x='this!is!'
a=str.maketrans('','',string.punctuation)
x=x.translate(a)
#结果:thisis字符串x中的punctuation将会被替换成空
print(x)
s='abcdefab'
table=str.maketrans('ab','AB')
s=s.translate(table)
#结果:ABcdefAB将s列表中的ab替换成AB
print(s)
19、字典
创建:
items =[('name','Gumby'),('age',42)] d = dict(items)
d=dict(name='Gumby',age=42)
访问方式和正常的字典一样
来一点特别的,字典的格式化字符串,非常给力:
fmt ="name:%(name)s,age:%(age)s"
print(fmt%d)#name:Gumby,age:42
字典方法:
clear
copy,返回一个具有相同键-值对的新字典(浅复制),如果想深复制,可以使用copy.deepcopy(dic)
fromkeys,使用给定的键建立新字典:
t={}.fromkeys(['name','age'],
'unknow') #如果没有提供默认值,则默认为None
get:
print(d.get('sex',
'unknow')) #sex不存在则返回unknow,如果没设置unknown,则sex不存在的情况抛出异常
items和iteritems,items是以列表的顺序返回所有所有键值对
keys和iterkeys
pop:d.pop('age')将age键值对从字典中移除,等于remove
popitem:弹出随机的一个键值对
update:利用一个字典项去更新另一个字典
d.update(x)用x字典中的项去更新d字典,不存在的新增,存在的则覆盖
values和itervalues
20、日志输出,print和logging,后者有分日志等级logging.info/warning/error等
21、import
import math
from math importsqrt,pow,add
from math importsqrtas foobar
import math asmymath
22、if语句
以下值当做布尔表达式的时候被认为是假:
False None 0"" () {} []
其他为真
if else elif
22、语句块,以“:”(冒号)开始,缩进改变为结束
23、字母的顺序值,ord函数,还有一个chr函数功能相反
print ord('a') #97
print chr(97) #a
24、三目运算符:print(11 if True else 22)#11
25、range函数,range(0,10)
#0123456789左闭包
xrange函数,xrange(1,5),生成一个生成器,每次加1
26、for语句
for word in words:
for num inrange(0,10):
for key,values ind.items:
27、while语句
while True:
28、zip函数
for name,age in
zip(names,ages): #names/ages分别是一个List
zip(range(5),xrange(10000))
#zip可以处理不等长序列,短序列处理完就停止。
29、enumerate函数,返回序列的索引-值对
for index,stringin enumerate(strings):
if 'xxx' instring:
strings[index]='newval'
30、reversed和sorted,返回翻转或者排序后的版本。
31、跳出循环,break、continue
32、列表推导式---轻量级循环
print([x*x for xin range(10) if x%3==0]) #0,9,36,81
for循环中的元素,满足是3的倍数,则将其平方返回。x%3可以换成其他的条件
print([(x,y) for x
in range(3) for y in range(3)]) #结果为x012和y012的排列组合
33、空代码块,pass
34、删除对象
x=None
或者del x
35、动态执行Python代码,exec
scope={} #命名空间,将代码放在命名空间中执行
exec("print('Hello,World')") in scope#Hello,World
36、动态执行表达式:eval以下是加了作用于的eval
scope = {}
scope['x'] = 2
scope['y'] = 3
print(eval('x*y',scope)) #6
37、
����$r/