python 基础(笔记)

文章目录

      • [1. 环境安装](#1. 环境安装)
      • [2. 第一个程序 hello word](#2. 第一个程序 hello word)
      • [3. 注释](#3. 注释)
      • [4. 变量](#4. 变量)
        • [4.1 变量声明](#4.1 变量声明)
        • [4.2 命名规则](#4.2 命名规则)
        • [4.3 命名规范](#4.3 命名规范)
      • [5. 运算符](#5. 运算符)
        • [5.1 算术运算符](#5.1 算术运算符)
        • [5.2 赋值运算符](#5.2 赋值运算符)
        • [5.3 比较运算符](#5.3 比较运算符)
      • [6. 数据类型](#6. 数据类型)
        • [6.1 数据类型](#6.1 数据类型)
        • [6.2 数据类型的转换](#6.2 数据类型的转换)
      • [7. 字符串操作](#7. 字符串操作)
        • [7.1 字符串定义的几种方式](#7.1 字符串定义的几种方式)
        • [7.2 字符串拼接](#7.2 字符串拼接)
        • [7.3 字符串格式化](#7.3 字符串格式化)
        • [7.4 字符串精度控制](#7.4 字符串精度控制)
      • [8. 数据输入](#8. 数据输入)
      • [9. 语句](#9. 语句)
        • [9.1 if 判断语句](#9.1 if 判断语句)
        • [9.2 循环语句1](#9.2 循环语句1)
          • [9.2.1 while 循环](#9.2.1 while 循环)
          • [9.2.2 for 循环](#9.2.2 for 循环)
        • [9.3 循环语句2](#9.3 循环语句2)
          • [9.3.1 range 语句](#9.3.1 range 语句)
          • [9.3.2 for 循环临时变量作用域](#9.3.2 for 循环临时变量作用域)
          • [9.3.3 continue 与 break](#9.3.3 continue 与 break)
      • [10. 函数](#10. 函数)
        • [10.1 函数的作用](#10.1 函数的作用)
        • [10.2 函数的定义](#10.2 函数的定义)
        • [10.3 函数的描述](#10.3 函数的描述)
        • [10.4 函数的嵌套](#10.4 函数的嵌套)
        • [10.5 全局变量与局部变量](#10.5 全局变量与局部变量)
        • [10.6 函数案例,ATM 机](#10.6 函数案例,ATM 机)
      • [11. 数据容器](#11. 数据容器)
        • [11.1 列表](#11.1 列表)
          • [11.1.1 列表的定义](#11.1.1 列表的定义)
          • [11.1.2 列表的基本操作](#11.1.2 列表的基本操作)
          • [11.1.3 列表的方法](#11.1.3 列表的方法)
          • [11.1.4 列表的遍历](#11.1.4 列表的遍历)
        • [11.2 元组](#11.2 元组)
          • [11.2.1 元组的定义](#11.2.1 元组的定义)
          • [11.2.2 元组的基本操作](#11.2.2 元组的基本操作)
          • [11.2.3 元组的方法](#11.2.3 元组的方法)
          • [11.2.4 元组的遍历](#11.2.4 元组的遍历)
        • [11.3 字符串](#11.3 字符串)
          • [11.3.1 字符串的基本操作](#11.3.1 字符串的基本操作)
          • [11.3.2 字符串的方法](#11.3.2 字符串的方法)
          • [11.3.3 字符串的遍历](#11.3.3 字符串的遍历)
        • [11.4 序列的切片](#11.4 序列的切片)
          • [11.4.1 序列的定义](#11.4.1 序列的定义)
          • [11.4.2 序列的操作](#11.4.2 序列的操作)
        • [11.5 集合](#11.5 集合)
          • [11.5.1 集合的定义](#11.5.1 集合的定义)
          • [11.5.2 集合的方法](#11.5.2 集合的方法)

1. 环境安装

  • 需要安装 python 解析器(解析器是吧 python 语言,解析成计算机可以认识的01代码)、代码编辑器(方法编写 python 代码)
  • 解析器下载 exe 直接双击安装即可
  • 编辑器需要去官网下载 PyCharm 面向专业开发者的 Python IDE

2. 第一个程序 hello word

py 复制代码
# 以下代码会打印一个 hello word
print("hello word")

3. 注释

py 复制代码
# 我是单行注释

"""
  我是多行注释
"""

4. 变量

4.1 变量声明
py 复制代码
# 此时 num 就是一个变量,变量可以被修改也可以做运算等
num = 123
4.2 命名规则
  1. 内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
  2. 区分大小写
  3. 不可使用关键字,True、False、None、and、as、if、import、yield... 等
4.3 命名规范
  1. 见名知意
  2. 下划线命名法
  3. 一个单词字母全小写

5. 运算符

5.1 算术运算符
运算符 描述 示例
+ 10 + 10 = 20
- 10 - 5 = 5
* 10 * 10 = 100
/ 10 / 10 = 1
// 取整除 9 // 2 = 4
% 去余 9 % 2 = 1
** 指数 2 ** 3 = 8
5.2 赋值运算符
运算符 描述 解释
= 赋值运算符 直接赋值
+=、-=、*=、/=、%=、**=、//= 复合赋值运算符 先本身和后面的数值进行计算,在赋值给自己
py 复制代码
num += 3 # num = num + 3
5.3 比较运算符
运算符 描述 实例
== 比较左右两边是否相等,返回布尔值 3 == 3 为 True
!= 比较左右两边是否不相等,返回布尔值 3 != 3 为 False
> 比较左边是否大于右边,返回布尔值 5 > 3 为 True
< 比较左边是否小于右边,返回布尔值 5 < 3 为 False
>= 比较左边是否大于等于右边,返回布尔值 4 >= 4 为 True
<= 比较左边是否小于等于右边,返回布尔值 5 <= 4 为 False

6. 数据类型

6.1 数据类型

type(xxx):可以用于查看数据类型

列:

  • type(123) ==> <class 'int'>
  • type(123.123) ==> <class 'float'>
  • type(True) ==> <class 'bool'>
类型 描述 说明
数字(Number) 支持: 整数(int)、浮点数(float)、复数(complex)、布尔(bool) 整数:10、-10,浮点数:13.14、-13.14,复数:4+3j,以 j 结尾表示复数,布尔:既真和假,True 表示为真记作1,False 表示假记作0
字符串(String) 描述文本的一种数据类型 字符串由任意数量的字符组成
列表(List) 有序的可变序列 Python 中使用最频繁的数据类型,可有序记录一堆数据
元组(Tuple) 有序的不可变序列 可有序的记录一堆不可变的 Python 数据集合
集合(Set) 无序不重复集合 可无序的记录一堆不重复的 Python 数据集合
字典(Dictionary) 无序的 Key-Value 集合 可无序记录一堆 Key-Value 型的 Python 数据集合
6.2 数据类型的转换
  • int(x):将 x 转换为 int 类型,x 有限制,当 x 为字符时,字符内容只能为纯数字,不然会报错
  • float(x):将 x 转换为 float 类型,x 有限制
  • str(x):将 x 转换为 str 类型,x 没有限制

7. 字符串操作

7.1 字符串定义的几种方式
  • 单引号定义

    py 复制代码
    'hello word'
  • 双引号定义

    py 复制代码
    "hello word"
  • 三引号定义

    py 复制代码
    # 三引号的方式,如果不用变量接收那么就是多行注释,如果用变量接收就是多行字符串,*三引号定义建议使用双引号
    s = """
    	hello word
    	hello word
    """
  • 引号之间的嵌套

    py 复制代码
    # \ 为转义字符,把特殊字符当做字符使用
    "'hello word'"
    '"hello word"'
    "\"hello word\""
    '\'hello word\''
7.2 字符串拼接
py 复制代码
# 字符串拼接都是使用 + 号,可以字符串与字符串拼接,也可以和变量拼接
h = "hello"
w = "word"

h + w
h + "word"
"hello" + "word"
7.3 字符串格式化
  • %s 插入字符,"hello %s" % "word"
  • %:表示占位
  • s:表示插入的位置
py 复制代码
# 如果为多个 %s,后面则需要一个小括号一一对应
print("大家好我叫%s,今年%s岁了" % ("张三", 18))
格式符号 转化
%s 将内容转换成字符串,放入占位位置
%d 将内容转换成整数,放入占位位置
%f 将内容转换成浮点数,放入占位位置
  • f"内容{变量}":第二种插入方式,字符串前面加上一个 f 可以直接使用变量
7.4 字符串精度控制
  • 以下代码将内容转换成浮点数会出现精度丢失的问题

    py 复制代码
    print("大家好我叫%s,今年%f岁了" % ("张三", 18))
    # 大家好我叫张三,今年18.000000岁了
  • 需要对数字做精度控制,我们可以使用辅助符号 "m.n" 来控制数据的宽度和精度

    • m:控制数字整数部分的长度,设置的长度小于数字的长度,不生效,大于则空格补齐
    • n:控制数字小数部分精度,设置的长度小于小数的长度,四舍五入,大于则零补齐`
    • 例:"%7.2f" % 15.146 ==> [空格][空格]15.15(一共有七个字符长度)

8. 数据输入

  • input("提示内容")

  • input() 会中断程序的执行,等到键盘按下回车,才会执行后续的代码

  • input() 输入的内容始终为字符串

    py 复制代码
    name = input("请输入你的名字")
    
    print(f"你的名字是:{name}")

9. 语句

9.1 if 判断语句
  • if

    py 复制代码
    """
      语法(根据 tab 来判断是否属于当前 if 语句,规范为 4 个空格)
    
    if 判断条件:
        满足条件执行结果
        满足条件执行结果
    
    不受 if 的约束
    """
    
    # 代码示例,只有最后一个 print 才会打印
    age = 16
    
    if age > 18:
        print("我已经成年了")
        print("我长大了")
    
    print("我不知道我多少岁")
  • else

    py 复制代码
    """
    语法
    
    if 判断条件:
        满足条件执行结果
    else:
        不满足条件执行结果
    """
  • if elif else

    py 复制代码
    """
    语法
    
    注意一个语句中只会执行一个条件,如果多个条件同时满足,执行最先匹配的
    if 判断条件:
        满足条件执行结果
    elif 判断条件:
        满足条件执行结果
    ...elif
    else:
        不满足条件执行结果
    """
  • if 嵌套

    py 复制代码
    # 嵌套也是根据 tab 来判断的
    if True:
        print("第一层if开始")
        if True:
            print("第二层if")
    
        print("第一层if结束")
    
    print("最外层if")
9.2 循环语句1
9.2.1 while 循环
py 复制代码
# 如果条件一直满足就会一直执行,嵌套和 if 用法一样,这里就不一一叙述了
while 条件:
    满足条件执行结果
9.2.2 for 循环
py 复制代码
"""
# 嵌套和 while 用法一样
待处理的数据集(序列类型),字符串、列表、元组...

for 临时变量 in 待处理的数据集:
"""
name = "abcd"

for k in name:
	print(k)

# a
# b
# c
# d
9.3 循环语句2
9.3.1 range 语句
  • 作用:获得一个数字序列
  • 语法:
    • range(num):获取一个从 0 ~ num - 1 的数字序列
    • range(num1, num2):获取一个从 num1 ~ num2 - 1 的数字序列
    • range(num1, num2, step):步长不在是 1 了,比如 (5, 10, 2) ==> 5、7、9
py 复制代码
for i in range(5)
	print(i)

# 0
# 1
# 2
# 3
# 4
9.3.2 for 循环临时变量作用域
py 复制代码
# 这种情况外层的 print 语句是可以访问到变量 i 的,但是规范上不建议这么做
for i in range(3):
    print(i)

print("我是外层的i", i)

# 0
# 1
# 2
# 我是外层的i 2


# 最好是在外层在定义一个 i
i = 0
for i in range(3):
    print(i)

print("我是外层的i", i)
9.3.3 continue 与 break
  • continue 与 break 都是对当前层的影响

  • continue 跳过当前循环

    py 复制代码
    for i in range(3):
        print("我是前面的", i)
        continue
        print("我是后面的", i)
    
    # 我是前面的 0
    # 我是前面的 1
    # 我是前面的 2
  • break 结束循环语句

    py 复制代码
    for i in range(3):
         print("我是前面的", i)
         break
         print("我是后面的", i)
    
    # 我是前面的 0

10. 函数

10.1 函数的作用
  • 将功能封装在函数内,可供随时随地的重复利用
  • 提高代码的复用性,减少重复代码,提高开发效率
10.2 函数的定义
  • 函数调用时传入的实参与形参对应
  • 函数 return 的值,调用时可以接收到,如果不写 return 默认返回 None
  • 在当前作用域中如果 return 后面还有代码,则 return 后面的代码不会执行
  • 函数要先定义才能使用
py 复制代码
def 函数名称(形参1, 形参2):
	# 函数体 code

	# 函数返回
    return ""

# 函数调用
函数名称(实参1, 实参2)
10.3 函数的描述
py 复制代码
# 键盘敲三个 ",然后回车,编辑器直接会出当前参数和返回值的架子,需要自行添加详细描述
def add(a, b):
    """
    两数相加
    :param a: 参数1
    :param b: 参数2
    :return: 返回两个数的和
    """
	return a + b
10.4 函数的嵌套
py 复制代码
# 代码从上向下依次执行
def a():
    print("我第二个执行")

def b():
    print("我第一个执行")
    a()
    print("我第三个执行")

b()

# 我第一个执行
# 我第二个执行
# 我第三个执行
10.5 全局变量与局部变量
py 复制代码
# 函数中定义的变量外部无法访问
def a():
    num = 100
a()
print(num) # name 'num' is not defined


# 函数中无法修改全局的变量(但是可以拿到),下面这段代码函数 a 中的 num 相当于又在局部声明了一个
num = 50
def a():
    num = 100
a()
print(num) # 50


# global 关键字,设置内部的变量为全局变量
num = 50
def a():
    global num
    num = 100
a()
print(num) # 100
10.6 函数案例,ATM 机
py 复制代码
"""
	初始账户有 5000
	重复一下操作直到退出,1:查看余额,2:存款,3:取款,4:退出
"""

money = 5000
name = input("请输入您的名称")
flag = True

def view():
    """
    查看余额
    :return:
    """
    print(f"{name}的余额为{money}")


def save():
    """
    存款
    :return:
    """
    num = int(input("请输入存款金额"))
    global money
    money += num


def take():
    """
    取款
    :return:
    """
    num = int(input("请输入取款金额"))
    global money
    if num > money:
        print("取款失败,账号没有这么多余额")
    else:
        money -= num


def main():
    """
    主程序
    :return:
    """
    i = int(input("请输入您的操作,1:查看余额,2:存款,3:取款,4:退出"))
    if i == 1:
        view()
    elif i == 2:
        save()
    elif i == 3:
        take()
    else:
        global flag
        flag = False

while flag:
    main()

11. 数据容器

11.1 列表
11.1.1 列表的定义
py 复制代码
# 字面量
[元素1, 元素2, 元素3, 元素4, ...]

# 定义变量
变量名称 = [元素1, 元素2, 元素3, 元素4, ...]

# 定义空列表
变量名称 = []
变量名称 = list()
11.1.2 列表的基本操作
py 复制代码
# 定义一个普通列表
arr1 = ["元素1", "元素2", "元素3", "元素4"]

# 定义一个嵌套列表
arr2 = ["元素1", ["元素2_1", "元素2_2"], "元素3"]

# 通过列表下标获取列表中的数据
# 从左向右 0、1、2、... ,从右向左 -1、-2、-3、...
print(arr1[0]) # 元素1
print(arr1[-1]) # 元素4

# 或者嵌套列表中的数据
print(arr2[1][0]) # 元素2_1

# 获取超出范围的内容,会报错
print(arr[4]) # IndexError: list index out of range

# 修改列表中某个元素的值
arr1[0] = "我是修改的值"

# 删除列表中某个元素的值
del arr1[0]

# 获取列表的长度
len(arr)
11.1.3 列表的方法
py 复制代码
# 注,列表统一使用 arr
arr = [1, 2, 3]
方法名称 作用 示例 返回值 原列表
index 查找指定元素的下标 arr.index(1) 列表索引,0 [1, 2, 3]
count 统计传入元素的数量 arr.count(2) 统计数量,1 [1, 2, 3]
insert 在指定位置插入元素 arr.insert(1, 666) None [1, 666, 2, 3]
append 在列表尾部添加单个元素 arr.append(666) None [1, 2, 3, 666]
extend 在列表尾部添加多个元素 arr.extend([666, 777]) None [1, 2, 3, 666, 777]
pop 删除指定位置的元素 arr.pop(0) 删除的元素 [2, 3]
remove 从左向右搜索并删除第一个指定元素 arr.remove(1) None [2, 3]
clear 清空列表 arr.clear() None []
11.1.4 列表的遍历
py 复制代码
arr = [21, 25, 21, 23]

# while 循环遍历
i = 0
while i < len(arr):
    print(arr[i])
    i += 1
# 21
# 25
# 21
# 23


# for 循环遍历
for i in arr:
    print(i)
# 结果与 while 循环一致

"""
	区别:
		while 更灵活
		for 更简单
"""
11.2 元组
11.2.1 元组的定义
py 复制代码
# 元组可以理解为是只读的列表
# 字面量
(元素1, 元素2, 元素3, 元素4, ...)

# 定义变量
变量名称 = (元素1, 元素2, 元素3, 元素4, ...)

# 定义空元组
变量名称 = ()
变量名称 = tuple()
11.2.2 元组的基本操作
py 复制代码
# 定义单个元素的元组,后面一定要加一个逗号
t1 = (元素1, )

# 元组的嵌套
t2 = ((元素1_1, 元素1_2, 元素1_3), (元素2_1, 元素2_2, 元素2_3))

# 通过下标获取元素
print(t2[0][0]) # 元素1_1

# 获取元组的长度
print(len(t2)) # 2

# 修改元组中的值会报错
t2[0][0] = "改变的值" # 'tuple' object does not support item assignment

# 但是元组中嵌套列表是可以修改的
t = (1, 2, [1, 2])
t[2][0] = 2
t[2][1] = 4
11.2.3 元组的方法
py 复制代码
# 注,元组统一使用 t
t = (1, 2, 3)
方法名称 作用 示例 返回值
index 查找指定元素的下标 t.index(1) 列表索引,0
count 统计传入元素的数量 t.count(2) 统计数量,1
11.2.4 元组的遍历
py 复制代码
t = (2, 4, 6)

# while 循环
i = 0
while i < len(t):
    print(t[i])
    i += 1

# for 循环
for i in t:
    print(i)
11.3 字符串
11.3.1 字符串的基本操作
py 复制代码
# 字符串也可以像列表一样通过下标去获取,字符串也是一个只读属性
s = "hello word"

print(s[0]) # h
print(s[-1]) # d

# 返回字符串的长度
print(len(s)) # 10
11.3.2 字符串的方法
py 复制代码
# 注,字符串统一使用 s
s = "hello word"
方法名称 作用 示例 返回值
index 查找指定元素的下标 s.index("ll") 列表索引,2
replace 将字符串进行替换 s.replace("ll", "hh") 新的字符串,"hehho word"
split 将字符串按指定形式进行分割 s.split(" ") 列表,["hello", "word"]
strip 将字符串首尾的字符按指定形式清除 "12121266666212121".strip("12"), 传入的参数是单个识别的,是存在1、2 都清除,而不是12, 如果不传参数默认清除的是首尾的空格 新的字符串,"66666"
count 统计字符串出现的次数 s.count("l") 次数,2
11.3.3 字符串的遍历
py 复制代码
# 字符串的遍历和列表、元组的遍历是一样的,这里就不演示了
11.4 序列的切片
11.4.1 序列的定义
  • 内容连续、有序、可使用下标索引的一类数据容器
  • 列表、元组、字符串都可以视为序列
11.4.2 序列的操作
  • 语法:序列[起始下标:结束下标:步长]
  • 起始下标
    • 表示从何处开始(包含开始位置),可以为空,为空表示从头开始
  • 结束下标
    • 表示从何处结束(不含结束位置),可以为空,为空表示一直到最后
  • 步长
    • 步长不写默认为 1,为 1 表示一个个的取元素
    • 为 2 表示,每次跳过 1 个元素取
    • ...
    • 为负数表示反相取,起始下标和结束下标也要反向标记
py 复制代码
arr = [1, 2, 3, 4, 5, 6, 7]

print(arr[0:3]) # 包含 0,不包含 3,[1, 2, 3]

print(arr[::]) # 全部使用默认值,[1, 2, 3, 4, 5, 6, 7] 

print(arr[::-1]) # 相当于倒序,[7, 6, 5, 4, 3, 2, 1]

print(arr[::2]) # 隔一个取,[1, 3, 5, 7]

print(arr[4:2:-1]) # 倒着截取,[5, 4]
11.5 集合
11.5.1 集合的定义
py 复制代码
# 定义集合
s1 = {元素1, 元素2, 元素3, 元素4, ...}

# 定义空集合
s2 = {}
s3 = set()

# 获取集合的长度
len(s1)
11.5.2 集合的方法
py 复制代码
#  注,集合统一使用 s1、s2
s1 = {1, 2, 3}
s2 = {4, 5, 6}
方法名称 作用 示例 返回值 原集合
index 查找指定元素的下标 arr.index(1) 列表索引,0 [1, 2, 3]
count 统计传入元素的数量 arr.count(2) 统计数量,1 [1, 2, 3]
insert 在指定位置插入元素 arr.insert(1, 666) None [1, 666, 2, 3]
append 在列表尾部添加单个元素 arr.append(666) None [1, 2, 3, 666]
extend 在列表尾部添加多个元素 arr.extend([666, 777]) None [1, 2, 3, 666, 777]
pop 删除指定位置的元素 arr.pop(0) 删除的元素 [2, 3]
remove 从左向右搜索并删除第一个指定元素 arr.remove(1) None [2, 3]
clear 清空 arr.clear() None []

更新中...

相关推荐
磊灬泽14 分钟前
【日常错误】鼠标无反应
linux·windows
luckys.one43 分钟前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
大翻哥哥2 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
汇能感知3 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun3 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
zhousenshan3 小时前
Python爬虫常用框架
开发语言·爬虫·python
茯苓gao3 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
IMER SIMPLE4 小时前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
CodeCraft Studio4 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换