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
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
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
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
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)

4.删除字典

能删单一的元素

dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
del dict['ob1']
print(dict)

删除字典中所有元素

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
print(dict1)
NameError: name 'dict1' is not defined

5.更新字典

update()方法可以用来将一个字典的内容添加到另外一个字典中:

dict1 = {'ob1':'computer', 'ob2':'mouse'}
dict2={'ob3':'printer'}
dict1.update(dict2)
print(dict1)

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)

2)键必须不可变,所以可以用数,字符串或元组充当,用列表就不行

dict1 = {['ob1']:'computer', 'ob2':'mouse', 'ob3':'printer'}
Traceback (most recent call last):
File "<pyshell#125>", line 1, in
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():以列表返回字典中的所有值

posted on 2022-06-14 21:17  亚城木CC  阅读(222)  评论(0)    收藏  举报