当前位置: 首页 > news >正文

python学习(廖雪峰的官方网站部分,自学笔记)

python学习

廖雪峰的官方网站强烈推荐

字符串

Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

ord( )先当与把字符转成整形,chr( ) 把编码转化成相应的字符

有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%

使用list 和 tuple

list[ ]

list是python内置的一种数据类型,可以i随时添加删除相应的元素

比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

classmate就是一个list,用len()就可以计算list内的元素个数

用list内的索引就可以访问list内的元素,注意索引是从下标0开始

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list index out of range

当索引超出范围时会报错,-1可以直接访问最后一个元素,这里的负号就是倒数第几的意思

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

用append函数可以加入元素

用pop()函数可以删除元素:注意,pop()是删除最后一个元素,删除第几个时,pop( i ),i,是索引

list可以嵌套,内部的数据类型也可以不一样,如果要替换,直接赋值到相应的索引对应的元素

tuple( )

和list 最大的不同就是tuple是有序的列表,但是一旦初始化后就不能被修改,没有增加删除函数(append,pop)

获取元素的方法和list 是一样的

要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = (1)
>>> t
1

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (1,)
>>> t
(1,)

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

条件判断

age = 20
if age >= 18:print('your age is', age)print('adult')
age = 3
if age >= 18:print('your age is', age)print('adult')
else:print('your age is', age)print('teenager')

注意 :if else后面没有括号,后面加冒号 else if 的缩写是elif

input函数返回值是str 所以可以加int( ) 强制类型转换,但是int函数如果发现不是合法的数字就会报错

循环

我们学C++知道,循环分为for ,while ,dowhile循环,python中的循环分为两种,一种是for。。。in循环

依次把list中的元素输出出来

names = ['Michael', 'Bob', 'Tracy']
for name in names:print(name)

所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句

range函数(),可以生成一个整数序列,比如range(5),是生成0,1,2,3,4五个数

for循环后面也要加冒号,

另一个就是while循环,只要条件满足就不断循环,只要条件不满足就跳出循环

可见continue的作用是提前结束本轮循环,并直接开始下一轮循环

n = 1
while n <= 100:if n > 10: # 当n = 11时,条件满足,执行break语句break # break语句会结束当前循环print(n)n = n + 1
print('END')

使用dict和set

dict

全程dictionary,就是字典,在其他语言中就是map,使用键-值查找有极快的速度

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

>>> 'Thomas' in d
False

二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

要删除一个key,使用pop(key)的方法,对应的value也会删除

set

创建一个set需要一个list作为输入集合

set中没有重复的数据,重复的数据直接被删除(过滤),add()函数可以添加元素

remove()删除元素

set可以看作数学上的集合,因此何以进行与,并等操作,

函数

python内置了很多函数,可以去官方网站中查看http://docs.python.org/3/library/functions.html#abs

max函数max()可以接收任意多个参数,并返回最大的那个:

int()函数可以把其他数据类型转换为整数:

如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意abstest是文件名(不含.py扩展名):

空函数,使用pass语句,pass 语句就是啥也不干,占位符

定义函数时,需要确定函数名和参数个数;

如果有必要,可以先对参数的数据类型做检查;

函数体内部可以用return随时返回函数结果;

函数执行完毕也没有return语句时,自动return None

函数可以同时返回多个值,但其实就是一个tuple。

关键字参数

可变参数允许传入0个或者任意个参数,这些参数自动组装成为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict(字典),可以扩展函数的功能,

可以先组装一个dict然后再传参

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

命名关键字参数

调用者可以传入不受限制的关键字参数

如果要设置受限制的关键字参数,就要用*来分割, *后的参数被视为关键字参数,

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

相关文章:

python学习(廖雪峰的官方网站部分,自学笔记)

python学习 廖雪峰的官方网站强烈推荐 字符串 Python提供了ord()函数获取字符的整数表示&#xff0c;chr()函数把编码转换为对应的字符 ord( )先当与把字符转成整形&#xff0c;chr( ) 把编码转化成相应的字符 有些时候&#xff0c;字符串里面的%是一个普通字符怎么办&…...

python题-检查该字符串的括号是否成对出现

给定一个字符串&#xff0c;里边可能包含“()”、"{}"两种括号&#xff0c;请编写程序检查该字符串的括号是否成对出现。 输出&#xff1a; true&#xff1a;代表括号成对出现并且嵌套正确&#xff0c;或字符串无括号字符。 false&#xff1a;未正确使用括号字符。 …...

3ds Max建模教程:模拟布料拖拽撕裂和用剑撕裂两种效果

推荐&#xff1a; NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 拖拽撕布 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在透视视口中创建平面。保持其长度 后座和宽度后座为 100。 创建平面 步骤 3 转到助手>假人并在 飞机的两侧。 助手>假人 步骤 4 选…...

数据可视化(4)散点图及面积图

1.简单散点图 #散点图 #scatter(x,y) x数据&#xff0c;y数据 x[i for i in range(10)] y[random.randint(1,10) for i in range(10)] plt.scatter(x,y) plt.show()2.散点图分析 #分析广告支出与销售收入相关性 dfcarpd.read_excel(广告支出.xlsx) dfdatapd.read_excel(销售…...

Redis - 数据过期策略

Redis提供了两种数据过期策略 惰性删除 和 定期删除 惰性删除 当某个key过期时&#xff0c;不马上删除&#xff0c;而是在调用时&#xff0c;再判断它是否过期&#xff0c;如果过期再删除它 优点 &#xff1a; 对CPU友好&#xff0c;对于很多用不到的key&#xff0c;不用浪费…...

英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测

对于目标检测算法改进&#xff0c;但是应用于什么场景&#xff0c;需要什么改进方法对应与自己的应用场景有效果&#xff0c;并且多少改进点能发什么水平的文章&#xff0c;为解决大家的困惑&#xff0c;此系列文章旨在给大家解读发表高水平学术期刊中的SCI论文&#xff0c;并对…...

【Liux下6818开发板(ARM)】实现简易相册

(꒪ꇴ꒪ ),hello我是祐言博客主页&#xff1a;C语言基础,Linux基础,软件配置领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff01;送给读者的一句鸡汤&#x1f914;&#xff1a;集中起来的意志可以击穿顽石!作者水平很有限&#xff0c;如果发现错误&#x…...

Kubernetes(K8s)从入门到精通系列之六:K8s的基本概念和术语之存储类

Kubernetes K8s从入门到精通系列之六:K8s的基本概念和术语之存储类 一、存储类二、emptyDir三、hostPath四、公有云Volume五、其他类型的Volume六、动态存储管理一、存储类 存储类的资源对象主要包括: VolumePersistent VolumePVCStorageClass基础的存储类资源对象——Volum…...

Spark-统一内存模型

总结&#xff1a; Spark的内存模型分为4部分&#xff0c;分别是存储内存&#xff0c;计算内存&#xff0c;其他内存&#xff0c;预留内存&#xff1b; 其中存储内存和计算内存可以动态占用&#xff0c;当己方内存不足对方空余则可占用对方的内存&#xff0c;计算内存被存储内…...

类的继承和super关键字的使用(JAVA)

继承 所有的OOP语言都会有三个特征&#xff1a; 封装&#xff08;点击可跳转&#xff09;&#xff1b;继承&#xff1b;多态 为什么会有继承呢&#xff1f;可以先看下面的例子&#xff1a; 上面这两个类中的代码很相似因为它们只有最后一个方法不同其它的都相同&#xff0c;这样…...

BGP属性+选路规则

目录 一&#xff0c;BGP的属性—基础属性 1.PrefVal 2.LocPrf 3、优先本地下一跳 &#xff08;NextHop&#xff09; 4、AS-PATH 5、起源属性 6、MED -多出口鉴别属性 二&#xff0c;BGP选路规则 三&#xff0c;BGP的社团属性 一&#xff0c;BGP的属性—基础…...

类的实例化

类的实例化 class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day; //这只是函数的一个声明并没有定义 };上面是一个类&#xff0c;我们可以把有花括号括起来的叫做一个域&#xff…...

智能提词器有哪些?了解一下这款提词工具

智能提词器有哪些&#xff1f;使用智能提词器可以帮助你更好地准备和交付演讲、报告或其他提词场合。它可以提高你的效率&#xff0c;节省你的时间&#xff0c;并让你更加自信地与听众沟通。另外&#xff0c;智能提词器还可以提供一些有用的功能&#xff0c;如语音识别、智能建…...

oracle 19c rac环境配置firewalld

rac环境ip地址说明 [rootdb1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.100.19 db1 172.16.100.30 …...

Flutter 之Bloc入门指南实现倒计时功能

Flutter Timer By Bloc 前言Stream.periodic实现倒计时定义Bloc状态定义Bloc事件定义Bloc组件定义View层参考资料前言 使用Bloc开发Flutter的项目,其项目结构都很简单明确,需要创建状态,创建事件,创建bloc,创建对应的View。flutter_timer项目来分析下Bloc的使用方法。 通…...

目标识别数据集互相转换——xml、txt、json数据格式互转

VOC数据格式与YOLO数据格式互转 1.VOC数据格式 VOC&#xff08;Visual Object Classes&#xff09;是一个常用的计算机视觉数据集&#xff0c;它主要用于对象检测、分类和分割任务。VOC的标注格式&#xff0c;也被许多其他的数据集采用&#xff0c;因此理解这个数据格式是很重…...

211. 添加与搜索单词 - 数据结构设计---------------字典树

211. 添加与搜索单词 - 数据结构设计 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 211. 添加与搜索单词 - 数据结构设计 https://leetcode.cn/problems/design-add-and-search-words-data-structure/descriptio…...

SQL Server通过指令备份数据库和恢复数据库

数据库备份&#xff1a; backup database [MyTestDB]to diskD:\MyTestDB_20200101.bakwith format,init,stats1,compression 数据库恢复&#xff1a; restore database MyTestDB_newfrom diskD:\MyTestDB_20200101.bakwith move MyTestDB to D:\MyTestDB_new.mdf,move MyTest…...

windows如何上架ios应用到app store

Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具&#xff0c;它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试&#xff0c;节省用户进行软件开发耗费的不必要时间&#xff01; ​ 编辑切换为居中 添加图片注释&…...

Hadoop学习日记-YARN组件

YARN(Yet Another Resource Negotiator)作为一种新的Hadoop资源管理器&#xff0c;是另一种资源协调者。 YARN是一个通用的资源管理系统和调度平台&#xff0c;可为上层应用提供统一的资源管理和调度 YARN架构图 YARN3大组件&#xff1a; &#xff08;物理层面&#xff09…...

造相Z-Image文生图模型快速试用:10秒生成高清图片,简单易用

造相Z-Image文生图模型快速试用&#xff1a;10秒生成高清图片&#xff0c;简单易用 1. 快速体验&#xff1a;10秒生成你的第一张AI画作 1.1 一键部署模型 在CSDN星图镜像市场找到"造相 Z-Image 文生图模型&#xff08;内置模型版&#xff09;v2"镜像&#xff0c;点…...

OpenClaw+GLM-4.7-Flash数据助手:Excel报表自动生成与分析

OpenClawGLM-4.7-Flash数据助手&#xff1a;Excel报表自动生成与分析 1. 为什么需要自动化数据助手 作为一位经常与Excel报表打交道的分析师&#xff0c;我每天要花大量时间重复执行数据清洗、格式转换和基础分析。最痛苦的是每月底需要手动合并十几个分公司的销售数据&#…...

ESP8266高速移位寄存器驱动库:3.8μs级GPIO直控

1. FastEsp8266ShiftRegister 库概述FastEsp8266ShiftRegister 是一款专为 ESP8266 微控制器深度优化的高速移位寄存器驱动库。其核心设计目标是突破传统软件模拟 SPI 或标准 GPIO 操作在 ESP8266 上的性能瓶颈&#xff0c;实现接近硬件 SPI 时序精度、但具备更高灵活性的并行/…...

通过爱毕业AI的智能改写功能,五个方法助你快速降低论文重复率

嘿&#xff0c;大家好&#xff01;我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题&#xff1a;论文重复率飙到30%以上怎么办&#xff1f;别慌&#xff0c;我这就分享5个实用降重技巧&#xff0c;帮你一次搞定&#xff0c;轻松压到合格线以下。这些方法都是我亲身试验过的&a…...

从逆向工程到实战:深度解析钉钉本地数据取证与加密对抗

1. 钉钉本地数据存储结构解析 第一次拆解钉钉的数据库文件时&#xff0c;我对着那堆加密的.sqlite文件发了半小时呆。作为国内用户量最大的企业通讯工具&#xff0c;钉钉在数据保护上确实下了狠功夫。Android和iOS两个平台的数据存储方式既有共性又存在微妙差异&#xff0c;这正…...

Stable Diffusion Lora训练避坑指南:为什么你的模型总是‘丑’?

Stable Diffusion LoRA训练实战&#xff1a;从“翻车”到精通的避坑手册 每次看到别人分享的精致LoRA模型&#xff0c;再看看自己训练出的"克苏鲁风格"作品&#xff0c;是不是有种砸键盘的冲动&#xff1f;别急着放弃——这可能是你训练流程中几个关键环节出了问题。…...

别再手动组合特征了!用GBDT+LR搞定CTR预估,附Python实战代码与调参心得

GBDTLR&#xff1a;自动化特征工程的CTR预估实战指南 在推荐系统和广告投放领域&#xff0c;点击率&#xff08;CTR&#xff09;预估的准确性直接影响着平台的核心商业指标。传统手动特征工程方法在面对高维稀疏特征时往往力不从心&#xff0c;而GBDTLR的组合策略为我们提供了一…...

FatFileSystem:面向资源受限MCU的轻量级FAT文件系统

1. FatFileSystem 嵌入式 FAT 文件系统库深度解析FatFileSystem 是一个轻量级、可移植的嵌入式 FAT 文件系统实现&#xff0c;专为资源受限的微控制器环境设计。它并非完整重写的 FAT32 标准栈&#xff08;如 FatFs&#xff09;&#xff0c;而是对经典开源 FAT 实现的精简裁剪与…...

chronyd服务端123端口未启动的深度排查与修复指南

1. 问题现象与初步判断 最近在搭建NTP时间同步架构时遇到了一个典型问题&#xff1a;作为中转节点的Master服务器123端口未启动&#xff0c;导致下游ServerA设备无法同步时间。具体表现为执行chronyc sources命令时&#xff0c;客户端显示^?符号&#xff08;表示无法连接服务端…...

避坑指南:用conda一键搞定gymnasium[box2d]安装(附常见错误解决方案)

Conda环境下的gymnasium[box2d]高效安装与疑难排解全攻略 强化学习实践者常会遇到一个令人头疼的问题&#xff1a;在Windows系统上安装gymnasium[box2d]时&#xff0c;总是遭遇各种编译错误和依赖问题。本文将带你彻底解决这个痛点&#xff0c;通过conda环境管理工具&#xff0…...