Python——基本数据类型(三)(重点!!!)
1. 变量与关键字
变量:
i = 1
print (i)
j = 2
print (j)
print打印结果:1、2
关键字:
import keyword
print (keyword.kwlist)
print打印结果:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2. 单行打印与多行打印
# 单行打印
s = "hello World,你好,世界!!!"
print(s)
# 多行打印,打印出来的效果是分为多行
# \n 代表回车键
print ("Hello World!! \n你好\n世界!!!")
print("""
hello World!
你好,世界!!
""")
# \叫做转义字符
print (""")
print打印结果:"
3. python基本数据类型
# python中的数据类型
# 整数数据类型 1、2、3、4
# 字符串:是使用一堆儿单引号或双引号包裹起来的字符
# 浮点数 1.23
# 布尔类型 True False
4. python中的算法运算
# 算法运算
first_number = 1
second_number = 2
print(first_number + second_number)
print(first_number - second_number)
print(first_number * second_number)
print(first_number / second_number)
print打印结果:3、-1、2、0
s1 = "hello"
s2 = "world"
print(s1 + s2)
# 字符串与字符串之间不可以相减,相乘,相除
print(s1 - s2)
print(s1 * s2)
print(s1 / s2)
print打印结果:字符串与字符串之间不可以相减,相乘,相除
f1 = True
f2 = False
print(f1 + f2)
print(f1 - f2)
print(f1 * f2)
print(f1 / f2)
print打印结果:不能除
5.数据类型转换
i = 1
print(type(i))
j = 1.2
print(type(j))
x = "aa"
print(type(x))
y = True
print(type(y))
print打印结果:
<type 'int'>
<type 'float'>
<type 'str'>
<type 'bool'>
# 整数类型可以转换其他的数据类型吗
# 整数类型转换浮点数
ii = float(i)
print(ii)
print(type(ii))
# 整数类型转换布尔值
# 1可以转换True、 0可以转换False
bi = bool(i)
print(bi)
print(type(bi))
print打印结果:
0.0、
<type 'float'>、
0、
<type 'str'>、
False、
<type 'bool'>、
浮点数转换其他三种
# 转整数 小数点后边的就都不要了
ij = int(j)
print(ij)
print(type(ij))
sj = int(j)
print(sj)
print(type(sj))
# 非0的数字类型,转换成布尔值的时候就会变成True
bj = bool(j)
print(bj)
print(type(bj))
1、
<type 'int'>、
1、
<type 'int'>、
1、
<type 'int'>、
# 字符串转换其他数据类型
# 字符串如果想要转换成整型,那么它必须看起来就像是一个数字才可以
# ix =int(x)
# print(ix)
# print(type(ix))
fx =float(x)
print(fx)
print(type(fx))
# 字符串转换布尔值时,控制为false,有值得时候为true
bx = bool(x)
print(bx)
print(type(bx))
iy = int(y)
print(iy)
print(type(iy))
0.0
<type 'float'>
0
<type 'str'>
ValueError: could not convert string to float: aa
False
<type 'bool'>
1
<type 'int'>
1
<type 'int'>
False
<type 'bool'>
Process finished with exit code 1
6 条件语句
在进行逻辑判断时,我们需要用到条件语句,Python 提供了 if
、elif
、else
来进行逻辑判断。格式如下所示:
if 判断条件1:
执行语句1...
elif
判断条件2:
执行语句2...
elif
判断条件3:
执行语句3...
else:
执行语句4...
7 循环语句
当需要多次重复执行时,我们要用到循环语句,Python 提供了 for 循环和 while 循环。
7.1 for 循环
for 循环可以遍历任何序列,比如:字符串。如下所示:
str = 'Python'
for s in str:
print(s)
输出结果:
Python
7.2 while 循环
while 循环,满足条件时进行循环,不满足条件时退出循环。如下所示:
sum = 0
m = 10
while m > 0:
sum = sum + m
m = m - 1
print(sum)
输出结果:
55
7.3 break
break 用在 for 循环和 while 循环语句中,用来终止整个循环。如下所示:
str = 'Python'
for s in str:
if s == 'o':
break
print(s)
输出结果:
Pyth
7.4 continue
continue 用在 for 循环和 while 循环语句中,用来终止本次循环。如下所示:
str = 'Python'
for s in str:
if s == 'o':
continue
print(s)
输出结果:
Pythn
8. pass 语句
pass 是空语句,它不做任何事情,一般用做占位语句,作用是保持程序结构的完整性。如下所示:
if True: pass
9 字符串基本使用
9.1 访问
访问单个字符
s = 'Python'
# 访问第一个字符 P
print(s[0])
访问范围内字符
s = 'Python'
# 访问 yt
print(s[1:3])
# 访问 Pyt
print(s[:3])
# 访问 hon
print(s[3:])
9.2 单个字符编码
Python 使用了 ord()
函数返回单个字符的编码,chr()
函数把编码转成相应字符。如下所示:
s = 'A'
print(ord(s))
print(chr(65))
输出结果:
65A
9.3 转义符
之前我们说过可以通过反斜杠 将一行语句分多行显示,其实就是
来转义字符,一些常见的转义字符如下表所示:
转义字符 | 描述 |
---|---|
`` | 在行尾使用时,用作续行符 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
9.4 运算符
之前我们已经介绍了大部分运算符,下面再来详细看一下字符串运算符。如下表所示:
运算符 | 描述 |
---|---|
+ | 连接符 |
* | 重复输出 |
[] | 通过索引获取字符串中字符 |
[ : ] | 获取字符串中的一部分 |
in | 字符串中是否包含指定字符 |
not in | 字符串中是否不包含指定字符 |
r/R | 字符串原样输出 |
使用示例如下所示:
s1 = 'Hello'
s2 = 'Python'
print('s1 + s2 -->', s1 + s2)
print('s1 * 2 -->', s1 * 2)
print('s1[0] -->', s1[0])
print('s1[0:2] -->',s1[0:2])
print('"H" in s1 -->','H' in s1)
print('"H" not in s1 -->','H' not in s1)
print('\r -->', R'\r')
输出结果:
s1 + s2 --> HelloPythons
1 * 2 --> HelloHellos
1[0] --> H
s1[0:2] --> He
"H" in s1 --> True
"H" not in s1 --> False
\r --> \r
9.5 格式化
当我们需要输出的内容中含有变量时,比如:Hello xxx
,xxx
为变量,此时便需要一种格式化字符串的方式,Python 使用 %
格式化字符串,常用占位符如下表所示:
占位符 | 描述 |
---|---|
%s | 格式化字符串 |
%d | 格式化整数 |
%f | 格式化浮点数 |
以字符串为例,如下所示:
print('Hello %s' % 'Python')
输出结果:
Hello Python
我们也可以使用字符串的 format()
方法进行格式化,先看下示例:
print('{0} {1}'.format('Hello', 'Python'))
这种方式是用传入的参数依次替换字符串内的占位符{0}、{1} ...
10 序列基本使用
10.1 索引
序列索引支持非负数和负数,索引为非负数,从 0
开始,如下所示:
索引为负数由右向左计数,从 -1
开始,如图所示:
下面通过一个示例作进一步了解,以字符串为例,如下所示:
str = 'Python'
print('str[0] str[-6] =', str[0], str[-6])
print('str[5] str[-1] =', str[5], str[-1])
输出结果:
str[0] str[-6] = P P
str[5] str[-1] = n n
从结果来看,我们使用非负数索引与负数索引得到的结果一致。
10.2 切片
切片操作可以访问一定范围内的元素,语法如下所示:
sname[start : end : step]
- sname:表示序列的名称;
- start:开始索引位置(包括该位置),默认为 0;
- end:表示切片的结束索引位置(不包括该位置),默认为序列的长度;
- step:步长。
以字符串为例,如下所示:
str = 'Python'
print(str[:3])
print(str[3:])
print(str[:])
输出结果:
Python
Python
10.3 相加
Python 支持类型相同的序列使用 +
作相加操作,该操作不会去除重复的元素。以字符串为例,如下所示:
str1 = 'Python'
str2 = 'Python'
print('str1 + str2 --> ',str1 + str2)
输出结果:
str1 + str2 --> PythonPython
2.4 相乘
Python 中,使用数字 n 乘以一个序列会生成新的序列,内容为原来序列被重复 n 次的结果。以字符串为例,如下所示:
str = 'Python'
print('2 * str --> ',2 * str)
输出结果:
2 * str --> PythonPython
10.5 元素是否在序列中
Python 使用 in
关键字检查某元素是否为序列的成员,语法如下:
val in seq
- val:要检查的元素;
- seq:指定的序列。
通过一个例子作进一步了解,以字符串为例,如下所示:
str = 'Python'
print('on'in str)
输出结果:
True
10.6 内置函数
函数 | 描述 |
---|---|
len() | 计算序列的长度 |
max() | 找出序列中的最大元素 |
min() | 找出序列中的最小元素 |
list() | 将序列转换为列表 |
str() | 将序列转换为字符串 |
sum() | 计算元素的和 |
sorted() | 对元素进行排序 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中 |
简单举几个例子,如下所示:
str = 'dbcae'
print('len -->', len(str))
print('max -->', max(str))
print('sorted -->', sorted(str))
输出结果:
len --> 5
max --> e
sorted --> ['a', 'b', 'c', 'd', 'e']
11. 列表基本使用
➢ 创建
列表中所有元素都放在一个中括号 []
中,相邻元素之间用逗号 ,
分隔,如下所示:
l = [1024, 0.5, 'Python']
➢ 访问
通过索引访问列表中的值,还可以使用 :
截取范围内的元素,如下所示:
l = [1024, 0.5, 'Python']
print('l[0] -->', l[0])
print('l[1:] -->', l[1:])
输出结果:
l[0] --> 1024
l[1:] --> [0.5, 'Python']
➢ 更新
除了对列表中现有元素进行修改外,还可以使用 append()
向列表中添加新元素,如下所示:
l = [1024, 0.5, 'Python']
# 修改列表中第二个元素
l[1] = 5
# 向列表中添加新元素
l.append('Hello')
print('l[1] -->', l[1])
print('l -->', l)
输出结果:
l[1] --> 5
l --> [1024, 5, 'Python', 'Hello']
➢ 删除
使用 del
删除列表中元素,如下所示:
l = [1024, 0.5, 'Python']
# 删除列表中第二个元素del l[1]
print('l -->', l)
输出结果:
l --> [1024, 'Python']
➢ 常用方法
① count()
统计列表中某个元素出现的次数,使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
print("l.count('d') -->", l.count('d'))
输出结果:
l.count('d') --> 2
② index()
查找某个元素在列表中首次出现的位置(即索引),使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
print("l.index('d') -->", l.index('d'))
输出结果:
l.index('d') --> 0
③ remove()
移除列表中某个值的首次匹配项,使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
l.remove('d')
print("l -->", l)
输出结果:
l --> ['b', 'a', 'f', 'd']
④ sort()
对列表中元素进行排序,使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
l.sort()
print('l -->', l)
输出结果:
l --> ['a', 'b', 'd', 'd', 'f']
⑤ copy()
复制列表,使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
lc = l.copy()
print('lc -->', lc)
输出结果:
lc --> ['d', 'b', 'a', 'f', 'd']
12. 元组基本使用
12.1 简介
元组(tuple)与列表类似,但元组是不可变的,可简单将其看作是不可变的列表,元组常用于保存不可修改的内容。
12.2 基本使用
➢ 创建
元组中所有元素都放在一个小括号 ()
中,相邻元素之间用逗号 ,
分隔,如下所示:
t = (1024, 0.5, 'Python')
➢ 访问
与访问列表中元素类似,如下所示:
t = (1024, 0.5, 'Python')
print('t[0] -->', t[0])
print('t[1:] -->', t[1:])
输出结果:
t[0] --> 1024
t[1:] --> (0.5, 'Python')
➢ 修改
元组中元素不能被修改,我们要用重新赋值的方式操作,如下所示:
t = (1024, 0.5, 'Python')
t = (1024, 0.5, 'Python', 'Hello')
print('t -->', t)
输出结果:
t --> (1024, 0.5, 'Python', 'Hello')
➢ 删除
元组中的元素不能被删除,我们只能删除整个元组,如下所示:
t = (1024, 0.5, 'Python')
del t
print('t -->', t)
输出结果:
NameError: name 't' is not defined
由于元组实例被删除,所以输出了异常信息。
➢ 常用方法
① len()
计算元组中元素个数,使用如下所示:
t = (1024, 0.5, 'Python')
print('len(t) -->', len(t))
输出结果:
len(t) --> 3
② max() 和 min()
返回元组中元素最大、最小值,使用如下所示:
t = ('d', 'b', 'a', 'f', 'd')
print('max(t) -->', max(t))
print('min(t) -->', min(t))
输出结果:
max(t) --> f
min(t) --> a
③ tuple()
将列表转换为元组,使用如下所示:
l = ['d', 'b', 'a', 'f', 'd']
t = tuple(l)
print('t -->', t)
输出结果:
t --> ('d', 'b', 'a', 'f', 'd')
13 字典
字典的内容在花括号 {}
内,键-值(key-value)之间用冒号 :
分隔,键值对之间用逗号 ,
分隔,比如创建字典 d,如下所示:
d = {'name':'小明', 'age':'18'}
# 使用 dict 函数
# 方式一
l = [('name', '小明'), ('age', 18)]
d = dict(l)
# 方式二
d = dict(name='小明', age='18')
# 空字典
d = dict()
d = {}
字典中的值通过 key 进行访问,如下所示:
>>> d = dict(name='小明', age='18')
>>> d['name']
'小明'
# 使用 get 方法
>>> d.get('name')
'小明'
修改操作,以修改 age 为例,如下所示:
>>> d = dict(name='小明', age='18')
>>> d['age'] = '20'
>>> d['age']
'20'
清空集合,如下所示:
>>> d = dict(name='小明', age='18')
>>> d.clear()
>>> d{}
获取字典的长度,如下所示:
>>> d = dict(name='小明', age='18')
>>> len(d)
2
14 集合
集合(set)与字典相同均存储 key,但也只存储 key,因 key 不可重复,所以 set 的中的值不可重复,也是无序的。
集合使用花括号 {}
或者 set()
函数创建,如果创建空集合只能使用 set()
函数,以创建集合 s 为例,如下所示:
s = {'a', 'b', 'c'}
# 使用 set 函数
s = set(['a', 'b', 'c'])
# 空集合
s = set()
集合中重复的元素会被自动过滤掉,如下所示:
>>> s = {'a', 'a', 'b', 'c', 'c'}
>>> s
{'a', 'c', 'b'}
添加元素可以使用 add
或 update
方法,如果元素已经存在,则不进行操作,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.add('d')
>>> s
{'a', 'd', 'c', 'b'}
>>> s.update('e')
>>> s
{'a', 'b', 'e', 'd', 'c'}
# 添加已经存在的元素 a
>>> s.add('a')
>>> s
{'a', 'b', 'e', 'd', 'c'}
删除元素使用 remove
方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.remove('c')
>>> s
{'a', 'b'}
清空集合使用 clear
方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.clear()
>>> s
set()
获取集合的长度,同样使用 len
方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> len(s)3