第一二章
and 运算符会从左到右依次评估表达式,并返回第一个假值(如果有的话),如果没有假值,则返回最后一个值。
在 and 运算符中,假值包括:False、None、0、空字符串 ""、空列表 [] 等。

如果用二进制binary表示,那么数字前必须加上0b或0B;
如果用八进制octonary表示,那么数字前必须加上0o或0O;
如果用十六进制hexadecimal表示,那么数字前必须加上0x或0X。

5**2=25(幂运算)
5//2=2 (整除)
in not in
判断指定序列中是否包含某个值
is is not
判断两个标识符是否引用同一对象

python3中,第一个字符必须是字母表中的字母或下划线 _

#第一章
s=input('请输\
入:')
#\可以实现换行, []、{}中分行时,可以不使用反斜杠
n,name=s.split('//s+' );
#默认空格为分隔符
# 以字母或下划线开头的字符集合。没有$
a=input().split(':')
#标准split函数不能指定多种分隔符,需使用正则表达式中split
import re
str = 'one;two|three,four'
result = re.split(';|,|\\|', str)
print(result)
s = "a,b.c:d|e"
result = re.split('[;|.|:|,|\\|]', s)
# 通过“|”符号表示“或”关系(英文句点比较特殊,需放在[]中
print(result)
#输出print(*objects, sep=' ', end='\n', ……)
print(1,2,3,sep=',',end=";")
#round函数
'''
round()函数用于保留指定位数的浮点数
(整数部分是0或奇数“四舍五入”,
整数部分是偶数“五舍六入”)
'''
a = 2.699
b = 2.675
print(round(a, 2) , round(b, 2))
#输出结果为:2.7 2.67
第三四章
#第三章
a,v=1,2
print("%d %d"%(a,v))
if(a>1):
print("")
elif():
else:
#记得叫冒号
for word in Python:
print(word)
#会遍历这个序列
while i<10:
for j in range(1,i+1):
else
#elsese子句除了可以与if语句搭配使用外,
# 还可以与while语句、for语句搭配使用,
# 当条件不满足时执行else的语句块,它只在循环结束后执行。
'''
while语句或for语句中有break语句时,
程序将会跳过while语句或for语句后的else子句。
'''
#第四章
'''
使用单引号标识的字符串中不能包含单引号,使用双引号标识的字符串中不能包含双引号
使用3对单引号或3对双引号标识字符串可以包含多行
Python中的字符串不能被修改
'''
# 字符串函数
s.upper()
s.loewer()
rfind()
#最后一次出现的位置,不存在返回-1
rindex()
字符串属于不可变有序序列,可使用单引号、双引号、三单引号或三双引号作为定界符,不同的定界符之间可以互相嵌套。
字符串对象提供的方法中,凡是涉及到字符串“修改”的,都返回新字符串,不对原始字符串做任何修改
1 转义字符


2 字符串输出


4 字符串切片


5 字符串运算

6 字符串函数
1)判断字符

2)前缀后缀

3)合并和分隔
join合并:把他插在每个单位之间
split分隔


4)对齐方式
左对齐右对齐,填充符号默认为空格

5)删除头尾字符strip
默认去除空格,删除的是字符序列不是字符串。所以有行五

6)检测子串find


7)替换子串replace
str.replace(old,new,1)
#旧的换成新的,次数不超过一次
8)子串个数count

8)首字母大写
capitalize()第一个字母大写
title()所有单词首字母大写
7

第五章
1列表
a= [1,2,3,"x"]
#列表中括号
b=list(range(5))
c=list(range(0,5,2))
#从0开始,end-1结束,步长step
#0,1,2,3,4,5
#正向索引第一个为0,反向索引最后一个为-1
print(a)
print(a[0])
#列表切片
list1=[0,1,2,3,4,5,6,7]
print(list1[2:6:2])
#索引2——6,步长为2 [2,4
print(list1[-6:-2:1])
#正序-6到-2,步长为2 [2.3.4.5
print(list1[-2:-6:-1])
#倒序-6到-2,步长为2 [6,5,4,3
len(list1)
for i in list1:
print(i)
#输出列表
#+,*,in,not in连接,重复列表元素,判断元素在不在列表
list1.append(),extend(),insert(index,obj)
#列表末尾添加元素,列表末尾一次性添加另一个序列元素,元素插入index处
list.pop(index=),remove(obj),clear()
#删除指定索引,删除第一个obj
#list没有find函数,str有.用index找3,从1到6开始找
print(list1.index('3',1,6))
list1.sort(reverse = True)
#默认从小到大,有reverse是从大到小
list1.reverse()
list1.count('')
len(),max(),min(),sum();
# 列表中存放内存地址而不是值本身,所以内容不同的列表可能相等
a=[1,2,[3,4,5]]
#嵌套列表近似二维数组 a[2][1]=4
print(a[2][1])
newlist=[num**2 for num in list if num>5 ]
#列表推导式
2元组
"""
元组也是一种序列,
元组中元素不能被改变;使用小括号中的一系列元素。
元组:只读的列表
"""
tuple=(1,2,3,4)
tuple2=(1,)
#!!!这个逗号不能省略,否则会认为为一个值
tuple2=tuple[1:]
#元组切片,但是不能通过下标修改
#元组遍历
for name in tuple:
print(name)
# +,*,in,not in进行元组的运算,列表另有remove
#元组列表可以相互转换
list1=list(tuple)
tuple2=tuple(list1)
第六章
字典
#字典 类似于map依靠键值对
dict={"li":"12","tao":"5"}
#键必须唯一,值并不唯一,相同的键会保留后面的键值
'''
键必须是不可修改的
键是不可变数据类型,值是任意。
不可变:数字型,字符串,元组
可变:列表,字典,集合
'''
#创建
dict1={}
items=[('name','yy'),]
d=dict(items)
#dict需要传入序列类型
d1=dict(name='小千',score=98)
# len,通过键访问或修改值,如果不确定键是否存在就用get
d['name']=('xiaoqian')
#update修改键对应的值,或添加元素
new={'name':'xiaoyi'}
d.update(new)
add={'sex':"nan"}
d.update(add)
#del删除键,删除字典,clear清空
del d['score']
del d
d.clear()
#复制字典
s=d.copy()
#in,not in判断键是否在字典中
d.setdefault()
# 返回值,否则若键不存在于中,则添加,
d.keys() d.values() d.items()
#获取字典中所有元素的键,获取所有元素的值,获取键值对
d.popitem() d.pop()
#随机返回并删除一个元素.删除指定键
#三种方式合并字典 相同的键用2更新1
d1.update(d2)
d3={**d1,**d2}
d3=d1|d2
浅拷贝,深拷贝和直接引用



2 集合
'''
集合 无序不重复,大括号包围
集合的元素类型可以是数字类型,字符串,元组,但不可以是列表,字典
'''
#大括号创建的是可变集合 第二个就是不可变集合
s1=set("liming")
fs1=frozenset("liming")
#利用集合去重
list1=[1,2,3,3]
s1=set(list1)
print(s1)
#添加元素 通过单个元素或集合
s1.add(4)
s1.update(s2)
#删除元素 第二个避免了元素存在时报错
s1.remove()
s1.discard()
# 集合的运算
'''
in == > >=
判断元素是否包含 集合相等 子集 真子集
| & - ^ 并集 交集 差集 对称差集
union(),intetsection(),,difference()并交差
'''
set1=set("1")
for num in set1:
print(num,end='',sep=";")
#字典推导式
d1={x:x*x for x in range(5)}
{0:1,1:1,2:4,3:9,4:16}
有序:列表,元组,字符串
无序:字典,集合
可变:列表,字典,集合
不可变序列:元组,字符串;
第七章

#函数
from msvcrt import putch
def f(num):
函数体
#传参顺序可以不一致
def printinfo(name,score):
printinfo(score=98,name='小千')
#默认参数必须放在最右侧,可修改
def printinfo(name,score=99):
#不定长参数前面加*实现
def mysum(a=0,b=0,*args):
#不定长参数接受关键参数并放入字典**
3,4传入不定长时为元组
c=3,d=4传入不定长时为字典
#*,**还表示取反
'''
如果函数定义时省略return语句,或者只有return而没有返回值,
则Python将认为该函数以“return None”结束
'''
#当函数有多个返回值时,实际构成了一个元组
#global声明局部表变量
global x
x=2#全局变量
def fun():
x=3#局部变量
print(x)
fun()#输出3
print(x)#输出2
#globals(),locals()查看局部变量和全局变量
#函数里定义的全局变量在全局都全局变量
#允许函数嵌套
#直接调用和间接调用:给函数起别名
def put(a):
return 1
put(1)
x=put
x(1)
'''
使用另一个函数作为一个函数的参数,函数名可以作为其他数据类型的元素(字典的键)
匿名函数是指没有函数名称的、临时使用的微函数。
它可以通过lambda表达式来声明,其语法格式如下:
lambda[arg1 [,arg2,...,argn]]:表达式
可以作为列表或字典的元素
'''


#函数可以返回另一个函数名,
# 一个函数可以放在另一个函数里面(这样限定在内部使用)
装饰器:装饰器为已经存在的函数添加额外的功能




还有一些8.4装饰器偏函数没记
#内建函数
#eval,exec,compile,map,filter,zip
#用于动态表达式求值
a=3
str='a+3+3*8'
eval(str)
#exec()动态语句执行
str='for i in range(3) print("*")'
exec(str)
# compile编译为字节码,map对每个元素进行操作映射,filter对序列进行过滤操作
func=lambda x:x+10
list1=list(map(func,list1))
#zip将对应元素打包成元组
浙公网安备 33010602011771号