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

news2024/11/14 1:14:35

在快节奏的生活中,很难找到时间来学习新的技能。但有时候,我们会突然发现自己有一些空闲时间,而又不想虚度光阴。无聊的时候,我们可以选择学习一项新技能来充实自己。最近,我就因为有些无聊,决定重新学习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'

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux实现网络程序

1️⃣ 在linux下&#xff0c;通过套接字实现服务器和客户端的通信。 2️⃣ 实现单线程、多线程通信。或者实现线程池来通信。 3️⃣ 优化通信&#xff0c;增加守护进程。 有情提醒&#xff0c;类里面默认的函数是内联。内联函数在调用的地方展开&#xff0c;没有函数地址&…

【Springboot系列】Springboot整合Swagger3不简单

1、缘由 Swagger是一个根据代码注解生成接口文档的工具&#xff0c;减少和前端之间的沟通&#xff0c;前端同学看着文档就可以开发了&#xff0c;提升了效率&#xff0c;之前很少写swagger&#xff0c;这次自己动手写&#xff0c;还是有点麻烦&#xff0c;不怎么懂&#xff0c;…

外网SSH远程连接linux服务器「cpolar内网穿透」

文章目录 视频教程1. Linux CentOS安装cpolar2. 创建TCP隧道3. 随机地址公网远程连接4. 固定TCP地址5. 使用固定公网TCP地址SSH远程 转载自内网穿透工具的文章&#xff1a;无公网IP&#xff0c;SSH远程连接Linux CentOS服务器【内网穿透】 本次教程我们来实现如何在外公网环境下…

OpenGL入门教程之 纹理

引言 我们已经了解到&#xff0c;我们可以为每个顶点添加颜色来增加图形的细节&#xff0c;从而创建出有趣的图像。但是&#xff0c;如果想让图形看起来更真实&#xff0c;我们就必须有足够多的顶点&#xff0c;从而指定足够多的颜色。这将会产生很多额外开销&#xff0c;因为每…

【ArcGIS Pro二次开发】(23):用地编码和用地名称的规范性检查

在国空或村庄规划的编制过程中&#xff0c;随着规划用地的调整&#xff0c;经常会手动修改用地编码和用地名称&#xff0c;不可避免的会出现错误&#xff0c;如果单靠人工校对&#xff0c;累人又不能保证准确性。这个工具的目的就是检查用地编码和用地名称是否规范&#xff0c;…

最短路径Floyd与区间DP

floyd算法是求最短路径的算法&#xff0c;算法复杂度为n(o^3),其优点在于能够一次求解所有点到其他点的最短路径&#xff0c;不需要其他运算&#xff0c;使用二维数组存储。其三层循环自外向内分别为&#xff1a;中间点&#xff0c;起始点和终点。状态方程为&#xff1a; num[…

【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》

文章目录 图书前言图书简介图书作者、简介图书好评图书目录总结&#xff1a;本人选择此图书的意义 图书前言 光阴似箭&#xff0c;岁月如梭。转眼之间&#xff0c;距离本书最早的电子书出版已经过去了三年之久。承蒙广大读者的厚爱&#xff0c;电子书和第1版纸质书的发行量远远…

【云原生】Java 应用程序在 Kubernetes 上棘手的内存管理

文章目录 引言JVM 内存模型简介非 Heap 内存Heap 堆内存Kubernetes 内存管理JVM 和 Kubernetes场景 1 — Java Out Of Memory 错误场景 2 — Pod 超出内存 limit 限制场景 3 — Pod 超出节点的可用内存场景 4 — 参数配置良好&#xff0c;应用程序运行良好 结语 引言 如何结合…

PCIe-DMA多通道/高性能/超低延时/超低抖动视频采集显示V4L2驱动

1 介绍 基于PCI ExpressIntegrated Block&#xff0c;Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或Scather GatherDMA&#xff0c;提供fifo/AXI4-Stream用户接口。 基于PCI ExpressIntegrated Block&#xff0c;Multi-Channel PCIe…

大型体检管理系统源码:适用于大中型医院或独立体检中心

一套专业的体检管理系统源码&#xff0c;是医院、体检中心等单位开展体检业务的得力助手。它将以往人工操作的健康体检过程所得到信息转换成全信息化的电脑管理&#xff0c;使体检过程更为流畅、更有条理&#xff0c;更加便于管理&#xff0c;从而实现体检业务管理的自动化、信…

2023年报考CSM敏捷教练认证好不好?含金量高吗?

CSM&#xff0c;Certified Scrum Master&#xff0c;是Scrum联盟发起的Scrum认证。帮助个人从自身、团队和组织层面&#xff0c;学习技能和工具来扩展实践的层面&#xff0c;帮助团队正确使用Scrum&#xff0c;从而提高项目整体成功的可能性。 认证收益 职业能力提升 推动企业…

AIGC技术周报|为文生图模型提供“参考”;交互式prompt系统:让文生图模型更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 交互式prompt系统&#xff1a;让文生图模型更懂你 文生图…

JVM性能监测工具-JConsole

JVM性能监测工具-JConsole JConsole工具是JDK自带的图形化性能监控工具。并通过JConsole工具&#xff0c; 可以查看Java应用程序的运行概况&#xff0c; 监控堆信息、 元空间使用情况及类的加载情况等。 JConsole程序在%JAVA_HOM E%/bin目录下 或者你可以直接在命令行对他进…

【Java代码】MP3、flac歌曲批量生成同名的“xxx.lrc”歌词文件导入索尼黑砖二代

目录 1、准备条件2、实现方式3、代码环境和maven依赖4、Java代码5、示例1结果6、示例2结果7、一个小问题8、“音乐标签”下载地址 1、准备条件 网易云下载的MP3、flac后缀的歌曲若干首&#xff08;ncm后缀的歌曲需要还原格式&#xff0c;不然会随着VIP过期而无法听&#xff09…

《CTFshow-Web入门》06. Web 51~60

Web 51~60 web51题解 web52知识点题解 web53知识点题解 web54知识点题解 web55知识点题解 web56知识点题解 web57知识点题解 web58知识点题解 web59题解 web60题解 ctf - web入门 web51 题解 相比上一题多过滤了 tac 命令。那换一个即可。 题解&#xff1a; url ?cnl<f…

go/java/C++覆盖率工具原理汇总学习记录

go–goc goc采用的是插桩源码的形式&#xff0c;而不是待二进制执行时再去设置breakpoints。这就导致了当前go的测试覆盖率收集技术&#xff0c;一定是侵入式的&#xff0c;会修改目标程序源码。直接看案例 package mainimport "fmt"func main() {test2(3)fmt.Prin…

Vue项目基于driverjs实现新用户导航

引导页就是当用户第一次或者手动进行触发的时候&#xff0c;提示给用户当前系统的模块介绍&#xff0c;比如哪里是退出&#xff0c;哪里是菜单等等相应的操作。 无论是开发 APP 还是 web 应用&#xff0c;新手引导都是一个很常见的需求&#xff0c;一般在这2个方面需要新手引导…

Java阶段二Day07

Java阶段二Day07 文章目录 Java阶段二Day07V17UserControllerDispatcherServletControllerRequestMapping V18DispatcherServletHandleMapping V19BirdBootApplication 线程池线程的执行过程线程池API 数据库数据库的基本概念数据库管理系统中常见的概念 SQL分类DDL语言-数据定…

浅析流媒体技术的发展趋势及EasyCVR视频技术的应用

随着科技的不断发展&#xff0c;流媒体已经成为人们日常生活中必不可少的一部分。为了进一步提高流媒体的质量&#xff0c;未来的技术革新方向将集中在以下几个方面&#xff1a; 1&#xff09;提高视频编解码技术的质量和效率 随着高清视频的普及&#xff0c;人们对流媒体的质…

GD32F470 移植STM32F429工程 Keil调试笔记

keil版本&#xff1a;5.25 安装 GigaDevice.GD32F4xx_DFP.3.0.4.pack Keil.STM32F4xx_DFP.2.15.0.pack 一、GD32F470 与 STM32F429 切换编译 1、原项目为STM32F429 工程&#xff0c;切换到GD32F470 只需在 Options for Target"“对话框的Device菜单中选中“GD32F470II”…