Python 学习笔记(数据类型)

记一些 Python 的学习笔记,数据类型基础:


数据类型

  • 数字 Number
  • 字符串 String
  • 列表 List
  • 元组 Tuple
  • 字典 Dictionary
  • 集合 Sets

不可变数据:Number(数字)、String(字符串)、Tuple(元组)、Sets(集合)。

可变数据:List(列表)、Dictionary(字典)。

数字:Python3 支持 intfloatboolcomplex(复数)。

整数

  • 一些常用计算:
运算输入输出描述
除法2 / 21.0永远返回一个浮点数
floor除法3 // 21丢掉任何小数部分,返回整数 ( 1.5 -> 1 )
求余17 % 32返回整数
幂乘方5 ** 2255 的平方
  • 十六进制表达: 加 0x 前缀,例如 0xff00

浮点数

整数和浮点数的混合计算中,会转换为浮点数计算。

  • 科学计数法: 1.23e91.2e-5

复数

3+5j,虚数部分用 j 表示,或 complex(3, 5)

布尔值

TrueFalse,注意区分大小写。

字符串

  • 转义符: \
输入输出描述
'\'''能正确输出 '
'\n'会换行
'\\n'\n不会换行
r'\n'\nr'string' 默认字符串为原始字符串,不转义
  • 多行字符串文本:
'''\
   这是第一行
   这是第二行
'''
  • 字符串拼接:
描述输入输出
重复'un' * 3ununun
连接'un' + 'un'unun
相邻文本自动连接'un' 'un'unun
自动连接不适用于表达式('un' * 3) 'un'error
  • 截取、切片:
a = 'Python'

print(a[0])  # 输出 P
print(a[-1]) # 输出 n ,最后一位,-0实际是0

# 切片 左闭右开
print(a[:2])   # 输出 Py
print(a[2:])   # 输出 thon
print(a[:100]) # 输出 Python
print(a[100:]) # 输出 ''
  • 格式化:

    例一:
    'Hello, %s' % 'world',实际输出 'Hello, world' , 其中 %s 被替换成 world

    例二:
    '%s, you have %d apples' % ('Ben', 2),实际输出 'Ben, you have 2 apples' , 其中 %s 被替换成 Ben%d 被替换成 2

    例三:
    '%d' % 3 '%2d' % 3 '%02d' % 3, 实际输出 '3' ' 3' '03',依次代表正常、2位数(右对齐)、2位数前置补0。
    '%.2f' % 3.1415, 实际输出 '3.14', 保留两位小数。

    例四:
    'Hello, {0}, {1.2f}'.format('Ben', 3.1415),实际输出 Hello, Ben, 3.14

正常输出 %%% 转义

占位符描述
%d整数
%f浮点数
%s字符串
%x十六进制
  • 和数字比较

字符串不能直接和数字比较, int('123') < 1000

列表

有序集合,可添加和删除其中元素

  • 索引
a = ['Python', 123, True, 'XYZ']

print(a[0])   # 输出 Python
print(a[-1])  # 输出 XYZ
print(a[100]) # 错误

# 切片 左闭右开
a[0:1] = []   # 现在 a 为 [123, True, 'XYZ']
  • 增删
a = ['Python', 123, True, 'XYZ']

# 删
print(a.pop())     # 输出 XYZ, 现在 a 为 ['Python', 123, True]
print(a.pop(1))    # 输出 123, 现在 a 为 ['Python', True]
a.remove('Python') # 移除列表中第一个匹配项
del a[0]           # 删除项

# 增
a = ['Python', True]
a.append('XYZ')    # 现在 a 为 ['Python', True, 'XYZ']
  • 列表生成式
squares = [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

squares = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
  • 生成器

创建一个包含100万个元素的列表,会占用大量内存,并且通常也用不到全部元素。而生成器不必创建完整的列表,而是在循环的过程中不断推算出后续的元素,节省了大量空间。

squares = (x * x for x in range(10)) # 可用 for 循环迭代

# 把函数变成生成器 generator
def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b             # 调用 next() 时的返回,再次执行时从此处继续
        a, b = b, a + b
        n = n + 1
    return 'done'

元组

一旦初始化就不能改变

t = ('a', 'b', ['A', 'B'])

t[2][0] = 'X' # 此时 t 为 ('a', 'b', ['X', 'B'])

上面代码,修改的是元组 t 中的列表, 元组并没有改变,因为 t[2] 指向没变。

只有一个元素的写法 t = (1,),因为 t = (1) 实际为数字 1

字典

使用 键-值(key-value)储存,具有极快的查找速度

a = {
    'Ben': 2,
    'Lemon': 3,
    'Tom': 6
}

# 如果key不存在,dict就会报错
print(a['Jack'])  # error

# 两种方法避免因为key不存在而报错

# 1. in判断是否存在
if 'Jack' in a:
    print(a['Jack'])

# 2. 通过字典提供的get()方法
a.get('Jack')     # return None
a.get('Jack', -1) # return -1

# 删除
a.pop('Ben')      # return 2 此时 a 为 {'Lemon': 3, 'Tom': 6}

# 输出所有键
print(a.keys())   # return dict_keys(['Lemon', 'Tom'])
# 输出所有值
print(a.values()) # return dict_values([3, 6])

dict 内部存放的顺序,和 key 放入的顺序没有关系。

key 不能变,所以用字符串、整数等作为 key ,不能使用 list

集合

无序和无重复元素的集合,类似于只有 key 没有 value 的字典,比如 {1, 2, 3}key 同样不能是可变元素 list

# 创建集合
s = set([1, 2, 3]) # 提供一个 list 作为输入集合

# 重复元素在set中自动被过滤
s = set([1, 1, 2, 2, 3, 3])

# 显示的顺序也不表示set是有序的
>>> s
{1, 2, 3}

# 增
s.add(4)           # {1, 2, 3, 4}

# 删
s.remove(4)        # {1, 2, 3, 4}

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])

# 交集
>>> s1 & s2
{2, 3}

# 并集
>>> s1 | s2
{1, 2, 3, 4}

s = set([(1, 2, 3)])
print(s)           # {(1, 2, 3)}

s = set([(1, 2, [3, 4])])
print(s)           # error

数据类型函数整合

一些和数据类型有关的函数整理,并标出相应的模块

数字函数

  • 数学函数
函数描述
abs(x)绝对值
max(x, y, z)返回参数中的最大值
min(x, y, z)返回参数中的最小值
pow(x, y)返回 x 的 y 次方
round(x[, y])x 四舍五入到 y 位小数,无参数 y 则默认整数
math.ceil(x)向上取整
math.floor(x)向下取整
math.exp(x)e 的 x 次幂
math.fabs(x)绝对值,返回浮点数
math.log(x)以 e 为基数的 x 的对数
math.log10(x)以 10 为基数的 x 的对数
math.modf(3.15)返回(小数部分,整数部分),例 (0.149999, 3.0),都是浮点数
math.sqrt(x)x 的平方根,浮点型
  • 数学常量
常量描述
math.pi圆周率
math.e自然常数
  • 随机数函数
常量描述
random.choice(seq)从序列的元素中随机挑一个
random.randrange([开始值,]结束值[, 间隔步长])从指定范围指定步长中获取随机数,步长默认1
random.random随机生成 [0,1) 的随机数
random.shuffle(list)将整个序列随机排序, 返回 None
random.uniform(x, y)生成 [x, y] 范围内的一个随机数
  • 三角函数
函数描述
math.acos(x)x 的反余弦弧度值
math.asin(x)x 的反正弦弧度值
math.atan(x)x 的反正切弧度值
math.atan2(y, x)给定的 x、y 坐标的反正切弧度值
math.cos(x)余弦
math.sin(x)正弦
math.tan(x)正切
math.degrees(x)弧度转角度,浮点型
math.radians(x)角度转弧度,浮点型

字符串方法

函数描述
capitalize()首字符大写
lower()全转为小写
upper()全转为大写
center(w, f)以 w 为宽居中,以 f 填充
ljust(w[, f])以 w 为宽左对齐,以 f 填充,默认空格
rjust(w[, f])以 w 为宽右对齐,以 f 填充,默认空格
count(str, beg=0, end=len(str))str 在字符串中出现次数,beg 和 end 指定查找位置
endswith(str, beg=0, end=len(str))是否以 str 结束
expandtabs(tabsize=8)将 tab 转为空格,默认为 8 空格
find(str, beg=0, end=len(str))返回 str 在字符串中位置,没有则 -1
rfind(str, beg=0, end=len(str))从右边找
index(str, beg=0, end=len(str))返回 str 在字符串中位置,没有则报错
join(seq)以字符串作间隔符,将序列seq合并为新字符串
lstrip()截掉字符串左边的空格或指定字符
rstrip()截掉字符串右边的空格或指定字符
strip()截掉字符串两边的空格或指定字符
replace(old, new[, max])将字符串中 old 替换为 new,不超过 max 次

列表方法

函数描述
append(obj)在列表末尾添加新对象
count(obj)某个元素在列表中出现的次数
extend(seq)将另一个序列中的值追加到列表末尾
index(obj)返回第一个匹配项的索引位置
insert(index, obj)将对象插入列表
pop(index)移除列表中的一个元素,默认最后一个元素,并返回值
remove(obj)移除某个值的第一个匹配项
reverse()反向排列
sort([func])排序
clear()清空列表
copy()复制列表

字典方法

函数描述
clear()删除字典内所有函数
copy()返回一个字典的浅复制
get(key[, defaultValue])返回指定键的值,如果没有就返回 defaultValue
key in dictkey 在字典中就返回 True, 否则返回 False
items()返回可遍历的(键,值)元组列表,例 dict_items([(‘key1’, ‘value’), (‘key2’, ‘value2’)])
keys()以列表返回所有键
values()以列表返回所有值
setdefault(key, default=None)如果键不存在,则设为default
update(otherDict)将 otherDict 的键、值更新到字典中
pop(key[, default])删除 key 所对应的值,返回为被删除的值。找不到 key,返回default 值
popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
Python学习笔记PDF是一种学习Python编程语言的资料形式,它包含了Python的基本语法、数据类型、流程控制、函数、模块、面向对象编程、异常处理等相关内容。以下是关于Python学习笔记PDF的详细内容说明: 1. 基本语法:Python学习笔记PDF中,首先介绍了Python的基本语法,例如如何定义变量、数据类型的使用(包括整数、浮点数、字符串、列表、元组、字典等),以及如何进行算术运算、比较运算和逻辑运算。 2. 流程控制:Python学习笔记PDF中,进一步介绍了流程控制的知识,包括条件判断和循环控制。条件判断主要是通过if语句进行判断执行不同的代码块,而循环控制则通过while循环和for循环来实现重复执行一段代码。 3. 函数:Python学习笔记PDF中,对函数的概念和使用进行了详细的解释。函数是代码的封装和组织方式,通过定义函数可以提高代码的重用性和可读性。学习者将了解到如何定义函数、调用函数、函数参数的传递以及函数返回值的使用。 4. 模块:Python学习笔记PDF中,介绍了Python中的模块和包的概念。模块是一组函数、类或变量的集合,以.py文件的形式存在,可以被其他程序调用和使用。学习者将学习如何导入模块、使用模块中的函数和变量。 5. 面向对象编程:Python学习笔记PDF中,对面向对象编程进行了系统的讲解。面向对象编程是一种以对象为基本单位的编程思想,通过定义类和对象,可以更好地组织和管理代码。学习者将了解如何定义类、创建对象、封装、继承和多态的使用。 6. 异常处理:Python学习笔记PDF中,对异常处理进行了介绍。异常是程序在运行过程中出现的错误,通过捕获和处理异常,可以更好地控制程序的执行流程并提高程序的健壮性。学习者将了解到如何使用try-except语句来捕获和处理异常。 总之,Python学习笔记PDF是一份全面而详细的学习Python编程语言的资料,通过学习该资料,学习者将获得扎实的Python编程基础,并能够运用Python进行简单的程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值