首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面试复习-Python-数据类型

面试复习-Python-数据类型

作者头像
宅蓝三木
发布于 2024-10-09 13:09:45
发布于 2024-10-09 13:09:45
15400
代码可运行
举报
文章被收录于专栏:三木的博客三木的博客
运行总次数:0
代码可运行

Python 是一种高级编程语言,具有丰富的数据类型。了解这些数据类型对于有效地编写 Python 代码至关重要。以下是对 Python 主要数据类型的详细介绍。

Python使用对象模型来存储数据,一个python对象通常包含ID,Type, Value。

Python数据类型的分类

标准类型:

  • 数字
  • 整型
  • 长整型
  • 浮点型
  • 复数
  • 布尔型
  • 字符串
  • 列表 (可变)
  • 元组
  • 字典 (可变)

其他内置数据类型:

  • 类型
  • None
  • 文件
  • 集合
  • 函数
  • 模块

布尔值为False的对象: None, False, 0, 0.0, 0L, 0.0+0.0j, "", [], (), {} (JS中[], {}转换成布尔值后为true)

标准类型的操作符

  1. 数值比较操作符有: < > <= >= == != <>
  2. ID比较: isis not
  3. 逻辑运算: and or not
  4. 用于标准类型的内置函数: type(o) repr(o) str(o) isinstance(o, O) id(o)

序列类型操作符

字符串、元组和列表为序列类型,序列类型的操作符如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> string = "hello world"
>>> string[2]
'l'
>>> string[2:5]
'llo'
>>> string[2:5:2]
'lo'
>>> string*2
'hello worldhello world'
>>> string + string
'hello worldhello world'
>>> "l" in string
True
>>> "l" not in string
False

操作序列类型的内建函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> for i, v in enumerate(string):
...     print(i,v)
...
0 h
1 e
2 l
3 l
4 o
5
6 w
7 o
8 r
9 l
10 d
>>> len(string)
11
>>> max(string)
'w'
>>> min(string)
' '
>>> for v in reversed(string):
...     print(v)
...
d
l
r
o
w

o
l
l
e
h
>>> sorted(string)
[' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
ValueError: not enough values to unpack (expected 2, got 1)
>>> for v in zip(string):
...     print(v)
...
('h',)
('e',)
('l',)
('l',)
('o',)
(' ',)
('w',)
('o',)
('r',)
('l',)
('d',)

数字

  • 整型: 最大取值取决于机器字长
  • 长整型:最大取值取决于虚拟内存的大小
  • 强制类型转换:整形->浮点型->复数->长整型
  • 操作符:/ // % **
  • 整型的位运算符:~ << >> & ^ |
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 数字类型的操作函数
>>> bool(5)
True
>>> bool(0)
False
>>> int(5.0)
5
>>> int('01101', 2)
13
>>> float('5.0')
5.0
>>> float(5)
5.0
>>> complex(1, 2)
(1+2j)
>>> complex('1+2j')
(1+2j)

>>> pow(2, 2)
4
>>> pow(2, 3)
8
>>> pow(2, 3, 3)
2
>>> round(5.354, 2)
5.35
>>> round(5.3)
5
>>> round(5.6)
6
>>> round(5.254, 1)
5.3
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 整型的操作函数
>>> hex(255)
'0xff'
>>> oct(255)
'0o377'
>>> chr(46)
'.'
>>> ord('.')
46
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 0.3 == 3 * 0.1 #规避浮点数二进制表示除不尽的问题
False
>>> 0.3 - 3 * 0.1 < 0.00001
True

字符串

格式化字符串

在 Python 中有多种方法格式化字符串,以下是一些主要的方式:

  • 使用百分号(%)格式化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))

其中 %s 表示字符串占位符,%d 表示整数占位符。

  • 使用 .format() 方法

位置参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print("My name is {} and I am {} years old.".format(name, age))

关键字参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print("My name is {n} and I am {a} years old.".format(n=name, a=age))

索引参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print("My name is {0} and I am {1} years old.".format(name, age))
  • 使用 f-strings(Python 3.6 及以上版本)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(f"My name is {name} and I am {age} years old.")

f-strings 非常直观和简洁,可以在字符串中直接嵌入变量和表达式。 此外,还可以在格式化字符串中指定格式规范,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pi = 3.1415926
print(f"Pi is approximately {pi:.2f}")

这里 .2f 表示将 pi 格式化为保留两位小数的浮点数。

字符串对象常用的方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> string = "hello world!"
>>> string.find("ll", 0, len(string))
2
>>> string.index("iam")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> string.find("iam")
-1
>>> ":".join(["key", "value"])
'key:value'
>>> " hello ".lstrip()
'hello '
>>> " hello ".rstrip()
' hello'
>>> " hello ".strip()
'hello'

列表

列表对象的常用方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> mylist = []
>>> mylist.append("hello")
>>> mylist
['hello']
>>> mylist.extend(["world"])
>>> mylist
['hello', 'world']
>>> mylist.insert(1, True)
>>> mylist
['hello', True, 'world']
>>> mylist.pop()
'world'
>>> mylist
['hello', True]
>>> mylist.reverse()
>>> mylist
[True, 'hello']
>>> mylist.remove(True)
>>> mylist
['hello']
>>> mylist.extend(["world", 1, 0])
>>> mylist
['hello', 'world', 1, 0]
>>> mylist.remove("hello")
>>> mylist.remove("world")
>>> mylist.sort()
>>> mylist
[0, 1]

python对象的浅拷贝与深拷贝

在 Python 中,对象的浅拷贝(shallow copy)和深拷贝(deep copy)是两种不同的复制方式。

浅拷贝

创建一个新的对象,但是新对象中的元素是原对象中元素的引用。这意味着如果原对象中的可变对象(如列表、字典等)发生改变,浅拷贝得到的新对象中的对应元素也会改变。使用方法如下:

使用切片操作进行浅拷贝,例如 new_list = old_list[:]。

使用 copy 模块的 copy() 函数,例如 import copy,然后 new_list = copy.copy(old_list)。 示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> mylist = [1, [2, 3], 4]
>>> yourlist = mylist[:]
>>> mylist[1][0] = 3
>>> mylist
[1, [3, 3], 4]
>>> yourlist
[1, [3, 3], 4]
深拷贝

创建一个新的对象,并且新对象中的元素与原对象中的元素完全独立,不是引用关系。这意味着无论原对象中的可变对象如何改变,深拷贝得到的新对象都不会受到影响。 使用 copy 模块的 deepcopy() 函数,例如 import copy,然后 new_list = copy.deepcopy(old_list) 示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> mylist = [1, [2, 3], 4]
>>> import copy
>>> yourlist = copy.deepcopy(mylist)
>>> mylist[1][0] = 3
>>> yourlist
[1, [2, 3], 4]

字典

  • in, not in 可以查询key是不是在字典中
字典的常用内建方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> profile = {
...     "name": "Sen",
...     "age": 18,
...     "sex": "male"
... }
>>> profile.keys()
dict_keys(['name', 'age', 'sex'])
>>> profile.values()
dict_values(['Sen', 18, 'male'])
>>> profile.items()
dict_items([('name', 'Sen'), ('age', 18), ('sex', 'male')])
>>> profile.get('phone', "10086")
'10086'
>>> profile.get('phone')
>>> profile['phone']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'phone'
>>> profile.pop("age")
18
>>> profile
{'name': 'Sen', 'sex': 'male'}
>>> profile.update({"age": 18})
>>> profile
{'name': 'Sen', 'sex': 'male', 'age': 18}

集合

集合类型的常用操作符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> all = set([1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10])
>>> odd = set([1,3,5,7,9])
>>> even = set([2,4,6,8,10])
>>> odd in all
False
>>> all
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
>>> odd
{1, 3, 5, 7, 9}
>>> 3 in all
True
>>> odd < all
True
>>> odd <= all
True
>>> odd != all
True
>>> odd & all
{1, 3, 5, 7, 9}
>>> odd & even
set()
>>> odd | even == all
True
>>> odd | even
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
>>> all - odd == even
True
>>> odd ^ even
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
>>> odd ^ odd
set()
集合类型的常用方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> odd.update(even)
>>> odd == all
True
>>> odd = all - even
>>> odd
{1, 3, 5, 7, 9}
>>> odd.add(11)
>>> odd
{1, 3, 5, 7, 9, 11}
>>> odd.discard(12)
>>> odd
{1, 3, 5, 7, 9, 11}
>>> odd.pop()
1
>>> odd.clear()
>>> odd
set()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
突发!中国法院初步裁决禁售多款iPhone,高通告赢了苹果?
今日晚间消息,高通公司在中国赢得了对苹果公司的诉讼,福州中院已经做出初步裁决:在中国禁售部分iPhone型号。
新智元
2018/12/26
3960
7款iPhone在华被禁售!苹果在福州法院遭遇全球首场败诉
看似两家美国高科技公司的过节,在这个时间点发生在中国,却让人不得不去多想其后的深意。路透社凌晨报道中直接称,“这可能是个政治游戏……关于苹果公司在中国最大的竞争对手,而高通是其供应商。”
大数据文摘
2018/12/25
5600
不可上诉!高通苹果之战再反转,禁制令一剑封喉
北京时间12月10日晚,高通对外宣布,福州市中级人民法院已正式下达iPhone禁售令,同意其有关“在中国禁售部分iPhone手机”的请求。
镁客网
2018/12/25
4530
禁售iPhone再升级!高通寻求美国禁止进口苹果,5G大战英特尔躺枪
昨天,高通说服美国贸易委员会(ITC),考虑对使用英特尔芯片的iPhone手机下进口禁令,试图让苹果低头。
新智元
2018/12/27
4770
禁售iPhone再升级!高通寻求美国禁止进口苹果,5G大战英特尔躺枪
高通把苹果逼急了?传苹果正大力研发调制解调器
The Information报道,苹果正在大力研发手机调制解调器。这是iPhone中最复杂、最昂贵的组件之一,也是苹果受制于高通的重要组件。证据主要有两个:
量子位
2019/04/24
2820
高通把苹果逼急了?传苹果正大力研发调制解调器
防患高通效仿华为,苹果10亿美元收购英特尔手机基带业务!打造5G备胎,加强自主可控
有人说这是苹果自研基带之心不死,也能当作苹果为5G种下备胎计划,或者会是苹果加强关键供应链自主可控的重要一步。
量子位
2019/07/30
4730
原创译文 | 德国法院裁定苹果公司侵犯高通专利权
本文为灯塔大数据原创内容,欢迎个人转载至朋友圈,其他机构转载请在文章开头标注:“转自:灯塔大数据;微信:DTbigdata”
灯塔大数据
2018/12/29
4470
高通胜诉,中国法院禁止出售某些iPhone
中国法院已向高通公司授予两项针对苹果公司的临时禁令,禁止在中国的智能手机市场销售某些iPhone型号。
SDNLAB
2018/12/26
5420
一文读懂高通苹果专利战背后的专利常识
专利诉讼早就屡见不鲜,暂且放下高通和苹果公司之间的“恩怨情仇”,我们是否有过这些疑惑:到底什么是专利?为何会有专利之争?为何专利战愈演愈烈?专利究竟有什么价值?如何使用他人的专利?本文将为大家解读专利战背后的专利常识。
yuanyi928
2018/12/27
8840
一文读懂高通苹果专利战背后的专利常识
输输赢赢,高通与苹果的那些专利官司故事
作为芯片公司,高通(Qualcomm)可能不是最大的那一个,但一定是最活跃的那一个。似乎无论何时,我们总是能看到高通正在对某某公司进行着某某专利的起诉。
人称T客
2019/05/08
4310
高通诉讼请求停售中国iPhone,苹果称其必将失败 | 热点
苹果指出高通多年来滥用其地位。 据彭博社报道,14日凌晨,高通(Qualcomm)向北京一家知识产权法院提出诉讼,请求禁止在中国生产和销售苹果手机。 据了解,高通在北京提交的最新诉讼涉及三项非标准专利
镁客网
2018/05/30
3550
高通被判违反垄断法,股价一路下跌,未来格局将受大影响
据《华尔街日报》报道,美国加州圣何塞北区联邦法官在5月22日做出了裁决,认定高通涉嫌在手机芯片销售中采用非法手段压制竞争,并收取过多的专利授权费。
镁客网
2019/05/23
3510
继荣耀OPPO之后,vivo与诺基亚达成专利交叉许可协议!三家将贡献15亿欧元?
当地时间2月5日,芬兰通信设备大厂诺基亚宣布已与中国智能手机厂商vivo签署了一份多年专利交叉许可协议。根据协议,vivo 将向诺基亚支付特许权使用费,并追加支付争议期间的款项。该协议解决了双方在所有司法管辖区之间所有悬而未决的专利诉讼。具体的协议条款将按照双方商定保持保密。
芯智讯
2024/02/26
1710
继荣耀OPPO之后,vivo与诺基亚达成专利交叉许可协议!三家将贡献15亿欧元?
中微公司获二审胜诉!认定泛林集团侵犯等离子刻蚀机商业秘密!
2023年7月11日,中微半导体设备(上海)股份有限公司(以下简称“中微公司”)今日宣布,公司在针对美国半导体设备大厂泛林集团(Lam Research Corporation,又称“科林研发”)提起的侵犯商业秘密案中赢得二审胜诉。
芯智讯
2023/08/09
3980
中微公司获二审胜诉!认定泛林集团侵犯等离子刻蚀机商业秘密!
华大基因及子公司测序产品在美被禁,lllumina初步胜诉
6月13日,美国加州北部地区法院法官William Orrick批准了Illumina公司对华大基因的禁令。华大基因使用标准MPS测序和CoolMPS化学测序技术的基因测序仪,将被禁止在美国推广销售。这项禁令不包括华大基因的样品制备产品。
新智元
2020/06/29
8350
华大基因及子公司测序产品在美被禁,lllumina初步胜诉
大立光对玉晶光电发起专利侵权诉讼,意在iPhone 15系列订单?
12月21日消息,中国台湾镜头模组大厂大立光再度发动专利战,于中国大陆厦门中级人民法院对玉晶光电及子公司玉晶厦门提起侵犯专利权诉讼,这是时隔九年后,大立光再度对玉晶光电发起专利侵权诉讼。
芯智讯
2023/02/09
3980
苹果上诉成功,美国法院暂停Apple Watch禁售令
12月28日消息,由于美国政府拒绝推翻苹果两款Apple Watch新品侵犯医疗科技公司Masimo无创血氧传感或脉搏血氧测定法相关专利,使得针对这两款Apple Watch在美国的禁售令正式生效。对此,苹果公司于当天向美国联邦巡回区上诉法院提出上诉,希望暂停禁令,这一上诉已经获得了法院的批准,这也使得两款Apple Watch可暂时避免被禁。
芯智讯
2023/12/29
1670
苹果上诉成功,美国法院暂停Apple Watch禁售令
判决下来了!陈欧的“街电”也在过冬,有团队遭解散!
按法院判决要求,街电需在30日(即12月21日,今日)前停止使用侵权设备,所涉产品为街电铺设最广泛的终端设备之一。目前,街电已进驻300多个城市,投放市场的设备数量有近百万台。而这起案件所带来的影响则远远不止设备和产品本身,公司运营、合作伙伴、资本等方方面面均将受到影响。已有商户收到了服务商撤除产品并提现的内部信,公司处于动荡期,南宁最大维护运营团队也已解散。
数据猿
2018/12/28
1.9K0
判决下来了!陈欧的“街电”也在过冬,有团队遭解散!
大疆在美国被告,商务部预警!最后竟是中兴投资公司所为
所以当商务部官网发出专利诉讼预警,通报最新中国企业在美遭遇诉讼的事件时,自然也比平时更受关注。
量子位
2018/09/29
5020
大疆在美国被告,商务部预警!最后竟是中兴投资公司所为
苹果税遭重击!法院判决:App Store必须90天内开放第三方支付,苹果市值一夜蒸发5477亿
刚刚,美国加州法院一纸禁令,苹果股价收跌3.31%,市值蒸发约850亿美元(约合人民币5477亿元),创下5月份以来最大跌幅。
量子位
2021/09/29
4650
推荐阅读
突发!中国法院初步裁决禁售多款iPhone,高通告赢了苹果?
3960
7款iPhone在华被禁售!苹果在福州法院遭遇全球首场败诉
5600
不可上诉!高通苹果之战再反转,禁制令一剑封喉
4530
禁售iPhone再升级!高通寻求美国禁止进口苹果,5G大战英特尔躺枪
4770
高通把苹果逼急了?传苹果正大力研发调制解调器
2820
防患高通效仿华为,苹果10亿美元收购英特尔手机基带业务!打造5G备胎,加强自主可控
4730
原创译文 | 德国法院裁定苹果公司侵犯高通专利权
4470
高通胜诉,中国法院禁止出售某些iPhone
5420
一文读懂高通苹果专利战背后的专利常识
8840
输输赢赢,高通与苹果的那些专利官司故事
4310
高通诉讼请求停售中国iPhone,苹果称其必将失败 | 热点
3550
高通被判违反垄断法,股价一路下跌,未来格局将受大影响
3510
继荣耀OPPO之后,vivo与诺基亚达成专利交叉许可协议!三家将贡献15亿欧元?
1710
中微公司获二审胜诉!认定泛林集团侵犯等离子刻蚀机商业秘密!
3980
华大基因及子公司测序产品在美被禁,lllumina初步胜诉
8350
大立光对玉晶光电发起专利侵权诉讼,意在iPhone 15系列订单?
3980
苹果上诉成功,美国法院暂停Apple Watch禁售令
1670
判决下来了!陈欧的“街电”也在过冬,有团队遭解散!
1.9K0
大疆在美国被告,商务部预警!最后竟是中兴投资公司所为
5020
苹果税遭重击!法院判决:App Store必须90天内开放第三方支付,苹果市值一夜蒸发5477亿
4650
相关推荐
突发!中国法院初步裁决禁售多款iPhone,高通告赢了苹果?
更多 >
LV.1
HTML5学堂(码匠)创始人
目录
  • Python数据类型的分类
  • 标准类型的操作符
  • 序列类型操作符
  • 操作序列类型的内建函数
  • 数字
  • 字符串
    • 格式化字符串
    • 字符串对象常用的方法
  • 列表
    • 列表对象的常用方法
  • python对象的浅拷贝与深拷贝
    • 浅拷贝
    • 深拷贝
  • 字典
    • 字典的常用内建方法
  • 集合
    • 集合类型的常用操作符
    • 集合类型的常用方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档