库的使用和变量的基本用法
一、库的常用方法
1. 库的定义
实现特定功能的⼯具箱
2. random库的导入
1 2 3 4
| import random
import random as r
|
3. random库的简单使用
1 2 3 4 5
| import random num1 = random.randint(1, 3) num2 = random.choice(["a", "b", "c"]) num3 = random.choice("def") print(num1, num2, num3)
|
⼆、 基础语法知识
1. 程序的编写方法
IPO程序编写方法包括三部分:输入、处理、输出
2. 缩进的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| while True: pass
if True: pass else: pass
try: pass except: pass
while True: if True: pass else: if True: pass
|
3. 注释的使用
注释的快捷方式ctrl
+ /
多行注释
1 2 3 4 5
| """ 多行注释使用三对引号来完成,上下各三个 使用方式 直接打出三对双引号,然后光标移到中间回车换行 """
|
1 2 3 4
| ''' 单引号同样可以用来做多行注释 注意不要与双引号混用 '''
|
三、变量的命名赋值和计算
1. 保留字
保留字是 Python 语⾔中一些已经被赋予特定意义的单词,这就要求在编写程序时,不能用这些 保留字作为标识符给变量、函数、类、模板以及其他对象命名。
1 2
| import keyword print(keyword.kwlist)
|
保留字 |
说明 |
and |
用于表达式运算,逻辑与操作 |
as |
用于类型转换 |
assert |
断言,用于判断变量或条件表达式的值是否为真 |
break |
中断循环语句的执行 |
class |
用于定义类 |
continue |
继续执行下一次循环 |
def |
用于定义函数或方法 |
del |
删除变量或者序列的值 |
elif |
条件语句。与 if,else 结合使用 |
else |
条件语句。与if,elif结合使用。也可以用于异常和循环使用 |
except |
包括捕获异常后的操作代码,与try,finally结合使用 |
exec |
用于执行python语句 |
for |
循环语句 |
finally |
用于异常语句。出现异常后,始终要执行finally包含的代码块。与try,except结合使用 |
from |
用于导入模块,与import结合使用 |
global |
定义全局变量 |
if |
条件语句。与else,elif结合使用 |
import |
用于导入模块,与from结合使用 |
in |
判断变量是否存在序列中 |
is |
判断变量是否为某个类的实例 |
lambda |
定义匿名函数 |
not |
用于表达式运算,逻辑非操作 |
or |
用于表达式运算,逻辑或操作 |
pass |
空的类,函数,方法的占位符 |
print |
打印语句 |
raise |
异常抛出操作 |
return |
用于从函数返回计算结果 |
try |
包含可能会出现异常的语句,与except,finally结合使用 |
while |
循环语句 |
with |
简化Python的语句 |
yield |
用于从函数依次返回值 |
2. 变量命名规则
变量名只能由数字字母下划线组成
数字不能作为变量命名的开头。
变量名中的字母是严格区分大小写的,也就是说,两个同样的单词,如果大小格式不一样,代表的意义也是完全不同的。
变量名不能和 Python 中的保留字相同。
3. 变量的赋值和重新赋值
1 2 3 4 5
| a = 1 b = 1 c = 1 c = a + b print(c)
|
4. 运算符
算数运算符
运算符 |
描述 |
+ |
加 - 两个对象相加 |
- |
减 - 得到负数或是一个数减去另一个数 |
* |
乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ |
除 - x除以y |
% |
取模 - 返回除法的余数 |
** |
幂 - 返回x的y次幂 |
// |
取整除 - 返回商的整数部分(向下取整) |
1 2 3 4 5 6
| a = 4 % 2 print(a) b = 3 % 2 print(b) c = 0 % 3 print(c)
|
赋值运算符
运算符 |
描述 |
实例 |
= |
简单的赋值运算符 |
c = a + b 将 a + b 的运算结果赋值为 c |
+= |
加法赋值运算符 |
c += a 等效于 c = c + a |
-= |
减法赋值运算符 |
c -= a 等效于 c = c - a |
*= |
乘法赋值运算符 |
c *= a 等效于 c = c * a |
/= |
除法赋值运算符 |
c /= a 等效于 c = c / a |
%= |
取模赋值运算符 |
c %= a 等效于 c = c % a |
**= |
幂赋值运算符 |
c **= a 等效于 c = c ** a |
//= |
取整除赋值运算符 |
c //= a 等效于 c = c // a |
1 2 3 4 5 6
| a = 1 a = a + 1 print(a) b = 1 b += 1 print(b)
|
1 2 3 4
| a = 3 b = 2 a = a ** b print(a)
|
1 2 3 4
| a = 3 b = 2 a **= b print(a)
|
⽐较运算符
运算符 |
描述 |
实例 |
== |
等于 - 比较对象是否相等 |
(a == b) 返回 False |
!= |
不等于 - 比较两个对象是否不相等 |
(a != b) 返回 true |
> |
大于 - 返回x是否大于y |
(a > b) 返回 False |
< |
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0 表示假。这分别与特殊的变量True和False等价 |
(a < b) 返回 true |
>= |
大于等于 - 返回x是否大于等于y |
(a >= b) 返回 False |
<= |
小于等于 - 返回x是否小于等于y |
(a <= b) 返回 true |
逻辑运算符
运算符 |
逻辑表达式 |
描述 |
and |
x and y |
布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 |
or |
x or y |
布尔”或” - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值 |
not |
not x |
布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True |
成员运算符
运算符 |
描述 |
实例 |
in |
如果在指定的序列中找到值返回 True,否 则返回 False |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in |
如果在指定的序列中没有找到值返回 True,否则返回 False |
x 不在 y 序列中 , 如果 x 不在 y 序列中返 回 True |
运算符优先级
运算符 |
优先级(由高到低) |
算术运算符 |
** |
* / % // |
+ - |
比较运算符 |
<= < > >= |
== != |
逻辑运算符 |
not |
and |
or |
==括号可以用来改变计算的优先级顺序==
5. 变量的计算
在混合运算中,不同的数值类型会⾸先转换为同一种类型,然后进⾏运算。转换遵守一定的 转换方向,如浮点型不可以转化为整型。四种数值类型转换顺序为布尔型–>整型–>浮点
1 2 3 4 5 6 7
| a = 1 b = 2.33 c = True d = 2.0 print(a + c) print(a + b) print(a + d)
|
列表
一、列表的基础知识
1. 列表的创建方式
输出结果:
2. 列表要素
列表的长度:取决于元素的个数
列表索引的范围:0 ~ 列表长度-1
访问列表中的值:通过索引访问
3. 列表索引
列表索引从 0 开始,第二个索引是 1,依此类推
索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推
1 2 3
| li=[1,2,3,4] print(li[1]) print(li[-2])
|
输出结果:
4. 利用索引来截取字符
列表名.[a : b]遵循左闭右开原则,从索引a开始,到索引b为止但不包括索引b代表的元素
1 2
| li=[1,2,3,4] print(li[1:3])
|
输出结果:
⼆、 列表的操作
1. 列表元素添加
append():
- 列表名.append(),不需要添加参数,从末尾添加元素
insert():
- 列表名.insert(a,b)
- b代表着要插入的元素,a代表着要插入的索引位置
1 2 3 4 5
| li=[1,2,3,4] li.insert(3,5) print(li) li.append(6) print(li)
|
输出结果:
1 2
| [1, 2, 3, 5, 4] [1, 2, 3, 5, 4, 6]
|
2. 列表要素
- pop():
- 列表名.pop(索引值)
- 删除指定索引值位置的元素
- 如果不填写索引值则默认删除列表最后一个元素
1 2 3
| li=[1,2,3,4] li.pop(2) print(li)
|
输出结果:
- del
- del 列表名[索引值]
- 删除指定位置的索引值,如果括号中未添加索引值则会报错
1 2 3
| li=[1,2,3,4] del li[2] print(li)
|
输出结果:
- remove():
- 列表名.remove(需要删除的元素)
- 如果列表内没有对应元素就会报错
- 如果有多个对应元素默认删除第一个
1 2 3
| li=[1,2,3,4] li.remove(2) print(li)
|
输出结果:
例2:
1 2 3 4
| li=[1,3,2,3,3,4] li.remove(3) print(li)
|
输出结果:
3. 对原列表进行排序:sort()
用法:列表名.sort()
1 2 3
| li=[1,3,2,5,39,4] li.sort() print(li)
|
输出结果:
4. 获取列表长度:len()
用法:len(列表名)
1 2 3
| li=[1,3,2,5,39,4] a=len(li) print(a)
|
输出结果:
5. 获取列表中元素的索引:index
用法:列表名.index(元素名)
1 2 3
| li=[1,3,2,5,39,4] a=li.index(39) print(a)
|
输出结果:
6. 统计列表中元素的个数:count
用法:列表名.count(元素名)
1 2 3
| li=[1,3,2,3,3,4] a=li.count(3) print(a)
|
输出结果:
7. 返回列表中元素的最大值:max()
用法:max(列表名)
1 2 3
| li=[1,3,2,5,39,4] a=max(li) print(a)
|
输出结果:
8. 返回列表中元素的最小值:min()
用法:min(列表名)
1 2 3
| li=[1,3,2,5,39,4] a=min(li) print(a)
|
输出结果:
9. 列表中元素拼接:join()
用法:”(需要拼接的内容)” + .join(列表名)
1 2 3
| li=["a","b","c","d","e"] str1="_".join(li) print(str1)
|
输出结果:
注意:只能当元素是字符串类型时使用
数据类型
一、数字类型数据
1. 数字类的数据主要有三种类型
整型(int):包含整数类型的数以及代表整数类型的变量。(如图一)
浮点型(float):带小数点的数以及代表浮点数类型的变量。(如图⼆)
布尔型(bool):布尔类型就是用于代表某个事情的真(对)或假(错),如果这个事情条件 判断成立,用 True(或 1)代表;如果这个事情条件判断不成立,用 False(或 0)代表(如图三)
-
2. 不同数据类型之间的混合运算
整型和浮点型:运算中包含整形和浮点型,结果默认以浮点型来表示(如图一)
整型和布尔型:如运算中包含整形和布尔型,结果默认以整型来表示(如图⼆)
总结:
在数字类型的数据中,不同数据类型之间可以进⾏运算,但是要遵循一定的转换规律:如前⾯ 的混合运算中,整数类型和浮点数类型想加,最终结果会转换为浮点数类型;布尔型和整数类型 相加,最终结果会转换为整型,所以在数字类型的数据的运算的转换顺序如下:
布尔型-->整型-->浮点型
二、字符串类型数据
1. 字符串类型数据(str)
⾮常容易识别,所有以单、双引号( ‘ 或“ )来创建的字符串都是字符串类型,双引号中包含可以 是是字母、中⽂字符、数字、符号。(如图⼀) 字符串类型数据的⻓度由包含多少个字符来决定。(如图⼆)
2. 字符串的连接
利用“+”号和format指令,这两种方法都是将字符串之间拼接起来。
3. 字符串的分割
- split(a,b)
- a部分代表的是以什么作为分割的依据
- b部分是表示将字符串分割成指定数加一数量的内容
1 2 3 4 5 6 7 8 9 10 11
| a = "abc def ghi" b = "ab!cd!ef" c = "ab#cde#fgh#"
a1 = a.split() b1 = b.split("!") c1 = c.split("#", 1)
print(a1) print(b1) print(c1)
|
输出结果:
1 2 3
| ['abc', 'def', 'ghi'] ['ab', 'cd', 'ef'] ['ab', 'cde#fgh#']
|
4. 字符串运算符
1 2
| a = "Hello" b = "Python"
|
字符串运算符 |
描述 |
实例 |
+ |
字符串连接 |
a + b 输出结果 :Hello Python |
* |
重复输出字符串 |
a*2 输出结果:HelloHello |
[] |
通过索引获取字符串中字符 |
a[1] 输出结果:1 |
[ : ] |
截取字符串中的一部分,遵循左闭右开原则,a[0:2]是不包含第3个字符的 |
a[1:4] 输出结果:ell |
in |
成员运算符-如果字符串中包含给定的字符返回True |
‘H’ in a 输出结果:True |
not in |
成员运算符-如果字符串中不包含给定的字符返回True |
‘M’ not in a 输出结果:True |
5. 字符串的索引值及截取
6. 字符串的格式化输出
三、类型转换
- int( ):将其他的数据类型转换成整数类型(图a)
- float( ):将其他的转换成字符串类型(图b)
- list( ):将其他类型转换成列表(图c)
- str( ) :将其他类型转化为字符串(图d)
程序结构与标准函数
一、程序结构
1. 循环
while 循环结构
for 循环结构
break 和 continue 语句
break:可以跳出for和while循环体,是直接结束循环
1 2 3 4 5 6 7
| n = 5 while n > 0: n -= 1 if n == 2: break print(n) print("循环结束")
|
输出结果:
continue:跳出本次循环,进入下一轮循环,没有结束循环
1 2 3 4 5 6 7
| n = 5 while n > 0: n -= 1 if n == 2: continue print(n) print("循环结束")
|
输出结果:
2. 分支结构
单分支结构
1 2 3 4
| if 条件语句: 语句1 else: 语句2
|
Python 的逻辑运算符 (and、or) 与布尔值
条件 |
结果 |
True and True |
True |
True and False |
False |
False and False |
False |
条件 |
结果 |
True or True |
True |
True or False |
True |
False or False |
False |
多分支结构
1 2 3 4 5 6
| if 条件语句: 语句1 elif 条件1: .... else: 语句n
|
3. 异常操作
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在 Python 无法正常处理程序时就会发生一个异常。
异常是 Python 对象,表示一个错误。
当 Python 脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
try-except语句
1 2 3 4 5 6 7 8
| try: fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!") except IOError: print("Error:没有找到文件或读取文件失败") else: print("内容写入文件成功") fh.close()
|
4. 标准函数
函数 |
作用 |
input([x]) |
从控制台获得用户输入,并返回一个字符串 |
print(x) |
将 x 字符串在控制台打印输出 |
pow(x, y) |
x 的 y 次幂,与 x**y 相同 |
round(x, [N]) |
对 x 四舍五入,保留 N 位小数 |
max(x1, x2,…,xn) |
返回 x1, x2,…,xn 的最大值,n没有限定 |
min(x1, x2,…,xn) |
返回 x1, x2,…,xn 的最小值,n没有限定 |
sum(x1, x2,…,xn) |
返回参数 x1, x2,…,xn 的算术和 |
len() |
返回对象(字符、列表、元组等)长度或项目个数 |
range(x) |
返回的是一个可迭代对象(类型是对象) |
eval(x) |
执行一个字符串表达式 x ,并返回表达式的值 |
int(x) |
将 x 转换为整数,x 可以是浮点数或字符串 |
float(x) |
将 x 转换为浮点数,x 可以是整数或字符串 |
str(x) |
将 x 转化为字符串 |
list(x) |
将 x 转换为列表 |