文章目录
一、环境
环境 | 版本 |
---|---|
操作系统 | CentOS 7.9.2009 |
Python | 3.9.7 |
二、变量
Python 3 中的变量命名有一定要求
- 必须要字母及下划线开始
- 其他符号可以是数字、字母或下划线
- 命名区分大小写,且不能使用关键字
关键字指的是为 Python 语言预留的单词,例如 import
,常见的关键字:
>>> keyword.kwlist
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
三、数据类型
3.1 数字
int
整数类型float
浮点数bool
布尔型complex
复数
脚本 3.1.py
#! /usr/bin/env python3
a = 100
b = 12.2
c = True
d = 4+3j
print(type(a),a)
print(type(b),b)
print(type(c),c)
print(type(d),d)
[root@localhost 2]# python3 3.1.py
<class 'int'> 100
<class 'float'> 12.2
<class 'bool'> True
<class 'complex'> (4+3j)
3.2 字符串
Python中的字符串用单引号 '
或双引号 "
括起来,同时使用反斜杠 \
转义特殊字符。
脚本 3.2.py
#! /usr/bin/env python3
a = "100"
b = 'hello'
c = "word"
d = '"hell,word"'
e = "\"hello\",\"word\""
print(type(a),a)
print(type(b),b)
print(type(c),c)
print(type(d),d)
print(type(e),e)
[root@localhost 2]# python3 3.2.py
<class 'str'> 100
<class 'str'> hello
<class 'str'> word
<class 'str'> "hell,word"
<class 'str'> "hello","word"
3.3 列表
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 []
之间、用逗号分隔开的元素列表。
脚本 3.3.py
#!/usr/bin/env python3
a = [ 'abcd', 786 , 2.23, 'awe', 70.2 ,[3,2,1]]
print(type(a))
[root@localhost 2]# python3 3.3.py
<class 'list'>
3.4 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 ()
里,元素之间用逗号隔开。
脚本 3.4.py
#!/usr/bin/env python3
a = ( 'abcd', 786 , 2.23, 'awe', 70.2 ,[3,2,1] )
print(type(a))
[root@localhost 2]# python3 3.4.py
<class 'tuple'>
3.5 字典
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { }
标识,它是一个无序的 键(key) : 值(value)
的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
脚本 3.5.py
#!/usr/bin/env python3
a = { 'a':2 , 'b':4 , 'c':'h' , 'd':"p" }
print(type(a))
[root@localhost 2]# python3 3.5.py
<class 'dict'>
四、运算
4.1 数学运算
脚本 4.1.py
#!/usr/bin/env python3
a = 100
b = 100.2
# 加法
e = a + b
# 减法
f = b - a
# 乘法
g = b * a
# 除法
h = b / a
# 整除
i = b // a
# 取余
j = b % a
# 乘方
k = b ** a
print(e)
print(f)
print(g)
print(h)
print(i)
print(j)
print(k)
[root@localhost 2]# python3 4.1.py
200.2
0.20000000000000284
10020.0
1.002
1.0
0.20000000000000284
1.2211588271895953e+200
4.2 或非运算
and
表示与运算,只有两个运算值都是 True
才返回 True
or
表示或运算,有一个为 True
则返回 True
脚本 4.2.py
#!/usr/bin/env python3
a = True
b = False
c = a and b
d = a or b
e = a and a and b
f = a or b or a
g = a or b and b
print(c)
print(d)
print(e)
print(f)
print(g)
[root@localhost 2]# python3 4.2.py
False
True
False
True
True
4.3 字符串运算
脚本 4.3.py
#!/usr/bin/env python3
a = "hello,word"
# 取第一个字符
print (a[0])
# 取第二个字符
print (a[1])
# 取倒数第一个字符
print (a[-1])
# 取倒数第二个字符
print (a[-2])
# 取前两个字符
print (a[:2])
# 取前三个字符
print (a[:3])
# 取第三个字符后的所有字符
print (a[2:])
# 取第四个字符后的所有字符
print (a[3:])
# 取第二到第四个字符
print (a[1:4])
# 输出字符串两次
print (a * 2)
# 连接字符串
print (a + "TEST")
[root@localhost 2]# python3 4.3.py
h
e
d
r
he
hel
llo,word
lo,word
ell
hello,wordhello,word
hello,wordTEST
五、结构控制
5.1 选择控制
非常多的编程语言都会使用 if
关键字作为流程控制,除此之外,Python 3 的流程控制还包括 elif
和 else
两个关键字,这两个在选择控制中都是可选的。elif
的意思是 else if
,增加进一步的判断是否选择该路径。
脚本 5.1.py
#!/usr/bin/env python3
a = int(input("Please enter Number: "))
if a > 10:
print('a > 10')
elif a == 10:
print('a == 10')
else:
print('a < 10')
[root@localhost 2]# python3 5.1.py
Please enter Number: 99
a > 10
5.2 循环控制
Python 中包含两种循环方式,一种是 for
,一种是 while
。
for
循环主要用在依次取出一个列表中的项目,对列表进行遍历处理。下一节中我们将详细讲解列表的数据结构,这里可以简单理解为一组值。
脚本 5.2.1.py
#!/usr/bin/env python3
strlist = ['hello','word','python3']
for i in strlist:
print(i)
[root@localhost 2]# python3 5.2.1.py
hello
word
python3
另外一种循环是 while
,while
不同于 for
是使用一个表达式作为判断的条件,如果条件为 False
停止循环。
(图片来自菜鸟教程)
脚本 5.2.2.py
#!/usr/bin/env python3
a = 1
while a < 10:
print(a)
a += 2
[root@localhost 2]# python3 5.2.2.py
1
3
5
7
9
我们在循环控制中,可以使用 break
和 continue
两个关键字
break
表示停止当前循环,continue
表示跳过当前循环轮次中后续的代码,去执行下一循环轮次。
当 a 为 5 的时候循环退出
脚本 5.2.3.py
#!/usr/bin/env python3
for a in range(10):
if a == 5:
break
print(a)
[root@localhost 2]# python3 5.2.3.py
0
1
2
3
4
当 a 为 50 的时候不执行后续的 print
代码:
脚本 5.2.4.py
#!/usr/bin/env python3
a = 100
while a > 10:
a -= 10
if a == 50:
continue
print(a)
[root@localhost 2]# python3 5.2.4.py
90
80
70
60
40
30
20
10
六、异常处理
Python 3 中常见的异常类型:
NameError
访问一个未定义的变量SyntaxError
语法错误,这个严格讲算是程序的错误IndexError
对于一个序列,访问的索引超过了序列的范围,可以理解为我的序列里只有三个元素,但要访问第4个KeyError
访问一个不存在的字典 Key,Key 如果不存在字典就会抛出这个异常ValueError
传入无效的参数AttributeError
访问类对象中不存在的属性
6.1 try/except
异常捕捉可以使用 try/except
语句。
如果在执行 try
子句的过程中发生了异常,那么 try
子句余下的部分将被忽略。如果异常的类型和 except
之后的名称相符,那么对应的 except
子句将被执行。
一个 try
语句可能包含多个 except
子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
(图片来自菜鸟教程)
脚本 6.1.py
#!/usr/bin/env python3
try:
x = int(input("请输入一个数字: "))
except ValueError:
print("您输入的不是数字!")
[root@localhost 2]# python3 6.1.py
请输入一个数字: a
您输入的不是数字!
6.2 try/except/finally
finally
关键字是用来进行清理工作,经常和 except
一起使用,即无论是正常还是异常,这段代码都会执行。
(图片来自菜鸟教程)
脚本 6.2.py
#!/usr/bin/env python3
try:
x = int(input("请输入一个数字: "))
except ValueError:
print("您输入的不是数字!")
finally:
print("程序结束")
[root@localhost 2]# python3 6.2.py
请输入一个数字: a
您输入的不是数字!
程序结束
[root@localhost 2]# python3 6.2.py
请输入一个数字: 1
程序结束
七、引入模块
在 Python 中我们可以使用 import XXX
或 from XXX import YYY
这样的形式来引入某个模块或者模块中的某个函数、类等内容到当前的代码文件中。
from urllib2 import urlopen