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

《Python工匠》第二章 数值与字符串 关键知识摘录与梳理

文章目录

  • 第二章 数值与字符串 关键知识摘录与梳理
    • 数值
      • 浮点数精度问题
      • 布尔值也是数字类型
    • 字符串
      • 1. 字符串常用操作
        • a.遍历
        • b.切片
        • c.反转
      • 2.字符串格式化
      • 3.多个字符串拼接
        • 常用且好用的字符串方法
      • 4. 不常用但好用的字符串方法
      • 5. 字符串与字节串
      • 编程建议

第二章 数值与字符串 关键知识摘录与梳理

写到这里的是笔者觉得有用或者未掌握的知识点,一些比较基础的就不会提及。
关于数据库的操作,笔者也没有提及,因为现在普遍都使用SQLAlchemy

数值

浮点数精度问题

使用Python内置模块decima来实现高精度。

布尔值也是数字类型

Ture -> 1,False -> 0,这里插一句其他章节的内容:Python里每个类型都有对应的bool值,对于分支语句我们可以使用隐式判断。对应如下表

数据类型TrueFasle
数字(Number)非00、None
字符串非空字符串(注意:" "为真)""空字符串
列表非空空列表
元组非空空元组

字符串

1. 字符串常用操作

因为字符串是有序的所以可以执行执行如下操作

a.遍历
>>> for s in "Hello,World!":
...     print(s)
...   
b.切片
>>> s[1:3]
'el'
c.反转
>>> s = "Hello,World!"
>>> s[::-1]
'!dlroW,olleH'

2.字符串格式化

有如下三种:

  1. C语言风格的%格式化语句:‘Hello,%S’%‘World’。
  2. 新式字符串格式化(str.format)方式(Python 2.6 新
    增):“Hello, {}”.format (‘World’)。
  3. f-string字符串字面量格式化表达式(Python 3.6 新增):
    name = ‘World’; f’Hello, {name}'。
    可读性:从上到下依次提高;
    2和3可以共享了同一种复杂的“字符串格式化微语言”,可以对字符串二次加工。
>>> '{:>20}'.format("HelloWorld")
'          HelloWorld'
>>> f'{"HelloWorld":>20}'
'          HelloWorld'

3.多个字符串拼接

有俩种方法:

  1. 使用+=
  2. 使用''.join()
    方法1和方法2一样好用,性能开销差不多!但是方法一1的可读性也不弱
常用且好用的字符串方法

有如下:

  1. ''.join(): 字符串拼接
  2. str.split(): 字符串分割
  3. .startswith():用于判断某个字符串,是否以某个字符开头

4. 不常用但好用的字符串方法

有如下:

  1. str.isdigit(): 用于判断某个字符串是否只含有数字。
  2. str.partition(sep): 是按照分隔符 sep 切分字符串,返回一个包含三个成员的元组:(part_before, sep, part_after)。
  3. str.tanslate(): 一次性替换多个字符。
  4. str.lower():将字符串的大写替换为小写。
  5. str.upper(): 将字符串的小写替换为大写。
>>> s = '明明是中文,却使用了英文标点.'
>>> table = s.maketrans(',.', ',。')
>>> s.translate(table)
'明明是中文,却使用了英文标点。'

5. 字符串与字节串

广义字符串分为俩类:

  1. 字符串(str): 给人看的
  2. 字节串(bytes): 有时也称"二进制字符串",给机器看的

字符串编码就会变成字节串,而字节串解码会变成字符串。str.encode()=>bytes bytes.decode()=>str

编程建议

  1. 使用常量或枚举类型来代替数字字面
  2. 不必预计算字面量表达式: 都是相同的 二进制字节码文件
  3. 无穷大(float("inf"))和无穷小(float("-inf")): 用于 处理边界逻辑, 例如需要按照大小 排序
  4. 改善超长字符串可读性: 用括号包起来;删除自带行缩进:textwrap 的 dedent方法
  5. r开头的方法:如与str.split()取反序的str.rsplit()
s = ("This is the first line of a long string, "
"this is the second line")
# 如果字符串出现在函数参数等位置,可以省略一层括号
def main():
logger.info("There is something really bad happened during the
process. "
"Please contact your administrator.")
from textwrap import dedent
def main():
if user.is_active:
message = dedent("""\
Welcome, today's movie list:
- Jaw (1975)
- The Shining (1980)
- Saw (2004)""")
http://www.dtcms.com/a/572794.html

相关文章:

  • QuickSSO 与 ECreator 实操应用案例手册
  • Flutter Android Kotlin 插件编译错误完整解决方案
  • 网站设计问题网站开发包含的项目和分工
  • FPGA—ZYNQ学习UART环回(五)
  • 电动汽车充电云与移动应用基础设施的漏洞识别、攻击实验及缓解策略
  • PFMEA中的预防措施和探测措施区别
  • 做钢材的网站php 7 wordpress
  • 告别繁琐手工录入:智能银行票据套打软件,让制单效率飞跃
  • 【Java】理解 Java 中的 this 关键字
  • 在编译OpenHarmony遇到third_party/libnl编译报错的修复办法
  • 建c2c网站俄罗斯乌克兰为什么打仗
  • vue在获取某一个div的大小,怎么确保div渲染好,内容撑开后才去获取大小
  • ITIL 4 复习练习及解题思路
  • 数据结构:单链表(2)
  • MYSQL数据库--索引、视图练习
  • 2.2.5 运算方法和运算电路【2011统考真题】
  • 前端上传图片加裁剪功能
  • DevEco Studio 鸿蒙 引入lib中的文件
  • 简述数据库设计--范式、ER图
  • 【Linux】权限(1):初识权限与使用理解
  • 深圳专业做网站的公司河南企业建站系统信息
  • 企业门户网站设计报告wordpress接口
  • 基于大数据的天气分析与应用系统
  • spark读取table中的数据【hive】
  • 最后一轮征稿开启 | ACM出版 | 第二届大数据分析与人工智能应用学术会议(BDAIA2025)
  • 史诗级:在麒麟离线服务器上部署 Dify (含 Weaviate、Nginx 网关、FIP 及离线插件)
  • 潮州网站制作网站建设与管理怎么样
  • 一次实时采集任务延迟问题的完整复盘(Flink CDC)
  • Linux常用命令练习题
  • 常见的接口协议有哪些?(HTTP/HTTPS、REST、SOAP、WebSocket等)