1 变量和简单数据类型
变量命名格式:变量名 = “赋值”
1.1 变量使用规范
使用变量时,需要遵守一些规则。违反这些规则将引发错误。
~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。
~变量名不能将Python保留字和函数名作为变量名。如print等
如下是python3的33个保留字列表:
~变量名要简单又具有描述性。如name比n好,user_name比u_n好。
~慎用大写字母I和O,避免看错成数字1和0。
1.2 字符串
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中引号包括单引号和双引号。这种灵活性能够在字符串中包含引号和撇号,如:
str = "I'm David"
str1 = 'I told my friend,"i love Python"'
常用字符串操作方法
以首字母大写的方式显示每个单词:
name = "hello python world"
print(name.title())
Hello Python World
将字符串改为全部大写或全部小写:str1 = "I love python"
print(str1.upper()) #将字符串改为全部大写
I LOVE PYTHON
print(str1.lower()) #将字符串改为全部小写
i love python
字符串合拼(拼接)
Python使用加号(+)来合拼字符串,如:
first_name = "Guido"
last_name = "van Rossum"
full_name = first_name + " " + last_name
print(full_name)
Guido van Rossum
使用制表符\t或换行符\n添加空白:print("Languages:\n\tPython\n\tC++\n\tPHP")
Languages:
Python
C++
PHP
删除字符串的空格:name = " p y t h o n "
print(name.rstrip()) #删除字符串右端空格
p y t h o n
print(name.lstrip()) #删除字符串左端空格
p y t h o n
print(name.strip()) #删除字符串两端空格
p y t h o n
print(name.replace(' ','')) #删除字符串全部空格包括制表符和换行符
python
字符串的序号
字符串是字符的序列,可以按照单个字符或字符片段进行索引。
name = "Hello World"
print(name[0])
H
print(name[0:-1])
Hello Worl
print(name[-1])
d
print(name[::])
Hello World
print(name[0:11])
Hello World
找到字符串中最低字符索引号:S.find(sub [,start [,end]]) -> int
失败时返回-1
name = "hello world"
print(name.find('d'))
10
返回某些字符出现的次数:S.count(sub[, start[, end]]) -> intname = "hello world"
print(name.count('l'))
3
把字符串由分隔符返回一个列表:S.split([sep [,maxsplit]]) -> list of strings,如果给定maxsplit,则最多为maxsplitname = "hello world"
print(name.split(' '))
['hello', 'world']
print(name.split(' ',0))
['hello world']
字符串格式化输出(format和%用法)
%方法格式代码
"{}:计算机{}的CPU占用率为{}%".format('2019-03-25','python',10) #S.format(args, *kwargs) -> string
'2019-03-25:计算机python的CPU占用率为10%'
"%s:计算机%s的CPU占用率为%d%%" % ('2019-03-25','python',10) #%用法
'2019-03-25:计算机python的CPU占用率为10%
小结:可以用help函数查看字符串的相关操作,比如help(str.find)
2 组合数据类型
2.1 集合类型
集合的定义及操作
~集合用大括号{}表示,元素间用逗号分隔;
~建立集合类型用{}或set();
~建立空集合类型,必须用set();
~集合元素之间无序;
~集合中每个元素唯一,不存在相同元素
A = {"python",'666',("wenwei-blog",666)}
{'python', '666', ('wenwei-blog', 666)}
B = set("pypy")
{'y', 'p'}
C = {"python",123,"python",123}
{'python', 123}
集合操作符
6个操作符
4个增强操作符
集合操作方法
集合应用场景
包含关系比较;数据去重。
2.1 序列类型定义
~序列是具有先后关系的一组元素
~序列是一个基类类型(基本数据类型)
~序列类型分为字符串、列表、元组类型
2.2 序列类型之列表
列表由一系列按特定顺序排列的元素组成,用方括号[]来表示列表。
列表的增删改查相关操作
函数或方法
描述
实例
L[i]=x
替换列表L第i数据项为x
L = ['Python','PHP','JavaScript','C++']
L[1] = 'Java'
L
['Python', 'Java', 'JavaScript', 'C++']
L[i:j]=L1
用列表L1替换列表L中第i到j项数据
L
['Python', 'Java', 'JavaScript', 'C++']
L1 = ['C','Go']
L[0:2]=L1
L
['C', 'Go', 'JavaScript', 'C++']
del L[i:j:k]
删除列表L第i到第j项以k为步数的数据
L
['C', 'Go', 'JavaScript', 'C++', 'Java', 'C#', 'Ruby', 'Lua']
del L[1:6:2]
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua']
L+=L1或L.extend(L1)
将列表L1元素增加到列表L中
L;L1
['C', 'JavaScript', 'Java', 'Ruby', 'Lua']
['C', 'Go']
L+=L1
L;L1
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']
['C', 'Go']
L*=n
将L列表的元素重复n次
L1*=2
L1
['C', 'Go', 'C', 'Go']
L.append(x)
在L列表最好添加元素x
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']
L.append('Python')
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.clear()
删除列表L的所有元素
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.clear()
L
[]
L1 = L.copy()
复制L列表生成新的L1列表
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L1 = L.copy()
L1
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.insert(i,x)
//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjYyODE0OA==.html
在列表L的第i位置增加元素x
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.insert(2,'PHP');L
['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.pop(i)
将列表L中的第i项元素删除
L;L.pop(2);
['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
'PHP'
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.remove(x)
将列表的第一个x元素删除
L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.remove('C')
L
['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
L.reverse(x)
将列表L中的元素反转
L;L.reverse();L
['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
['Python', 'Go', 'C', 'Lua', 'Ruby', 'Java', 'JavaScript']
L.sort()
将列表L的元素按首字母顺序排序
L.sort()
L
['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']
L.index(x)
获取列表L的x元素的索引号
L.index('Python')
5
L
['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']
对列表数字执行简单统计计算
digits = [1,23,434,55,44,67]
min(digits)
1
max(digits)
434
sum(digits)
624
列表相关练习
练习1:创建一个列表,其中包含数字1-100并打印出来然后计算列表数字的总值。
digits = [value for value in range(1,101)];sum(digits)
5050
练习2:求1-20的奇数for i in range(1,21,2):
print(i)
1
3
5
7
9
11
13
15
17
19
练习3: 输出3-30以内能被3整除的数字
lists = [n for n in range(3,31)]
lists
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
for i in lists:
if i % 3 == 0:
print(i)
3
6
9
12
15
18
21
24
27
30
2.3 序列类型之元组
元组其实跟列表差不多,也是存一组数据,只不过它一旦创建便不能修改,所以又叫只读列表
它只有两个方法,一个是count(统计元组某个元素出现的次数tuple.count('str')),一个是index(查看某个元素的索引号tuple.index('str'))
names = ('zhiwenwei','zhouyouxian')
names.index('zhiwenwei')
0
names.count('zhiwenwei')
1
//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDE4Mjk3Ng==.html
元组练习题
有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
a. 请问tu变量中的第一个元素 “alex” 是否可被修改?
元组不可直接被修改,需要转换成列表或字典
b. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k2是字典的键,对应的值是列表可修改:tu[1][2]['k2']='Seven'
c. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k3是字典的键,对应的值是元组不可修改
2.4 字典类型
字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。
Python语言中通过字典实现映射,通过大括号{}建立,建立模型如下:
{键1:值1,键2:值2,...}
city = {'中国':'北京','美国':'纽约','法国':'巴黎'}
city
{'中国': '北京', '美国': '纽约', '法国': '巴黎'}
拓展:字典是无序的。python语言中,字符串、列表、元组都是采用数字索引,字典采用字符索引。
字典的函数和方法
字典的基本原则
字典是一个键值对的集合,该集合以键为索引,一个键对应一个值信息
字典中的元素以键信息为索引访问
字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。
2.5 jieba库基本介绍
jieba库提供三种分词模式,最简单只需要掌握一个函数;
jieba是优秀的中文分词第三方库,需额外安装
jieba库的安装方法
pip install jieba