前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】:老鸟的入门笔记(3)

【Python】:老鸟的入门笔记(3)

作者头像
WEBJ2EE
发布2023-09-02 10:04:03
1670
发布2023-09-02 10:04:03
举报
文章被收录于专栏:WebJ2EE

阅读本文大概需要 10 分钟。

提要

哈喽,大家好!继续分享我整理的一些Python3笔记。

TL;DR

* 字符串基础

* 列表、字典、元组

* 文件

一、字符串基础

  • Python 字符串是一个有序的字符集合,用来存储和表示基于文本字节的信息。
  • Python 3.X 中有三种字符串类型:
    • str:用于 Unicode 文本
    • bytes:用于二进制数据
    • bytearray:是 bytes 的一个可修改变体
  • Python 没有为单个字符留有不同的类型。
  • Python 的字符串是不可变序列,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在原位置修改。
代码语言:javascript
复制
s = "hello webj2eedev."
s[0] = "W"
  • 转义序列让我们能够在字符串中嵌入不容易通过键盘输入的字符
代码语言:javascript
复制
s = "abc\n\tefg"
print(s, len(s))
  • 原始字符串可以关闭转义能力,Python会将反斜杠作为字面量来保持。
代码语言:javascript
复制
p = r'c:\name1\name2'
q = 'c:\name1\name2'
print(p)
print(q)
  • 三引号可编写多行块字符串
代码语言:javascript
复制
p = """
<html>
    <body>
        <h1>Hello Webj2eedev.</h1>
    <body>
</html>
"""
print(p)
  • 索引、分片
代码语言:javascript
复制
s = 'Hello Webj2eedev.'

r1 = s[:] # 复制
r2 = s[:5] # 切片
r3 = s[::-1] # 步长可以为负值
print(r1)
print(r2)
print(r3)
  • 字符<-->码点
代码语言:javascript
复制
print(ord('W'))
print(chr(87))
print(ord("我"))
print(chr(25105))
  • 字符串方法
代码语言:javascript
复制
a = ["hello", "world", "!"]
print(",".join(a))
  • 字符串格式化表达式
    • '...%s...' % (values) 形式起源于 C 语言的 printf 模型
    • '...{}...'.format(values) 形式起源于 C#/.NET 中的同名工具
代码语言:javascript
复制
# 所有类型,都可以用 %s
s = '%s --- %s --- %s --- %s' % ('abc', 3.1415, {"xm": "张三"}, [1, 2, 3])
print(s)
代码语言:javascript
复制
# 高级特性
print('---%-8.3f---' % (3.1415))
print('---%08.3f---' % (3.1415))
print('---%08d---' % (3.1415))
代码语言:javascript
复制
# 支持字典形式
print('---%(pi)-8.3f---' % {"pi": 3.1415})
  • 字符串格式化方法
代码语言:javascript
复制
print('----{0}---{1}---{2}---'.format('张三', '李四', '王五'))
print('----{zs}---{ls}---{ww}---'.format(zs='张三', ls='李四', ww='王五'))
print('----{0}---{1}---{ww}---'.format('张三', '李四', ww='王五'))
print('----{}---{}---{}---'.format('张三', '李四', '王五'))
代码语言:javascript
复制
import sys
print('---{0.platform:<30}---'.format(sys))
print('---{0.platform:^30}---'.format(sys))
print('---{0.platform:>30}---'.format(sys))
print('---{0:^30,}---'.format(123456789))

二、列表、字典、元组

2.1. 列表

  • 任意对象的有序集合
  • 通过偏移访问
  • 可变长度、异构以及任意嵌套
  • 属于“可变序列”的分类
代码语言:javascript
复制
# 列表基本操作
len([1,2,3,4])
[1,2] + [3,4]
[1, 2, 1, 2, 1, 2, 1, 2]
代码语言:javascript
复制
# 列表迭代
3 in [1,2,3]
for x in [1,2,3]:
    print(x, end='')
代码语言:javascript
复制
# 列表推导
[c * 4 for c in [1,2,3]]
[c * 4 for c in '123']
代码语言:javascript
复制
L = [3, 11, 50, 30, 9, -1]
L[1] = 12
L[0:2] = [4, 12, 51]
L.reverse()
L.sort(reverse=True)
L.extend([-2, -4, -10])
L[5:] = []
del L[3:]
M = L[:]
L is M

2.2. 字典

  • 通过键而不是偏移量来读取
  • 任意对象的无序集合
  • 长度可变、异构、任意嵌套
  • 属于“可变映射”类型
代码语言:javascript
复制
D = {'spam': 2, 'eggs': 3, 'ham': 1}
len(D)
'ham' in D
D.keys()
D.values()
D.items()
del D['spam']
  • 键不一定总是字符串。任何不可变对象都是可以的。
    • 用字典模拟灵活的列表(整数做键)
    • 用字典描述稀疏数据结构(元组做键)
代码语言:javascript
复制
D = {}
D[99] = 'spam'
代码语言:javascript
复制
Matrix = {}
Matrix[(0, 0, 0, 0)] = 99

2.3. 元组

  • 为什么有了列表还要元组?
    • 答:元组的不可变性提供了某种一致性

三、文件

  • 文件上下文管理器
    • 它可以让我们把文件处理代码包装到一个逻辑层中,以确保在退出后一定会自动关闭文件,而不是依赖于垃圾回收时的自动关闭。
代码语言:javascript
复制
with open('myfile.txt', 'w', encoding='utf-8') as myfile:
    myfile.write('hello world. 张三李四王五')
  • JSON
代码语言:javascript
复制
import json

with open('myfile.json', 'w', encoding='utf-8') as myfile:
    D = {"xm": "张三", "age": 18}
    myfile.write( json.dumps(D, ensure_ascii=False) )
    
with open('myfile.json', 'r', encoding='utf-8') as myfile:
    D = json.load(myfile)
    print(D)
  • pickle 和 struct 什么区别?
    • pickle 旨在自动序列化一个对象,并允许它自动反序列化,前提是该类在反序列化时可用。它的主要缺点是它只能在 Python 中使用。
    • struct 则相反:您必须具体决定保存什么以及以什么格式保存。而且在反序列化的时候,你还必须知道使用了什么格式。但它可用于与任何其他语言交换二进制流,只要格式明确定义。

参考:

《Python学习手册 原书第五版 上册》


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、字符串基础
  • 二、列表、字典、元组
    • 2.1. 列表
      • 2.2. 字典
        • 2.3. 元组
        • 三、文件
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档