Python知识点复习_1
内容:
1.python的基本语法
2.python字符串常用操作方法
3.python列表的常用操作方法
4.python字典的常用操作方法
python基础知识
1.python的基本语法
1.缩进
Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。缩进成为了语法的一部分。
官方建议使用4个空格来表示每级缩进。
2.控制语句
if语句,与else, elif(相当于else if) 配合使用。
if True:
exception1
elif:
exception2
.....
.....
else:
exception3
for语句
for i in range(1,100,2):
print(i)
while语句
while True:
exception
try语句,与except,finally配合使用处理异常情况。
try:
exception
except Error,e:
exception
else:
--------------
try:
exception
finally:
exception
raise语句,制造一个错误。
try:
...
except exception:
...
else:
...
finally:
...
raise exception
class语句,用于定义类型。
def classname():
exception
def语句。用于定义函数和类型的方法。
def funcname():
exception
pass语句,表示此行为空,不运行任何操作。
if True:
pass
assert语句,用于程序调适阶段时测试运行条件是否满足。
with语句,Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
yield语句,在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。
import语句,导入一个模块或包,用逗号分割模块名称就可以同时导入多个模块
import sys
import os as system
from import语句,从包导入模块或从模块导入某个对象。
from socket import gethostname, socket
from socket import * # 载入所有对象到当前名字空间
import as语句,将导入的对象赋值给一个变量。
import socket as net, thread as threads
in语句,判断一个对象是否在一个字符串/列表/元组里。
num=[1,2,3,4]
1 in num
True
3.表达式
主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~,%
3+2 加法或者取正
5
3-2 减法或者取负
1
3*2 乘法
6
3**2 取幂
9
3/2 除法
1.5
3//2 地板除
1
a=3 按位取反
~3
-4
3%2 取模
1
二进位向左移位运算符。左操作数的值左移由右操作数指定的位数
a << 2
12
表示右移和左移,二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。
a >>2
0
& 二进制的AND(与)
| 二进制的OR(或)
^ 二进制的XOR(非)
Python使用and, or, not表示逻辑运算。
> 大于
< 小于
== 等于
!= 不等于
<= 小于等于
>= 大于等于
在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。
is, is not用于比较两个变量是否是同一个对象。
a=123
b=1234
a is b
False
b=123
a is b
True
in, not in用于判断一个对象是否属于另外一个对象。
num=[1,2,3,4]
1 in num
True
num=[1,2,3,4]
5 not in num
True
Python支持“列表推导式“,比如计算0-9的平方和:
sum(x * x for x in range(10))
285
2.python字符串常用操作方法
python字符串操作常用操作,如字符串的替换、删除、截取、复制、连接、比较、查找、分割等。
1.去除空格
str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格
a=' hello '
b=a.strip()
print(b)
hello
str.lstrip():删除字符串左边的指定字符,括号的写入指定字符,默认为空格
a=' hello '
b=a.lstrip()
print(b)
hello #右边空格可能看的不是很明显
str.rstrip():删除字符串右边指定字符,默认为空格
a=' hello '
b=a.rstrip()
print(b)
hello
2.复制字符串
a='hello world'
b=a
print(a,b)
hello world hello world
3.连接字符串
+:连接2个字符串
a='hello '
b='world'
print(a+b)
hello world
注:此方法又称为 "万恶的加号",因为使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),
在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去。如果是n个字符串相连 那么会开辟n-1次内存,是非常耗费资源的。
str.join:连接2个字符串,可指定连接符号(关于join,读者可以自己去查看一些相关资料)
a='hello '
b='####'
a.join(b)
'#hello #hello #hello #'
4.查找字符串
#str.index 和str.find 功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。一般用find!=-1或者find>-1来作为判断条件。
str.index:检测字符串中是否包含子字符串str,可指定范围
a='hello world'
a.index('l')
2
a.index('x')
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
a.index('x')
ValueError: substring not found
str.find:检测字符串中是否包含子字符串str,可指定范围
a='hello world'
a.find('l')
2
a.find('x')
-1
5.比较字符串
str.cmp:比较两个对象,并根据结果返回一个整数。X< Y,返回值是负数 ,X>Y 返回的值为正数。
#python3已经没有该方法,官方文档是这么写的:
The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported.
Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed.
(If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
大意就是cmp()函数已经“离开”了,如果你真的需要cmp()函数,你可以用表达式(a > b) - (a < b)代替cmp(a,b)
a=100
b=80
cmp(a,b)
1
6.是否包含指定字符串
in |not in
a='hello world'
'hello' in a
True
'123' not in a
True
7.字符串长度
str.len
a='hello world'
print(len(a))
11
8.字符串中字母大小写转换
S.lower() #转换为小写
a='Hello World'
print(a.lower())
hello world
S.upper() #转换为大写
a='Hello World'
print(a.upper())
HELLO WORLD
S.swapcase() #大小写互换
a='Hello World'
print(a.swapcase())
hELLO wORLD
S.capitalize() #首字母大写
a='Hello World'
print(a.capitalize())
Hello world
9.将字符串放入中心位置可指定长度以及位置两边字符
str.center()
a='hello world'
print(a.center(40,'*'))
**************hello world***************
10.字符串统计
a='hello world'
print(a.count('l'))
3
11.字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值
S.startswith(prefix[,start[,end]]) #是否以prefix开头
S.endswith(suffix[,start[,end]]) #以suffix结尾
S.isalnum() #是否全是字母和数字,并至少有一个字符
S.isalpha() #是否全是字母,并至少有一个字符
S.isdigit() #是否全是数字,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.islower() #S中的字母是否全是小写
S.isupper() #S中的字母是否便是大写
S.istitle() #S是否是首字母大写的
12.字符串切片
str = '0123456789′
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
print str[:-5:-3] #逆序截取,截取倒数第五位数与倒数第三位数之间
这里需要强调的是,字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。
任何上面的函数改变了字符串后,都会返回一个新的字符串,原字串并没有变。有不对的地方请多多包涵。
3.python列表的常用操作方法
主要介绍了Python中列表(List)的详解操作方法,包含创建、访问、更新、删除、其它操作等。
1.创建列表。只要把逗号分隔的不同的数据项使用方括号括起来即可
List = ['wade','james','bosh','haslem']
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
2.添加新的元素
List.append('allen') #方式一:向list结尾添加 参数object
a=[1,2,3,4]
a.append(5)
print(a)
[1, 2, 3, 4, 5]
List.insert(4,'lewis') #方式二:插入一个元素 参数一:index位置 参数二:object
a=[1,2,4]
a.insert(2,3)
print(a)
[1, 2, 3, 4]
List.extend(tableList) #方式三:扩展列表,参数:iterable参数
a=[1,2,3]
b=[4,5,6]
a.extend(b)
print(a)
[1, 2, 3, 4, 5, 6]
3.遍历列表
for i in List:
print i,
4.访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
List = [1, 2, 3, 4, 5, 6, 7 ]
print(List[3])
4
5.从list删除元素
List.remove() #删除方式一:参数object 如有重复元素,只会删除最靠前的
a=[1,2,3]
a.remove(2)
print(a)
[1, 3]
List.pop() #删除方式二:pop 可选参数index删除指定位置的元素 默认为最后一个元素
a=[1, 2, 3, 4, 5, 6]
a.pop()
6
print(a)
[1, 2, 3, 4, 5]
del List #删除方式三:可以删除整个列表或指定元素或者列表切片,list删除后无法访问。
a=[1, 2, 3, 4, 5, 6]
del a[5]
print(a)
[1, 2, 3, 4, 5]
del a
print(a)
Traceback (most recent call last):
File "<pyshell#93>", line 1, in <module>
print(a)
6.排序和反转代码
List.reverse()
a=[1, 2, 3, 4, 5, 6]
a.reverse()
print(a)
[6, 5, 4, 3, 2, 1]
List.sort() #sort有三个默认参数 cmp=None,key=None,reverse=False 因此可以制定排序参数
a=[2,4,6,7,3,1,5]
a.sort()
print(a)
[1, 2, 3, 4, 5, 6, 7]
#python3X中,不能将数字和字符一起排序,会出现此报错
a=[2,4,6,7,3,1,5,'a']
a.sort()
Traceback (most recent call last):
File "<pyshell#104>", line 1, in <module>
a.sort()
TypeError: unorderable types: str() < int()
7.Python列表截取
Python的列表截取与字符串操作类型相同,如下所示:
L = ['spam', 'Spam', 'SPAM!']
操作:
Python 表达式 结果 描述
L[2] 'SPAM!' 读取列表中第三个元素
L[-2] 'Spam' 读取列表中倒数第二个元素
L[1:] ['Spam', 'SPAM!'] 从第二个元素开始截取列表
8.Python列表操作的函数和方法
列表操作包含以下函数:
1、cmp(list1, list2):比较两个列表的元素 (python3已丢弃)
2、len(list):列表元素个数
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):将元组转换为列表
列表操作常用操作包含以下方法:
1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项
8、list.reverse():反向列表中元素
9、list.sort([func]):对原列表进行排序
4.python字典的常用操作方法
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等。
字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:
1.创建字典
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
技巧:
字典中包含列表:dict={'yangrong':['23','IT'],"xiaohei":['22','dota']}
字典中包含字典:dict={'yangrong':{"age":"23","job":"IT"},"xiaohei":{"'age':'22','job':'dota'"}}
注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
2.访问字典里的值
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
print(dict['ob1'])
computer
如果用字典里没有的键访问数据,会输出错误如下:
print(dict['ob4'])
Traceback (most recent call last):
File "<pyshell#110>", line 1, in <module>
print(dict['ob4'])
访问所有值
dict1 = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
for key in dict1:
print(key,dict1[key])
ob3 printer
ob2 mouse
ob1 computer
3.修改字典
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
dict['ob1']='book'
print(dict)
{'ob3': 'printer', 'ob2': 'mouse', 'ob1': 'book'}
4.删除字典
能删单一的元素
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
del dict['ob1']
print(dict)
{'ob3': 'printer', 'ob2': 'mouse'}
删除字典中所有元素
dict1={'ob1':'computer','ob2':'mouse','ob1':'printer'}
dict1.clear()
print(dict1)
{}
删除整个字典,删除后访问字典会抛出异常。
dict1 = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
del dict1
print(dict1)
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
print(dict1)
NameError: name 'dict1' is not defined
5.更新字典
update()方法可以用来将一个字典的内容添加到另外一个字典中:
dict1 = {'ob1':'computer', 'ob2':'mouse'}
dict2={'ob3':'printer'}
dict1.update(dict2)
print(dict1)
{'ob3': 'printer', 'ob2': 'mouse', 'ob1': 'computer'}
6.映射类型相关的函数
dict(x=1, y=2)
{'y': 2, 'x': 1}
dict8 = dict(x=1, y=2)
dict8
{'y': 2, 'x': 1}
dict9 = dict(**dict8)
dict9
{'y': 2, 'x': 1}
dict9 = dict8.copy()
7.字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
dict1={'ob1':'computer','ob2':'mouse','ob1':'printer'}
print(dict1)
{'ob2': 'mouse', 'ob1': 'printer'}
2)键必须不可变,所以可以用数,字符串或元组充当,用列表就不行
dict1 = {['ob1']:'computer', 'ob2':'mouse', 'ob3':'printer'}
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
dict1 = {['ob1']:'computer', 'ob2':'mouse', 'ob3':'printer'}
TypeError: unhashable type: 'list'
8.字典内置函数&方法
Python字典包含了以下内置函数:
1、cmp(dict1, dict2):比较两个字典元素。(python3后不可用)
2、len(dict):计算字典元素个数,即键的总数。
3、str(dict):输出字典可打印的字符串。
4、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
1、radiansdict.clear():删除字典内所有元素
2、radiansdict.copy():返回一个字典的浅复制
3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4、radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果键在字典dict里返回true,否则返回false
6、radiansdict.items():以列表返回可遍历的(键, 值) 元组数组
7、radiansdict.keys():以列表返回一个字典所有的键
8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
分类:
Python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具