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

一步步带你学习Python编程:从零开始的查缺补漏

在快节奏的生活中,很难找到时间来学习新的技能。但有时候,我们会突然发现自己有一些空闲时间,而又不想虚度光阴。无聊的时候,我们可以选择学习一项新技能来充实自己。最近,我就因为有些无聊,决定重新学习Python编程。在这个过程中,我发现自己的基础知识还有很多缺陷,于是就开始查缺补漏。在这篇博文中,我将会以自己的学习经历为例,分享一些学习Python编程的心得,希望能够帮助到其他想要学习Python编程的读者。

字符串的编码

Python3直接支持Unicode,可以表示世界上任何书面语言的字符。Python3的字符默认就是16位Unicode编码,ASCII码是Unicode编码的子集。
在这里插入图片描述

汉字:从国标2312到国标18030

使用内置函数ord()可以把字符转换成对应的Unicode码;

使用内置函数chr()可以把十进制数字转换成对应的字符。

len()用于计算字符串含有多少字符

转义字符

我们可以使用+特殊字符,实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:

转义字符描述
(在行尾时)续行符
\b退格(Backspace)
\t横向制表符
\r回车

不换行打印

我们前面调用print时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以自己通过参数end = “任意字符串”。实现末尾添加任何内容:

print("lty",end=' ')
print("lty",end='##')

从控制台读取字符串

我们可以使用input()从控制台读取键盘输入的内容。

 myname = input("请输入名字:")print("您的名字是:"+myname)

执行结果:

请输入名字:lty 您的名字是:lty

使用[]提取字符

字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。

  1. 正向搜索:

    最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推。直到len(str)-1为止。

  2. 反向搜索:

    最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止。

字符串切片slice操作

在这里插入图片描述
切片slice操作可以让我们快速的提取子字符串。标准格式为:

[起始偏移量start:终止偏移量end:步长step]

典型操作(三个量为正数的情况)如下:

在这里插入图片描述

其他操作(三个量为负数)的情况:
在这里插入图片描述

切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于0则会当做0,终止偏移量大于“长度-1”会被当成-1。例如:

  >>>"abcdefg"[3:50]'defg'

正常输出了结果,没有报错。

split()分割和join()合并

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:

>>> a = "to be or not to be">>> a.split()['to', 'be', 'or', 'not', 'to', 'be']>>> a.split('be')['to ', ' or not to ', '']

join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。示例代码如下:

>>> a = ['lty','lty100','lty200']>>> '*'.join(a)'lty*lty100*lty200'

拼接字符串要点:
使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

成员操作符判断子字符串

in not in 关键字,判断某个字符(子字符串)是否存在于字符串中。

"ab" in "abcdefg"   #true

字符串常用方法汇总

在这里插入图片描述

常用查找方法

方法说明
len(a)字符串长度
a.startswith('xxx')以指定字符串开头
a.endswith('xxx')以指定字符串结尾
a.find('xxx')第一次出现指定字符串的位置
a.rfind('xxx')最后一次出现指定字符串的位置
a.count("xxx")指定字符串出现了几次
a.isalnum()所有字符全是字母或数字

去除首尾信息

我们可以通过strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。

格式排版

center()、ljust()、rjust()这三个函数用于对字符串实现排版。

字符串的格式化

format()基本用法

基本语法是通过 {} 和:来代替以前的 % 。

format() 函数可以接受不限个数的参数,位置可以不按顺序。

我们通过示例进行格式化的学习。

>>> a = "名字是:{0},年龄是:{1}"
>>> a.format("天天",18)
'名字是:天天,年龄是:18'>>> a.format("旺旺",6)
'名字是:旺旺,年龄是:6'>>> b = "名字是:{0},年龄是{1}。{0}是个好女孩"
>>> b.format("天天",18)
'名字是:天天,年龄是18。天天是个好女孩'>>> c = "名字是{name},年龄是{age}"
>>> c.format(age=19,name='旺旺')
'名字是旺旺,年龄是19'

可以通过{索引}/{参数名},直接映射参数值,实现对字符串的格式化,非常方便。

填充与对齐

  1. 填充常跟对齐一起使用

  2. ^、<、>分别是居中、左对齐、右对齐,后面带宽度

  3. :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

>>> "{:*>8}".format("245")
'*****245'>>> "我是{0},我喜欢数字{1:*^8}".format("天天","666")
'我是天天,我喜欢数字**666***'

数字格式化

浮点数通过f,整数通过d进行需要的格式化。案例如下:

>>> a = "我是{0},我的存款有{1:.2f}"
>>> a.format("天天",3888.234342)
'我是天天,我的存款有3888.23'

其他格式,供大家参考:
在这里插入图片描述

相关文章:

一步步带你学习Python编程:从零开始的查缺补漏

在快节奏的生活中&#xff0c;很难找到时间来学习新的技能。但有时候&#xff0c;我们会突然发现自己有一些空闲时间&#xff0c;而又不想虚度光阴。无聊的时候&#xff0c;我们可以选择学习一项新技能来充实自己。最近&#xff0c;我就因为有些无聊&#xff0c;决定重新学习Py…...

常见容器的方法

常见容器 向量 (vector)常用方法代码实例 列表 (list)常用方法 集合 (set)常用方法 映射 (map)方法 向量 (vector) 常用方法 vector::push_back(): 将元素插入向量尾部。 vector::pop_back(): 弹出向量尾部的元素。 vector::insert(): 在指定位置插入元素。 vector::erase():…...

【Linux】线程

1.理解地址空间和页表 1.地址空间是进程能够看到的资源窗口 2.页表决定进程真正拥有的资源情况 3.合理的对地址空间和页表进行资源划分就可以对一个进程的所有资源进行划分&#xff1a;过地址空间分为栈区、堆区…通过页表映射到不同的物理内存。 在32位平台下&#xff0c;…...

ASP.NET Core MVC 从入门到精通之wwwroot和客户端库

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…...

Oracle OCI 修改 Compute Instance Hostname

Oracle OCI 修改 Compute Instance Hostname Oracle Linux 7 及之后的版本 Oracle Linux 7 及之后的版本 1, Update the /etc/hostname file with below command. hostnamectl set-hostname <new name>2, Edit the oci configuration file for hostnames as given belo…...

垃圾收集算法面试总结

垃圾收集算法 标记 - 清除算法 首先标记出所有需要被回收的对象&#xff0c;标记完后统一回收所有被标记的对象。 后续的收集算法都是基于这种思路并对其不足进行改进而得到的。 这种方法主要有两个缺点&#xff1a; 一个是效率问题&#xff0c;标记和清除两个过程的效率都…...

grep替换指定字符串方法

在 Linux 命令行中&#xff0c;可以使用 grep 命令来查找匹配某个模式的字符串&#xff0c;并将其替换为另一个字符串。具体方法如下&#xff1a; grep -rl <pattern> <directory> | xargs sed -i s/<old_string>/<new_string>/g其中&#xff0c;<…...

主从模式、哨兵模式、集群模式(cluster)

主从模式、哨兵模式、集群模式&#xff08;cluster&#xff09; redis 实现高可用的方式分为 主从模式、哨兵模式、集群模式&#xff08;cluster&#xff09; 1. 主从模式&#xff08;又称为主从复制&#xff09; 表现为1个主节点&#xff0c;多个从节点&#xff0c;主节点负…...

题目3180:蓝桥杯2023年第十四届省赛真题-互质数的个数======及探讨互质专题

原题链接 https://www.dotcpp.com/oj/problem3162.html 想直接看题解的&#xff0c;跳转到第三次尝试即可。 已AC。 解析&#xff1a; &#xff08;1&#xff09;首先大家要知道什么叫互质&#xff1a; 以及它们的性质&#xff1a; 欧拉函数 在数论中&#xff0c;对正整…...

Java 文件操作

字符流-Writer和Reader用于读取文本-BufferedReader(new FileReader("path")) 读取文本文件-BufferedWriter(new FileWriter("path")) 写入到文本文件 字节流-InputStream和OutputStream图片、二进制文件-BufferedInputStream(new FileInputStream(new F…...

二叉树OJ题(C++实现)

文章目录 1.二叉树的层序遍历2. 二叉树的最近公共祖先3.二叉搜索树与双向链表4.从前序与中序遍历序列构造二叉树 1.二叉树的层序遍历 二叉树的层序遍历 OJ连接 主要思路是借助一个队列&#xff0c;将每一层的数据以size统计&#xff0c;当size为0时说明该层数据已经输入完&…...

grep -nr 命令查询字符串方式

grep -nr “搜索内容” 文件路径 其中&#xff1a; -n&#xff1a;显示行号-r&#xff1a;递归查找子目录中的文件“搜索内容”&#xff1a;要搜索的内容文件路径&#xff1a;要搜索的文件路径&#xff0c;可以是单个文件或目录路径&#xff08;将会递归搜索该目录下的所有文…...

AgentAI+ChatGPT给出答案-为什么即时通讯需要心跳

序言 人工智能ChatGpt 结合系统化的问题拆解, 现在已经能够进行问题的拆解与自问自答, 预计未来很多的脑力工作要被释放了, 作为即时通讯的开发人员, 我问问专业的问题 为什么即时通讯需要心跳 先看产品界面与使用结果 问题拆解过程 执行任务1: 概念搜索 “Executing “Res…...

跨平台跨端的登录流程及其安全设计

跨平台跨端的登录流程及其安全设计 目录 跨平台跨端的登录流程及其安全设计 一、登录流程 1.1、登录流程时序图 1.2、三方App 登录 1.3、请求的路由守卫 二、注册流程 2.1、注册流程时序图 2.2、多因素认证 2.3、自动跳转登录页面 三、涉及的技术与安全 3.1、用户…...

如何在Java中创建临时文件?

在Java程序中&#xff0c;有时需要创建临时文件来暂存数据或者执行某些操作。Java提供了许多方式来创建临时文件。在本教程中&#xff0c;我们将介绍如何使用Java标准库来创建临时文件。 一、使用File.createTempFile()方法 Java标准库中的File类提供了createTempFile()方法来…...

Vue表单基本操作-收集表单数据

收集表单数据 使用vue中的v-model收集表单里面的数据&#xff0c;不同的表单元素配合v-model会有不同的写法和技巧 本次的表单元素包括&#xff1a;文本框&#xff0c;单选&#xff0c;多选&#xff0c;下拉框&#xff0c;文本域 编写表单元素 首先编写表单元素&#xff0c;…...

Android 一个获取网址时间的Demo

Android 一个获取网址时间的Demo 文章目录 Android 一个获取网址时间的Demo通过一个网址获取时间的代码关于Android NTP 时间Android 同步时间代码 前段时间有个客户想用局域网同步Android 设备的时间&#xff0c;开发后把这个demo分享一下。 效果&#xff1a; 这里也获取了阿…...

ijkplayer解码流程源码解读

ijkplayer是一款基于ffmpeg的在移动端比较流行的开源播放器。FFmpeg是一款用于多媒体处理、音视频编解码的自由软件工程&#xff0c;采用LGPL或GPL许可证。 要想理解ijkplayer源码&#xff0c;首先得知道视频播放器的基本原理。 视频播放器播放一个互联网上的视频文件&#xf…...

2023年值得关注的3个品牌趋势,帮你弯道超车

2023年&#xff0c;大环境开放&#xff0c;压抑三年的消费蓄势待发&#xff0c;品牌如何唤醒消费者的、热情成了重中之重的大事。 春风和煦&#xff0c;万物生长。又到了各类品牌、各位营销人踌躇满志、斗志昂扬的时候了&#xff0c;浅析一下2023品牌宣传趋势&#xff0c;抓住…...

软考-高级项目管理(二十)

第20章 高级项目管理 (P572考0-2分选择 性价比很低) 在项目集管理中涉及的相关角色主要包括: 项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人 1.项目集发起人 项目集发起人和收益人是负责承诺将组织的资源应用于项目集&#xff0c;并致力于使项目集取得…...

零代码部署GEMMA-3像素工作站:复古界面下的多模态AI体验

零代码部署GEMMA-3像素工作站&#xff1a;复古界面下的多模态AI体验 1. 开篇&#xff1a;当JRPG美学遇上多模态AI 想象一下&#xff0c;90年代经典日式角色扮演游戏的像素风格界面&#xff0c;与现代最先进的多模态AI技术完美融合——这就是GEMMA-3像素工作站带给我们的独特体…...

微信毕业设计基于微信小程序的易物小店交换系统

前言 Spring Boot 易物小店交换系统是一个基于 Web 的应用程序&#xff0c;利用 Spring Boot 框架构建&#xff0c;主要用于帮助用户实现物品交换的功能。该系统为用户提供了一个便捷、安全、高效的平台&#xff0c;让他们能够轻松地发布自己想要交换的物品信息&#xff0c;寻找…...

UltraStar Deluxe实战指南:免费打造专业级家庭KTV系统

UltraStar Deluxe实战指南&#xff1a;免费打造专业级家庭KTV系统 【免费下载链接】USDX The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™ 项目地址: https://gitcode.com/gh_mirrors/us/USDX 还在为KTV包厢的高昂费用而…...

5大核心功能!植物大战僵尸辅助神器PvZ Toolkit全解析

5大核心功能&#xff01;植物大战僵尸辅助神器PvZ Toolkit全解析 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PvZ Toolkit是一款专为植物大战僵尸PC版设计的综合修改器&#xff0c;通过直观的图…...

BetterGI完整指南:原神自动化助手的功能解析与使用教程

BetterGI完整指南&#xff1a;原神自动化助手的功能解析与使用教程 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools Fo…...

智慧电子元器件识别 电子废弃物场景下的物料分类与元器件识别 元器件分拣数据集 电子废弃物自动分拣 电容数据集 保险丝数据集 第10617期

电子废弃物分类与元器件检测数据集 README 项目概述 本数据集专注于电子废弃物场景下的物料分类与元器件识别任务&#xff0c;为固废资源化利用、智能拆解及环保检测领域提供高质量标注数据&#xff0c;助力电子废弃物的高效回收与无害化处理。核心数据信息维度内容数据类别共1…...

C++ 内存管理的黄金法则

C 内存管理的黄金法则&#xff1a;高效编程的核心准则 在C的世界里&#xff0c;内存管理是开发者必须直面的挑战。从手动分配释放到智能指针的引入&#xff0c;C提供了灵活的控制权&#xff0c;但也要求程序员严格遵守规则以避免内存泄漏、野指针等问题。"谁分配&#xf…...

“COMSOL 18650电池组蛇形液冷模型:集总电池组耦合传热与流场模拟”

comsol18650电池组蛇形液冷模型 采用集总电池组耦合传热和流场 模拟圆柱形电池模组在外部液冷散热下的热性能&#xff0c;电性能等锂离子电池模组在快充场景下产生的热量能直接让表面温度突破60℃&#xff0c;这对电动车的安全性和寿命都是致命威胁。去年参与某车企电池包项目时…...

Qt加载OBJ或STL模型文件,支持鼠标移动、缩放、旋转Demo

Qt加载模型文件obj或者stl实例&#xff0c;支持鼠标移动缩放旋转demo最近在捣鼓Qt的3D可视化功能&#xff0c;发现用Qt搞个模型查看器比想象中简单。咱们先整点实际的——做个能加载obj/stl模型&#xff0c;支持鼠标拖拽旋转、平移、缩放的demo。废话不多说&#xff0c;直接撸代…...

如何用OpenPLC Editor实现工业级控制?3大场景实战指南

如何用OpenPLC Editor实现工业级控制&#xff1f;3大场景实战指南 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor 你是否曾遇到过工业控制编程的困境&#xff1f;传统PLC开发成本高昂、学习曲线陡峭、兼容性差&#xf…...