Python 学习笔记

库的使用和变量的基本用法

一、库的常用方法

1. 库的定义

实现特定功能的⼯具箱

2. random库的导入

1
2
3
4
# 导入随机库
import random
# 导入随机库的同时取别名,此时r与random作用相同
import random as r

3. random库的简单使用

1
2
3
4
5
import random # 导入random库
num1 = random.randint(1, 3) # 获取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 循环 for 循环 if else 分支结构等结构中使用,注意每一次缩进上方必有一个冒号(:)
while True:
pass

if True:
pass
else:
pass

try:
pass
except:
pass

# 同时注意缩进的一个嵌套使用
while True:
if True:
pass
else:
if True:
pass

3. 注释的使用

  • 单行注释

1
2
# 这是单行注释
print("Hello, world!") # 这也是单行注释,用于行内
  • 注释的快捷方式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
 a = 1
print(a)
1
2
3
a = 1
a = 2
print(a)
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)
    1
    2
    a = 3 ** 2
    print(a)
    1
    2
    a = 3 // 2
    print(a)
  • 赋值运算符

运算符 描述 实例
= 简单的赋值运算符 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. 列表的创建方式

1
2
li=[1,2,3,4]
print(li)

输出结果:

1
[1, 2, 3, 4]

2. 列表要素

列表的长度:取决于元素的个数

列表索引的范围:0 ~ 列表长度-1

访问列表中的值:通过索引访问

3. 列表索引

列表索引从 0 开始,第二个索引是 1,依此类推

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推

1
2
3
li=[1,2,3,4]
print(li[1]) #正序索引
print(li[-2]) #逆序索引

输出结果:

1
2
2
3

4. 利用索引来截取字符

利用索引来截取字符

列表名.[a : b]遵循左闭右开原则,从索引a开始,到索引b为止但不包括索引b代表的元素

1
2
li=[1,2,3,4]
print(li[1:3])

输出结果:

1
[2, 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)

输出结果:

1
[1, 2, 4]
  • del
    • del 列表名[索引值]
    • 删除指定位置的索引值,如果括号中未添加索引值则会报错
1
2
3
li=[1,2,3,4]
del li[2]
print(li)

输出结果:

1
[1, 2, 4]
  • remove():
    • 列表名.remove(需要删除的元素)
    • 如果列表内没有对应元素就会报错
    • 如果有多个对应元素默认删除第一个
1
2
3
li=[1,2,3,4]
li.remove(2)
print(li)

输出结果:

1
[1, 3, 4]

例2:

1
2
3
4
#当列表中有多个相同元素的时候
li=[1,3,2,3,3,4]
li.remove(3)
print(li)

输出结果:

1
[1, 2, 3, 3, 4]

3. 对原列表进行排序:sort()

用法:列表名.sort()

1
2
3
li=[1,3,2,5,39,4]
li.sort()
print(li)

输出结果:

1
[1, 2, 3, 4, 5, 39]

4. 获取列表长度:len()

用法:len(列表名)

1
2
3
li=[1,3,2,5,39,4]
a=len(li)
print(a)

输出结果:

1
6

5. 获取列表中元素的索引:index

用法:列表名.index(元素名)

1
2
3
li=[1,3,2,5,39,4]
a=li.index(39)
print(a)

输出结果:

1
4

6. 统计列表中元素的个数:count

用法:列表名.count(元素名)

1
2
3
li=[1,3,2,3,3,4]
a=li.count(3)
print(a)

输出结果:

1
3

7. 返回列表中元素的最大值:max()

用法:max(列表名)

1
2
3
li=[1,3,2,5,39,4]
a=max(li)
print(a)

输出结果:

1
39

8. 返回列表中元素的最小值:min()

用法:min(列表名)

1
2
3
li=[1,3,2,5,39,4]
a=min(li)
print(a)

输出结果:

1
1

9. 列表中元素拼接:join()

用法:”(需要拼接的内容)” + .join(列表名)

1
2
3
li=["a","b","c","d","e"]
str1="_".join(li)
print(str1)

输出结果:

1
a_b_c_d_e

注意:只能当元素是字符串类型时使用


数据类型

一、数字类型数据

1. 数字类的数据主要有三种类型

  1. 整型(int):包含整数类型的数以及代表整数类型的变量。(如图一)

  2. 浮点型(float):带小数点的数以及代表浮点数类型的变量。(如图⼆)

  3. 布尔型(bool):布尔类型就是用于代表某个事情的真(对)或假(错),如果这个事情条件 判断成立,用 True(或 1)代表;如果这个事情条件判断不成立,用 False(或 0)代表(如图三)

  4. 数字类的数据主要有三种类型

2. 不同数据类型之间的混合运算

  1. 整型和浮点型:运算中包含整形和浮点型,结果默认以浮点型来表示(如图一)

  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) #spilt完整用法,以“#”为分割点,分割为“指数再加1”(2)块内容

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. 字符串的格式化输出

字符串的格式化输出

三、类型转换

  1. int( ):将其他的数据类型转换成整数类型(图a)
  2. float( ):将其他的转换成字符串类型(图b)
  3. list( ):将其他类型转换成列表(图c)
  4. str( ) :将其他类型转化为字符串(图d)

类型转换

程序结构与标准函数

一、程序结构

1. 循环

  • while 循环结构

    • 概念

      Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务

    • 基本形式
      1
      2
      while 判断条件:
      执行语句
    • 说明

      循环变员需要提前进行定义,且在循环内部需要进行增加,防止死循环
      判断条件后边需要写英文状态下的==冒号==
      重复执行的代码需要进行==缩进==,四个空格或者一个Tab
      判断条件可以是任何表达式,任何非零、非空的值
      当判断条件不成立时,循环结束

  • for 循环结构

    • 概念

      for 循环可以遍历任何序列的项目,如一个列表或者一个字符串

    • 基本形式
      1
      2
      for 循环变员 in 序列:
      执行语句
    • 说明

      for 循环语句后边需要写英文状态的==冒号==
      执行语句需要进行==缩进==,按 4 下空格或者一下Tab
      i 在 for 循环中是循环变量、但并没有初始化设置。这是由于 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("循环结束")

      输出结果:

      1
      2
      3
      4
      3
      循环结束
    • continue:跳出本次循环,进入下一轮循环,没有结束循环
      1
      2
      3
      4
      5
      6
      7
      n = 5
      while n > 0:
      n -= 1
      if n == 2:
      continue
      print(n)
      print("循环结束")

      输出结果:

      1
      2
      3
      4
      5
      4
      3
      1
      0
      循环结束

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 转换为列表