第一二章

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

如果用二进制binary表示,那么数字前必须加上0b或0B;
如果用八进制octonary表示,那么数字前必须加上0o或0O;
如果用十六进制hexadecimal表示,那么数字前必须加上0x或0X。
image
5**2=25(幂运算)
5//2=2 (整除)
in not in
判断指定序列中是否包含某个值
is is not
判断两个标识符是否引用同一对象

image

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

#第一章
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 转义字符

image

image

2 字符串输出

image

image

4 字符串切片

image
image

5 字符串运算

image

6 字符串函数

1)判断字符

image

2)前缀后缀

image

3)合并和分隔

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

image

4)对齐方式

左对齐右对齐,填充符号默认为空格
image

5)删除头尾字符strip

默认去除空格,删除的是字符序列不是字符串。所以有行五
image

6)检测子串find

image

image

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

image

8)首字母大写

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

7

image

第五章

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


浅拷贝,深拷贝和直接引用

image
image
image

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}


有序:列表,元组,字符串
无序:字典,集合

可变:列表,字典,集合
不可变序列:元组,字符串;

第七章

image


#函数
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]]:表达式
可以作为列表或字典的元素
'''


image
image


#函数可以返回另一个函数名,
# 一个函数可以放在另一个函数里面(这样限定在内部使用)




装饰器:装饰器为已经存在的函数添加额外的功能


image
image

image
image

还有一些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将对应元素打包成元组

posted on 2024-11-18 17:46  Hoshino1  阅读(38)  评论(0)    收藏  举报