廖雪峰Python学习笔记day2

Python廖雪峰教程学习笔记:Day3 前言 养成一个好的习惯只需要坚持21天,Day3 条件判断和循环 条件判断与循环在编程实现中都很常见,比如,输入用户的年龄,根据年龄的大小可以打印出不同的内容,该功能的实现可以使用if语句实现: if - else语句,如果if判断是False,则执行else后面的内容,否则执行if后面的内容。 if - elif - else语句,可以有多个判断语句。 ⚠️注意:1⃣️在判断语句的后面不要... 阅读详情

学习笔记day1

# python study day2

# 条件判断、else if 简写 elif
# age = int(input('please input your age:'))
# if age >= 3 and age < 18:
#     print('your age is ', age)
#     print('teenager')
# elif age >= 18 and age < 300:
#     print('your are', age, 'years old')
#     print('adult')
# else:
#     print('impossible! your are the oldest person')

# for in 循环
# range()函数可以生成一个整数序列,list()函数可以转换为list
# print(list(range(5))) >>> [0, 1, 2, 3, 4]
# sum = 0
# for i in range(101):
#     sum += i
# print(sum) # 1+2…+100>>> 5050

# while 循环,continue、break(尽量少用continue,break)
# i = 0
# while True:
#     i += 1
#     if i == 10:
#         break
#     if i % 2 == 0:
#         continue
#     print(i)
# print('end while')

# dict (全称dictionary) key-value存储方式,相当于map
# d = {'a':1, 'b':2, 'c':3}
# d['a'] = '00' # 赋值
# print(d)
# print('Key' in d) # 判断key是否存在,返回True、False
# print(d.get('key')) # 获取value,key不存在返回None
# print(d.get('key'), -1) # 不存在返回指定值-1
# d.pop('c') # 弹出删除指定key
# dict 是用空间换取时间的一种方法,保证key的不可变,不能用list作为key

# set 无序不重合集合,初始化set: set(list)
# s = set([1, 1, 2, 3])
# print (s) # 相当dict的key集合 >>> {1, 2, 3}
# s.add(5) # 添加元素
# s.remove(1) # 删除元素
# print(set([2, 6]) & s) # 交集操作
# print(set([2, 3]) | s) # 并集操作

# 内置函数:abs() 绝对值,max() 最大值。参数类型数量错误会返回TypeError
# 数据类型检查内置函数 isinstance()
# x = 's'
# if not isinstance(x, (int, float)):
#     raise TypeError('bad operate type')

# 类型转换
# int(12.1) >>> 12
# bool(1) >>> True

# 函数别名
# a = abs
# a(-1) >>> 1

# 自定义函数,return None 可以简写为 return
# def my_fun(x):
#     if x >= 0:
#         return True
#     else:
#         return False
# print(my_fun(1))
# 空函数 
# def nop():
#     pass # 占位符,解决语法错误

# 多返回值函数(返回元组tuple)
# import math #引入math包,使用math函数
# def move(x, y, step, angle=0):
#     nx = x + step * math.cos(angle)
#     ny = y + step * math.sin(angle)
#     return nx, ny
# x, y = move(100, 100, 60, math.pi / 6)
# print(x, y) #>>> 151.96152422706632 70.0
# r = move(100, 100, 60, math.pi / 6)
# print(r) #>>> (151.96152422706632 70.0)

# 默认参数函数
# def enroll(name, gender, age=6, city='Beijing'):
#     print(name)
#     print(gender)
#     print(age)
#     print(city)
# enroll('Mary', 'F', city='Shanghai') 
# >>> 
# name: Sarah
# gender: F
# age: 6
# city: Shanghai 
# 默认参数需注意参数必须指向不可变对象
# def add_end(L=[]):
#     L.append('end')
#     print(L)
#     return L
# add_end() #>>> ['end']
# add_end() #>>> ['end', 'end']
# def add_end_fixed(L=None):
#     if L is None:
#         L = []
#     L.append('end')
#     print(L)
#     return L
# add_end_fixed() #>>> ['end']
# add_end_fixed() #>>> ['end']

# 可变参数函数
# 1、可以直接使用list、tuple作为参数变量
# 2、直接逗号分隔输入参数
# def calc(*numbers):
#     for n in numbers:
#         print(n)
#     print('end')
# calc(1, 2, 3)
# calc(*[4, 5, 6])
# calc(*{7, 8, 9})

# 关键字参数,相当于map的dict参数
# def person(name, **kw):
#     print(name, kw)
# person('Straw') #>>> Straw {}
# person('Straw', age = 25, gender = 'F') 
# #>>>Straw {'age': 25, 'gender': 'F'}
# extra = {age = 18, gender = 'F'}
# person('Straw', **extra)
# #>>>Straw {'age': 25, 'gender': 'F'}

# 命名关键字参数,与位置参数不同,调用必须传入命名参数(默认除外)
# def person(name, *, age, job):
#     print(name, age, job)
# person('Lily', age = 16, job = 'Studen')
# def person(name, *args, age, job): #有可变参数时,可省略*
#     pass

# 参数组合,定义参数顺序:必选参数、默认参数、可变参数、关键字参数、命名关键字参数
# def fun1(a, b, c=0, *args, **kw):
#     pass
# def fun2(a, b c=0, *, **kw):
#     pass
# 对于任意函数,都可通过类似func(*args, **kw)调用它,无论其数是如何定义的

# def product(*numbers):
#     if len(numbers) == 0:
#         raise TypeError()
#     s = 1
#     for n in numbers:
#         if isinstance(n, (int, float)):
#             s *= n   
#     return s
# print(product())
# def product(x, *arg):
#     for y in arg:
#         x=x*y
#     return x

# 递归函数
# def fact(n):
#     if n == 1:
#         return 1
#     return n * fact(n - 1)
# # 尾递归,等价于循环。(把结果先计算再循环调用)
# def fact(n):
#     return fact_iter(n, 1)
# def fact_iter(num, product):
#     if num == 1:
#         return product
#     return fact_iter(num - 1, num*product)
# fact(5) --> fact_iter(5, 1)
# ===> fact_iter(5, 1)
# ===> fact_iter(4, 5)
# ===> fact_iter(3, 20)
# ===> fact_iter(2, 60)
# ===> fact_iter(1, 120)
# ===> 120

# 递归汉诺塔
# def move(n, a, b, c):
#     if n == 1:
#         print(a, '-->', c)
#     else:
#         move(n-1, a, c, b) #把最上面的(n-1)个圆盘从柱A移动到柱B
#         print(a, '-->', c) #把最底下的第n个圆盘从柱A移动到柱C
#         move(n-1, b, a, c) #把(n-1)个圆盘从柱B移动到柱C
# move(5, 'A', 'B', 'C')

# L=tuple(range(1,100,2))
# s=tuple(range(1,L[int(len(L)/2)],2))
# print(L,s)

# 高级特性 切片(Slice)
# L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack', 'Alice']
# l1 = L[0: 3] # 取前三个元素 >>> ['Michael', 'Sarah', 'Tracy']
# l2 = L[: 2] # L[0: 2] 零可省略
# l3 = L[-1] # 倒数切片 >>> Alice
# l4 = L[-2:] # 最后俩个
# l5 = L[-2: -1]
# l6 = L[:6:2] # 每两个取一个
# l7 = L[::2] # 所有数每两个取一个
# l8 = L[:] # 原样复制list
# (0, 1, 2, 3, 4, 5)[:3] # tuple切片 >>> (0, 1, 2)
# 'abcdefg'[::2] # 字符切片 >>> 'aceg'

# str.strip() # 去掉字符首尾空格函数
# def trim(s):
#     if s == '':
#         return s
#     if s[0] == ' ':
#         return trim(s[1:])
#     elif s[-1] == ' ':
#         return trim(s[:-1])
#     else:
#         return s
# def trim2(s):
#     while s[:1] == ' ':
#         s = s[1:]
#     while s[-1:] == ' ':
#         s = s[:-1]
#     return s
# print(trim2(''))

在这里插入图片描述
学习笔记day3

避坑指南:华为2288H-V5服务器安装系统时常见的RAID与驱动问题解决方案 本文针对华为2288H-V5服务器在安装系统时常见的RAID与驱动问题,提供了详细的避坑指南。文章深度解析了从BIOS版本兼容性核查、RAID配置实战到驱动加载与集成的全流程,重点解决了安装过程中因RAID控制器驱动缺失或兼容性问题导致的硬盘无法识别等典型故障,帮助用户高效完成系统部署。 阅读详情

相关推荐

pdf.js 移动端手势缩放功能实现与原生事件集成

本文详细解析了如何为pdf.js的viewer.html移动端页面实现流畅的双指捏合手势缩放功能。通过深入分析pdf.js的缩放机制,并利用原生触摸事件(touchstart、touchmove、touchend)进行集成,在不修改核心源码的前提下,为用户提供媲美原生应用的顺滑缩放体验,有效提升了移动端PDF阅读的专业性和用户满意度。

brandy的博客 490

廖雪峰python实战项目day2

我使用的是pycharm用来开发,然后一开始pip那些都跟着廖雪峰老师在python中提前安装好了 但是在使用pycharm,我还是遇到了经典的问题 No module named ‘aiohttp’ 然后就各种百度,发现有大大说了此类问题,转载https://blog.youkuaiyun.com/john_bian/article/details/79291228 然后弄好这个问题之后我又遇到了 写的网...

l495808029的博客 358

MinerU与Docling:智能文档处理框架对比

本文对比分析了MinerU和Docling两大智能文档处理框架。MinerU专注于高精度PDF解析,采用多模态AI技术,在学术文献、金融报表等复杂文档处理上表现优异;Docling则定位企业级多格式文档处理平台,支持10+格式转换,更适合文档管理系统等场景。技术层面,MinerU基于VLM模型实现端到端处理,Docling采用插件化多后端架构。性能测试显示MinerU精度更高(95%+),但资源消耗较大;Docling处理速度更快(1-3秒/页),部署更灵活。

轩哥的个人研究和成长记录 1910

Python廖雪峰教程学习笔记:Day2

前言 养成一个好的习惯只需要坚持21天,Day2 使用list和tuple list 列表 list是一种有序的集合,可以随时添加和删除其中的元素。它的表示用[]。list = [] 变量name就是一个list。用len()函数可以得到list的长度,即该list当中有多少个元素。 list中元素的访问采用索引,⚠️注意索引是从0开始的,当索引超出list的长度,Python会报一个Inde...

Comme_moik的博客 766

ArduPilot飞控系统代码解读及架构分析

ArduPilot飞控系统是一个复杂而强大的系统,通过模块化设计和分层架构,实现了灵活的飞行控制功能。模块化设计: 各个功能模块相对独立,便于维护和扩展多种飞行模式: 满足不同的飞行需求强大的控制算法: 实现稳定的姿态和位置控制完善的安全机制: 保障飞行安全丰富的配置选项: 通过参数系统实现高度可定制性这种架构使ArduPilot能够适应从简单的多旋翼到复杂的自主飞行器等各种应用场景。类结构分析:Mode基类 (mode.h/mode.cpp)

fengforky的专栏 3019

MVDR算法: 自适应波束形成在信号处理领域中扮演着重要的角色。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。

MVDR算法是一种用于抑制干扰信号并增强感兴趣信号的自适应波束形成算法。它的基本思想是通过对干扰信号进行空间滤波,使其在感兴趣信号方向上的输出功率最小化。这种方法可以提高信号的质量和可辨识度,特别是在存在多个干扰源的复杂环境中。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。使用MVDR算法,我们可以通过对观测信号进行波束形成来抑制干扰信号并增强感兴趣信号。以上是MVDR算法的Matlab实现。的每一列代表一个阵列元素的观测信号。表示期望的波束指向,即感兴趣信号的方向。

HackWhisper的博客 1245

廖雪峰Python学习笔记day1

学习参考自 廖雪峰Python教程 # 廖雪峰学习python 3.x # vscode 快捷当行注释 CTRL + / 或者 CTRL + K + C # vscode 快捷取消注释 CTRL + / 或者 CTRL + K + U # vscode 快捷下方插入行 CTRL + Enter # 交互模式下('>>>')输入一行代码,执行一行 # 33 + 2 # >>> 35 # 命令行模式下,直接运行.py文件,一次性执行所有代码 # print(33.1*3)

zero_130的博客 370

Python高阶爬虫:逆向工程模拟Wind/同花顺等金融终端数据抓取

本文详细阐述了模拟金融数据终端进行数据抓取的全套技术方案。我们从法律合规性讲起,选择了Playwright作为核心自动化工具,通过两个实战案例(同花顺网页版和Wind桌面版)演示了从分析、模拟到数据解析的完整流程,并进一步介绍了构建健壮爬虫系统所需的高级技巧。我们的策略是:启动一个由Playwright控制的浏览器,模拟真人登录,然后监听所有网络请求,从中过滤出我们需要的那个数据API。if key in ['f43', 'f169', 'f170', 'f46', 'f60']: # 价格类字段。

2201_76125261的博客 546

廖雪峰Python学习笔记day15

学习笔记day14 # python study day15 # 一般不同平台邮件收发过程 # 发件人 -> MUA(Mail User Agent——邮件用户代理) -> # MTA(Mail Transfer Agent——邮件传输代理) -> 若干个MTA -> # MDA(Mail Delivery Agent——邮件投递代理) <- MUA <- 收件人 # SMTP 邮件发送协议,python提供 email(负责构造邮件)、smtplib(负责发送邮件)模

zero_130的博客 246

详解Pytorch求导

本文主要详解Pytorch求导,希望能对学习Pytorch的同学有所帮助。 文章目录 1. pytorch求导问题 2. pytorch三大类求导代码示例 2.1 标量求导 2.2 向量求导&矩阵求导

weixin_43178406的博客 3073

具身智能(26):RDK S100的LeRobot或Agile X piper机械臂控制模型

本文档详细介绍了基于ROS2的机器人控制模型架构与标定数据联动机制。核心采用"感知-规划-控制"闭环流程,通过激光雷达、相机和IMU的融合数据实现厘米级定位(≤1cm)。文档包含两大控制模型配置:1)RDKLeRobot模型,重点说明PID参数调节和标定文件路径设置;2)AgileXPiper模型,强调驱动安装与外部标定文件集成。针对常见问题提供解决方案,如控制指令无响应需验证标定路径,运动偏差过大需重新标定等。最后给出批量部署方案,通过复制基准配置文件实现多机器人快速配置,要求定位偏差

码农17年的博客 179

廖雪峰Python学习笔记day11

学习笔记day10 # python study day11 # collections 内建集合模块 # namedtuple 创建自定义tuple对象,规定tuple元素个数,使用属性引用元素 # from collections import namedtuple # Point = namedtuple('Point', ['x', 'y']) # p = Point(1, 3) # p2 = Point(-1, -3) # print(p.x, p.y) #>>> 1 3 #

zero_130的博客 265

Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局

2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动

m0_51738372的博客 2692

廖雪峰Python学习笔记day9

学习笔记day8 # python study day9 # 进程和线程。实现多任务的方式 # 1、多进程模式 # 2、多线程模式 # 3、多进程+多线程模式 # multiprocessing 跨平台多进程模块。Unix/Linux/Mac环境下可以使用fork创建子进程 # from multiprocessing import Process # import os # def run_proc(name): # 子程序要执行的代码 # print('Parent process %s (

zero_130的博客 190

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

廖雪峰Python学习笔记day10

学习笔记day9 # python study day10 # 正则表达式 # \d # 匹配一个数字 # \w # 匹配一个字母或数字 # . # 匹配任意字符 # * # 匹配0个或任意多个字符 # + # 匹配至少一个字符 # ? # 匹配0个或1个字符 # {n} # 匹配n个字符 # {n, m} # 匹配n-m个字符 # \s # 匹配一个空格(包括Tab空白符),\s+ 表示至少一个空格 # [] # 匹配范围,[0-9a-zA-Z\_] 可以匹配一个数字、字母或下划线 # A|B # 匹配

zero_130的博客 210

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

廖雪峰 Python教程 学习笔记_Day01

qq_43017379的博客 235

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

廖雪峰 Python教程 学习笔记_Day02

qq_43017379的博客 190

廖雪峰python3教程-学习笔记2-第一个python程序

廖雪峰python3教程-学习笔记2-第一个python程序第一个python程序文本编辑器 Day2 第一个python程序 在写代码之前,请千万不要用“复制”-“粘贴”把代码从页面粘贴到你自己的电脑上。 1、启动python(win+R、cmd、python) 2、简单计算 3、Print()打印文字 单引号或者双引号括起来的文本在程序中叫字符串 4、Python交互式环境会把每一行Py...

weixin_42775040的博客 299

Python廖雪峰教程学习笔记:Day5

前言 养成一个好的习惯只需要坚持21天,Day5 高级特性 切片 迭代 列表生成器 生成器 切片 取一个list和tuple的部分元素可以用切片快速实现。 L为一个list,L[0:3]表示从索引0开始取到索引3为止,但不包括索引3,即索引0,1,2三个元素。 如果第一个索引是0,还可以省略为L[:3],运行结果和L[0:3]一样。 如果索引从1开始,取出两个元素则可以写作L[1:3],运行...

Comme_moik的博客 569

Python廖雪峰教程学习笔记:Day14

前言 养成一个好的习惯只需要坚持21天,Day14 什是JSON? JSON是轻量级的文本数据交换格式,指的是 JavaScript 对象表示法(JavaScript Object Notation),类似XML但又比 XML 更小、更快,更易解析。 JSON语法 JSON数据的书写格式是:"名称":“值”,例如: "name":"汤姆" JSON的值可以是:数字、字符串、逻辑值、数组、对象和n...

Comme_moik的博客 535

Python廖雪峰教程学习笔记:Day15

前言 养成一个好的习惯只需要坚持21天,Day15 多进程 Unix/Linux操作系统提供了一个fork()系统调用。一般我们遇到的函数都是调用一次便返回一次,这里的fork()调用一次返回两次。因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的ID。 fork调用,一个进程在接到新任务时就可以复制出一个子...

Comme_moik的博客 451

Python廖雪峰教程学习笔记:Day4

前言 养成一个好的习惯只需要坚持21天,Day4 函数 编程中,函数的调用、定义在一定程度上可以简化功能的实现,降低程序的复杂度。 调用函数 Python中内置了许多有用的函数,我们在调用一个内置函数的时候,需要知道函数的名称和参数。 内置函数-Python 3.7.6文档 调用abs()函数: 调用函数的数量,如果传入的参数数量不对,会报TypeError错误: 如果传入参数的数量是对的,但...

Comme_moik的博客 558

Python廖雪峰教程学习笔记:Day11

前言 养成一个好的习惯只需要坚持21天,Day11 这两天主要学习一下面向对象的高级编程。 使用__slots__ 由之前学习类的定义和实例的创建,我们可以给实例绑定不同的属性,例如: class Student(object): pass s = Student() s.name = 'Tom' # 动态给实例绑定一个属性 print(s.name) # Tom 如果我们只允许对Studen...

Comme_moik的博客 374

廖雪峰python3教程-学习笔记1-python简介

廖雪峰python3教程-学习笔记1-python简介Python简介 day 1 # 学习的开始 本人环境工程专业,曾留学美国,目前就职于某中央直属事业单位,在人工智能、大数据、机器学习、深度学习席卷全球的当下,领导固执的想法下单位仍然以很古老的方式在运作,自己很想给自己、给部门带来一些新的思维方式,新的解决问题的方式。今天第一天学习python3,从廖雪峰python3教程开始,希望自己可以一...

weixin_42775040的博客 517

Python廖雪峰教程学习笔记:Day10

前言 养成一个好的习惯只需要坚持21天,Day10 获取对象信息 判断对象类型,可以使用type()函数: type(123) # <class 'int'> type('apple') # <class 'str'> type(None) # <type(None) 'NoneType'> 如果一个变量指向函数或者类,也可以用type()函数来判断: typ...

Comme_moik的博客 358

Python廖雪峰教程学习笔记:Day7

前言 养成一个好的习惯只需要坚持21天,Day7 隔了几天没有写博客记录自己的学习。果然养成一个好的习惯不容易,丢掉一个好的习惯确是轻而易举,我不知道自己能坚持这个习惯多久,但是我会把每天写一篇学习博客的事情放在心上。自己写的博客可能不能帮助别人学到什么,但是这种总结归纳从一定程度上促进了自己的进步,加油! 匿名函数 有时候,为了减少代码,我们可以直接传入匿名函数,不需要显式的定义函数。在Pyth...

Comme_moik的博客 257
上一篇: 廖雪峰Python学习笔记day1
下一篇: 廖雪峰Python学习笔记day3
zero_130
博客等级 码龄10年 21粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值