声明
1)该文章整理自网上的大牛无私奉献的资料,具体引用的资料请看参考文献。
2)本文仅供本人学习记录,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。
1.代码风格
Python的格式规范——PEP8
主要规范:
注意缩进,不能把tab键与四个空格连用,最好使用四个空格
一行不超过79个字符(直接换行即可)
函数与函数之间空两行
2.赋值语句
基本赋值:=
序列赋值:
x,y = 5,10
x,y,z = 10,20,30
#Python交换两个值
x,y = y,x
# 拆包------>结果 a='l' b ='i' c='k' 注:如果序列短于或长于被赋值的元素会发生错误
a,b,c = 'lik'
扩展序列的拆包赋值:剩余元素会赋值给*元素,*元素可以为空
# *代表获取剩余元素到list--->结果a='h',b='e',c=['l','l','o']
a,b,*c = 'hello'
多目标赋值:
a = b = 10
# 注意:内存中会内置小于256的数字,会内置长度小于等于3的字符串
# 也就是说,如果a=b=10或者a=b='aaa'他们指向内存中相同的地址可以用is判断
# 注意:如果因为列表是可变类型所以a=b=列表时,要注意改变其中一个另一个会跟着改变的问题
参数化赋值:
a += b
c = [1,3]
d = [2,4]
c.expend(d)
# 注:也可用c += d,但效率低于.expend()
3.表达式
字面值表达式
函数调用:len()
方法调用:如序列.pop()
打印操作:
# sep='分隔符'
print(a,b,c,sep='|')
# end='终止符'
print(a,b,c,end='.../n')
# 将输出打印到文件中 file='指定元素'
print(a,b,c,file = open('result.txt','w',encoding='utf8')
4.流程控制
if条件判断
格式:
一般个数:if…else
多重格式:if…elif…elif…else
三元运算的if:a = Y if X else Z (如果X成立将Y赋值给a如果不成立将Z赋值给a)
可以通过下图来简单了解条件语句的执行过程:
Python interprets non-zero values as True. None and 0 are interpreted as False.
Python 判断非0的值为 True, 而None和0被认为是 False。注意这里的True和False首字母大写,Python对大小写敏感。
条件语句其基本形式为:
if 判断条件:
执行语句……
else:
执行语句……
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
三元运算的if:a = Y if X else Z
score=80
result=‘及格’ if score>=60 else ‘不及格’
print(result) #打印结果是及格
while循环
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其流程为:
执行语句
while 判断条件:
执行语句……
实例
以下实例使用了嵌套循环输出2~100之间的素数:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " 是素数"
i = i + 1
print "Good bye!"
x=10
while x:
x -=1 #减等于1,到这话 print(x,end=' ')9 8 7 6 5 4 3 2 1 0
if x % 2 != 0 #如果x除以2余数不等于0
continue #得出结果不满足的退出,继续执行
print(x,end=' ') #这样输出结果是10以内的偶数,2 4 6 8
break(退出),continue(退出继续循环),pass(占位符),else
# else的用法,若循环不是由执行break退出的话就执行else里面的语句
x = 10
while x:
x -= 1
print(x)
else:
print("循环结束")
for循环
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。其流程为:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
for x in 目标序列(可以是列表,字符串,字典,元组)
range() range数字的范围
for i in range(10)
print(i)
for x in range(0,101,3) #x是0到101,中间间隔3个数字
print(x)
enumerate() 目前循环是第几项
for i,t in enumerate(s):
print('{}) {}'.format(i,t))
s=‘youpinketang’
for idx,item in enumerate(s) #idx是s里面的序列, item对应的单词
print("{}) {}"). format(idx,item) #format格式化, 打印idx item,如果想从1开始,idx+1
python中的switch操作:
operation = { 'add':'添加操作',
'update':'更新操作',
'delete':'删除操作'
}
print(operation.get('add'))
print(operation.get('update'))
print(operation.get('delete'))
也可以指定执行函数
def add(x):
print(x+10)
operation = { 'add': add,
'update':lambda x:print(x*2),
'delete':lambda x:print(x*3)
}
def default_method(x):
print('默认方法,什么都不做')
operation.get('add',default_method)(10)
operation.get('update',default_method)(10)
operation.get('delete',default_method)(10)
5.迭代
Python中哪些对象可以用for呢?
实现了迭代协议的对象或者是可迭代对象。
迭代器对象
实现了迭代协议的对象称为可以使用.next() 或者全局函数next()
如文件格式
f = open("data.txt","r",encoding="utf8")
f.__next__()
next(f)
列表不能使用__next__()方法但可以用for循环?
列表,可以用for迭代,但其实是for自动给可迭代对象添加了迭代器方法。使用iter(可迭代对象)
可迭代对象
没有实现迭代器方法,转换成迭代器对象使用iter(可迭代对象),如列表。
判断可迭代对象是否实现了迭代协议
l = [1,2,3]
iter(l) is l # False
内置可迭代对象
range()、zip([‘x’,‘y’,‘z’],[1,2,3])、map(函数,可迭代对象)