Python中数据类型的使用

参加华为官方手册:Python中的“瓶瓶罐罐” 实验指导手册

1 数值

a = 2 + 1j
print(type(a))
print(7 / 2)
print(7 // 2)
print(2 ** 3)  # 输出 8,**表示乘方操作

print(5+1.6) # 输出 6.6,不同精度的类型的数字相加默认取高精度类型作为结果

abs(-1.1) # 输出 1.1
round(1.4) # 输出 1
round(-1.7) # 输出-2
divmod(5,2) # 输出(2, 1)
max(1,2,3,5)# 输出 5

import math
math.cos(math.pi) # 输出-1.0,求取 math.pi 的余弦值
math.fabs(-1) # 输出 1.0,会将结果转化为浮点数
math.ceil(1.1) # 输出 2,向上取整
math.floor(1.1) # 输出 1,向下取整
math.factorial(4) # 输出 24,求阶乘 1*2*3*4

print(True+True)
print(True+False)
print(False-True)
print(True*2)

2 字符串

2.1 索引获取字符串中的元素

str1 = 'Python'
for i in range(6):
    print(str1[i])
for i in range(6):
    print(str1[-1-i])

2.2 切片获取字符串中的元素

str1 = 'Python'
# str1[a: b: c] [a, b]是区间长度, c是步长
print("str1[::]:",str1[::])
print("str1[::2]:",str1[::2])
print("str1[2::2]:",str1[2::2])
print("str1[1:5:2]:",str1[1:5:2])
print("str1[-1:-5:2]:",str1[-1:-5:2])
print("str1[-1:-5:-2]:",str1[-1:-5:-2])

2.3 检测字符、字符串

mystr = 'hello world,my name is python'
str1 = "python"
# str.find (str1, beg=0, end=len(string))
# 查看是否包含 str,可以通过 beg 和 end 指定查找范围
# 返回索引位置,找不到返回-1

mystr.find(str1, 0, len(mystr))  # 输出 23
mystr.find(str1, 5, 20)  # 输出-1

# 统计给定字符的出现次数:
mystr = 'hello world,my name is python'
# str.count(str1, beg=0, end=len(string)),在指定范围统计给定字符出现的次数
mystr.count("n", 0, len(mystr))  # 输出 2

2.4 查看字符串是否以某个字符开始或结束

mystr = 'hello world,my name is python'
# str.startswith(s):是否以 s 开始
print(mystr.startswith("hello"))
# str. endswith(s):是否以 s 结束
print(mystr.endswith("world"))

2.5 格式化输出

格式化操作符(百分号%)、字符串转换类型和格式化操作符辅助指令实现格式化输出。

print('My name is %s ,age is %d' % ('AI', 63))

str1 = "AI"
str2 = 63
print(f"My name is {str1} ,age is {str2:.2f}")

3 元组

元组的定义:

t1 = (1, 2, 3)
t2 = 1, 2, 3
print(type(t1))
print(type(t2))

单元素元组(易错)

t1 = (1)
t2 = ((1))
t3 = (1,)
t4 = ((1),)
print(type(t1), "\n", type(t2))
print(type(t3), "\n", type(t4))
#######
<class 'int'> 
 <class 'int'>
<class 'tuple'> 
 <class 'tuple'>

元组不能进行之间进行乘法运算。

t1 = (1, 2, 3)
t2 = (4, 5, 6)

t3 = t1 + t2
print(t3)
print(t3*2)

4 列表

4.1 索引和切片

l1 = [1, 2, 3]
l2 = list("python")
print(l2)  # 输出:['p', 'y', 't', 'h', 'o', 'n']
a = [i for i in range(5)]  # 输出:[0, 1, 2, 3, 4]
b = [i for i in range(5) if i % 2]  # 输出:[1, 3]
print(a,'\n', b)

4.2 常用操作

#. list.append(obj):在列表末尾添加新的对象。
#. list.remove(obj):移除列表中某个值的第一个匹配项。
#. list.insert(index, obj):用于将指定对象插入列表的指定位置。index:插入位置
#. list.pop([index=-1]):要移除列表中对下标对应的元素(默认是最后一个)。Index:下标
#. enumerate(sequence) :将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

animals = ['cat', 'dog', 'monkey']
animals.append('fish') # 追加元素
print(animals) # 输出 ['cat', 'dog', 'monkey', ‘fish’]
animals.remove('fish') # 删除元素 fish
print(animals) # 输出 ['cat', 'dog', 'monkey']
animals.insert(1,'fish') # 在下标 1 的地方插入元素 fish
print(animals) # 输出 ['cat', ‘fish’, 'dog', 'monkey']
animals.pop(1) # 删除下标为 1 的元素
print(animals) # 输出 ['cat', 'dog', 'monkey']

animals = ['cat', 'dog', 'monkey']
for i in enumerate(animals):
	print(i) # 元素下标和元素所组成的索引

4.3 列表数据排序

list1 = [12, 45, 32, 55]
# list.sort(cmp=None, key=None, reverse=False):cmp 为可选参数, 如果指定了该参数,会使
# 用该参数的方法进行排序。key 是用来进行比较的元素。reverse 为排序规则,False 为升序。
list1.sort()  # 对列表进行排序
print(list1)  # 输出[12,32,45,55]
list1.sort(reverse=True)  # 对列表进行逆序排序
print(list1)

# list.reverse():反向列表中元素。
list1.reverse()  # 对列表进行逆置
print(list1)  # 输出[55,45,32,12]

5 字典

5.1 字典赋值形式

# 字典的三种赋值操作
# 字典的三种赋值操作
x = {'a': 'A', 'b': "B", 'c': 3}
X = dict(a='A', b="B", c=3)
x = dict([("a", "A"), ("b", "B"), ("c", 3)])
# 字典推导式
dict1 = {'a': 'A', 'b': "B", 'c': 3}
dict2 = {v: k for k, v in dict1.items()}
print(dict2)

修改、添加和删除

x = {'a': 1, 'b': 'B', 'c': 3, "x": "x"}
# 向字典中插入数据
print(x)
# 修改字典中的数据
x["a"] = "A"
print(x)
# 删除字典中的数据
x.pop("x")
print(x)

5.2 字典的错误操作

x = {'a':'A','b':"B",'c':3}
x = {'b': "B", 'c': 3, "a": 1}  # {'a': 1, 'b': 'B', 'c': 3},值被覆盖
x = {'a': 'A', 'b': "B", 'c': 3, [1, 2]: "AB"}  # 键不可变,报错

x[1] # 字典无序不能使用下标

5.3 获取字典中的数据

value = dict[key]

x = {'a': 1, 'b': 'B', 'c': 3}
# 使用键获取值
print(x["a"])
print(x["x"])  # 如果访问不存在的键,会报错

get(x)

x = {'a': 1, 'b': 'B', 'c': 3}
# 使用 get(key,["str"])方法获取数据
print(x.get("a"))
print(x.get("x"))  # 使用 get 方法获取数据时,如果键不存在会返回指定的值 str
print(x.get("x", "x 不存在"))
# 查看所有的键
print(x.keys()) 
# 查看所有的值
print(x.values())
# 查看所有的键值对
print(x.items())

6 集合

6.1 集合定义

sample_set = {'Prince', 'Techs'}
sample_set = set(['Prince', 'Techs'])
print(sample_set)

6.2 常用操作

**set.add(obj):**给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
**set.remove(obj):**移除集合中的指定元素。

sample_set = {'Prince', 'Techs'}
# set.add(obj):给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
sample_set.add('Data')  # 向集合中增加元素 Data
print(sample_set)  # 输出 {'Prince', 'Techs', 'Data'}
print(len(sample_set))  # 输出 3
# set.remove(obj):移除集合中的指定元素。
sample_set.remove('Data')  # 删除元素 Data
print(sample_set)  # {'Prince', 'Techs'}
list2 = [1, 3, 1, 5, 3]
print(list(set(list2)))  # 输出 [1,3,5],利用集合元素的唯一性进行列表去重
sample_set = frozenset(sample_set)  # 不可变集合

7 数据拷贝

a = [1, 2, 3, [5, 4]]
s = {"a": 1, "b": [2, "B"]}
a1 = a
a1[0] = 0
s1 = s
s1["a"] = "A"
print("l:", a)
print("l1:", a1)
print("s:", s)
print("s1:", s1)

观察输出,发现原数据已经被改变。

浅拷贝 加入 s1 = s.copy()

a = [1, 2, 3, [5, 4]]
s = {"a": 1, "b": [2, "B"]}
a1 = a.copy()
a1[0] = 0
s1 = s.copy()
s1["a"] = "A"
print("l:", a)
print("l1:", a1)
print("s:", s)
print("s1:", s1)

深拷贝 加入 a1 = copy.deepcopy(a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值