随笔 - 31,  文章 - 1,  评论 - 0,  阅读 - 509

今日内容概要

计算机基础阶段

计算机五大组成部分

  • 控制器
    • 控制计算机硬件工作
  • 运算器
    • 数学运算、逻辑运算(控制器+运算器=CPU)
  • 存储器
    • 存储数据
      • 内存:临时存储 存储数据快 断电就丢失
      • 外存:长时间存储 存储数据慢 如:U盘、固态、硬盘
  • 输出设备
    • 显示器、音响
  • 输入设备
    • 键盘、鼠标

计算机三大核心硬件

  • CPU
    • 运行系统(软硬件)
  • 内存
    • 存储数据快,配合CPU工作
  • 硬盘
    • 保存数据、保存数据慢

操作系统

  • 控制 协调计算机各个硬件正常运行
    * windows

文件路径

  • 定义
    • 计算机上文件的存放位置
  • 绝对路径
    • 不需要参考 共享的资源路径谁都能找到
  • 相对路径
    • 需要参考 获取到权限的人才能找到

变量与常量

  • 变量——随时都能变化的事物状态
  • 常量——不经常变化的事物状态(python默认全大写表示常量)
  • 语法结构——name = 'xiaoming'
  • 底层原理
    变量名 赋值符号 数据值、变量名、函数名、函数调用、生成式
    1. 一旦看到赋值符号 那么一定先看符号的右侧
    2. 在内存空间中申请一块内存空间存储数据值
    3. 给数据值绑定一个变量名
    4. 以后就可以通过变量名访问到数据值

python基本数据类型

数据类型

  • 定义:在日常生活中数据的表现形式多种多样 在程序中也是如此
  • 数据类型之
    • int整型
    • float浮点型
    • str字符串
    • list列表
    • dict字典
    • bool布尔值
    • tuple元组
    • set集合

垃圾回收机制

  • 定义——python自带垃圾回收机制
    • 专门清理不可用的垃圾变量名释放内存空间
  • 垃圾回收机制的方式
    • 引用计数——python主用
    • 标记清楚——辅助
    • 分代回收——辅助

用户交互

input

  • 获取用户输入
  • 获取到的统一为字符串类型

print

  • 输出内部信息
  • 自带换行符

流程控制

  • 顺序结构——开始、过程、结果
  • 分支结构
    • 单if分支结构
      • 条件——if条件成立——直接输出
    • if...else...分支结构
      • 条件——if条件成立/不成立——直接输出/else输出
    • if...elif...else分支结构
      • 条件——if条件不成立/成立(输出)——子代码elif还不成立/成立(直接输出)——都不成立执行else输出
  • 循环结构——while
    • 循环取值判断直到取完输出
  • if嵌套
    • 一个if条件跟着一个成立输出一个else不成立输出
  • for循环结构
    • for 变量名 in 待遍历数据:(for循环体代码)
    • 循环获取多个数值 遍历完结束
    • 遇到break直接结束循环、continue结束当前循环开始新循环
    • 遍历数值类型
      • 字符串、列表、元组、字典、集合

range()

  • 控制数据范围

数据类型内置方法

  • 字符串——索引取值切片
    • len() 统计长度
    • strip() 删除首尾空格
    • split() 字符串切割字符串
    • index() 索引
    • format() 格式化输出——f'{变量名}'
  • 列表——索引取值切片
    • len() 统计列表里数据个数
    • append() insert() extend() 列表添加数据
    • remove() pop() 删除列表里数据
  • 字典——按键取值 k:v
    • get() 按键取值
    • keys() 一次性获取字典所有的键
    • values() 一次性获取字典所有的值
    • items() 一次性获取字典的键值对数据
    • append() 附加

字符编码

* 编码——encode()
* 解码——decode()
* ASCII——美国人发明
* GBK——中国人发明
* shift_JIS——日本人发明
* Euc_kr——韩国人发明
* unicode——万国码

文件处理

  • with open(文件路径,模式,encoding='utf8') as f:
    • 文件路径不存在:自动创建
    • 文件路径存在:正常读取文件内容
    • 文件路径存在:先清空文件内容 之后再写
    • 文件路径存在:自动在末尾等待追加内容
  • 不知道写什么具体代码 可以使用关键字‘pass’

函数

函数语法结构

ef 函数名(参数):
	'''函数注释'''
	函数体代码
	return 返回值
'''
1.def
	定义函数的关键字
2.函数名
	变量名
3.参数
	可有可无 使用函数的时候规定要不要外面传数据进来
4.函数注释
	类似于工具说明书
5.函数体代码
	函数的核心 主要取决于程序员的编写
6.return
	返回给使用者的数据 可有可无
'''

函数的定义与调用

  • 函数定义阶段只检查语法不调用
  • 函数在调用阶段才会执行函数体代码
  • 函数必须先定义后调用
  • 调用关键字:函数名+括号

函数分类

  • 空函数
    • 函数体代码‘空’,搭建框架
  • 无参函数
    • 函数名括号内没有参数
      • def index():
        • print('from index function')
  • 有参函数
    • 函数名括号有参数 调用函数的时候一定要括号内填写参数
    • def func(a):
      • print(a)

函数的返回值

  • 调用函数返回给调用者的结果
  • 变量名 赋值符号 函数的调用
    • res = func() # 先执行func函数 然后将返回值赋值给变量res
  • return
    • 函数体代码中没有return关键字 默认返回None
    • 函数体代码有return 如果后面没有写任何东西还是返回None
    • 函数体代码有return 后面写什么就返回什么
    • 函数体代码有return并且后面有多个数据值 则自动组织成元组返回
    • 函数体代码遇到return会立刻结束

函数参数

参数的定义也遵循短的简单的靠前 长的复杂的靠后

  • 形式参数——函数“定义”阶段括号内填写的参数
    • 位置形参——“定义阶段”括号内从左往右依次填写的变量名
  • 实际参数——函数“调用”阶段括号内填写的参数
    • 位置实参——“调用阶段”括号内从左往右依次填写的数据值
  • 默认参数——改变的参数在前,默认参数在后

可变长参数

定义:调用函数时、传入的参数个数可以不固定

  • 形参* 形参** (溢出的位置实参全部接收)
    • 存储元组的形式、存储字典的形式分别赋值的变量名
  • 实参* 实参** (将参数的值循环取出)
    • 打散成位置实参、关键字实参

名称空间

  • global 局部修改不可变全局名称
  • nonlocal 局部名称内层修改外层局部名称空间中的数据值

函数名的多种用法

函数名其实绑定的也是一块内存地址,只不过该地址里面存放的不是数据值而是一段代码,函数名加()就会找到该代码并执行。
1.可以当作变量名赋值
    def index(): pass
    res = index
    res()  # 调用
2.可以当作函数的参数
	 def index():
       print('from index')
	 def func(a):
       print(a)
       a()
	 func(index)
3.可以当做函数的返回值
    def index():
        print('from index')
    def func():
        print('from func')
        return index
    res = func()
    print(res)
    res()

    def index():
        print('from index')
        def func():
            print('from func')
        return func
    res = index()
    print(res)
    res()
4.可以当做容器类型(可以存放多个数据的数据类型)的数据

    def register():
        print('注册功能')

    def login():
        print('登录功能')

    def withdraw():
        print('提现功能')

    def transfer():
        print('转账功能')

    def shopping():
        print('购物功能')
    func_dict ={
        '1': register,
        '2': login,
        '3': withdraw,
        '4': transfer,
        '5': shopping
    }
    while True:
        print("""
        1.注册功能
        2.登录功能
        3.提现功能
        4.转账功能
        5.购物功能  
    """)
        choice = input('请输入功能编号>>>:').strip()  # 获取一个用户所执行的编号
        if choice in func_dict:  # 如果用户输入功能字典的编号
            func_name = func_dict.get(choice)  # 定义一个值所绑定的内存地址
            func_name()  # 调用
        else:
            print('功能编号不存在')
5.以前写法
    while True:
        print("""
        1.注册功能
        2.登录功能
        3.提现功能
        4.转账功能
        5.购物功能
    """)
        choice = input('请输入功能编号>>>:').strip()
        if choice == '1':
           register()
		  elif choice == '2':
			  login()
		  elif choice == '3':
			   withdraw()
		  elif choice == '4':
			   transfer()
		  elif choice == '5':
        	  shopping()
    	  else:
        	  print('可算写完了')

闭包函数

"""
定义在函数内部的函数 并且用到了外部函数名称空间中的名字
1.定义在函数内容
2.用到外部函数名称空间中的名字
"""
def index():
    name = 'gaoli'
    def inner():
        print(name)

是另外一种给函数体代码传参的方式!!!

  • 代码里面缺什么变量名形参里面就补什么变量名
def register(name,age):
	print(f"""
	姓名:{name}
	年龄:{age}
	""")
register('jason', 18)
  • 闭包函数
def outer(name, age):
    # name = 'jason'
    # age = 18
    def register():
        print(f"""
        姓名:{name}
        年龄:{age}
        """)
    return register
res = outer('jason', 18)
res()
res()
res = outer('kevin', 28)
res()
res()
res()

递归函数

  • 直接——直接调用
  • 间接——间接调用
  • 默认最大递归深度1000
  • 每次调用都比上一次简单 要有一个明确的结束条件

算法

  • 二分法——中间切割一分为二

迭代器、生成器、可迭代对象

internext

装饰器模板

  • 有参
# 效验用户是否登录装饰器
def outter(mode):
	def login_auth(func_name):
		def inner(**args, **kwargs):
			username = input('username>>>:').strip()
			password = input('password>>>:').strip()
			if mode =='1':
				print('数据直接写死')
			elif mode =='2':
				print('数据来源于文本文件')
			elif mode ='3':
				print('数据来源于字典')
			elif mode =='4':
				print('数据来源于MySQL')
		return inner
	return login_auth

'''当装饰器中需要额外的参数时>>>:有参装饰器'''

'''
函数名加括号执行优先级最高,有参装饰器情况
	先看函数名加括号的执行
	然后再是语法糖的操作
'''

# @outter('1')
def index():
	print('from index')
index()

# @outter('2')
def func()
	print('from func')
func()
  • 无参
def outer(func_name):
	def inner(*args, **kwargs):
		res = func_name(*args, **kwargs)
		return res
	return inner

@outer
def index():
	pass
posted on   眼眸里的温暖  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示