Python之基本数据类型总结

本文总结了Python的基本数据类型,包括数字(整数、浮点数、复数)、字符串及其操作(拼接、切片、索引、处理函数与方法)和布尔类型。数字类型介绍了不同进制转换、浮点数的不确定性,字符串部分详述了其表达、索引、切片、拼接、复制、成员运算以及各种处理方法,布尔类型则涵盖了逻辑运算和条件指示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

一、数字类型

1.1数字类型的组成

1.1.1整数 不同进制转换

·默认输入十进制,二进制0b、八进制0o、十六进制 0x

·十进制转换其他进制

a = bin(16) # 转二进制
b = oct(16) # 转八进制
c= hex(16) # 转十六进制
print(a, b, c)
0b10000 0o20 0x10

·上述结果为字符串类型

type(a)
str

·其他进制转十进制

d = int(a, 2)  # 二进制转十进制
e = int(b, 8)  # 八进制转十进制
f = int(c, 16) # 十六进制转十进制
print(d, e, f)
16 16 16

1.1.2 浮点数——不确定性

·不确定小数问题

(0.1 + 0.2) == 0.3
False
0.1 + 0.2
0.30000000000000004

计算机采用二进制小数来表示浮点数的小数部分

·部分小数不能用二进制小数完全表示
·通常情况下不会影响计算精度
·四舍五入获得精确解

a = 3*0.1
print(a)
0.30000000000000004

b = round(a, 1)
print(b)
0.3

1.1.2 复数——a+bj

·大写J或小写j均可
·虚部系数为1不可省略
2+1j

1.2数字运算操作符(a 操作符 b)

·加减乘除 + - * /
·取反 -
·乘方运算 **
·整数商// 和 模运算 %

13//5
2

13/5
2.6

13%5
3

几点说明
整数与浮点数运算结果是浮点数
除法运算的结果是浮点数

8/4
2.0  # 浮点数

1.3 数字运算操作函数 function(x, …)

·幂次方 pow(x, n)

pow(2, 5) #等价x**n
32

pow(2, 5, 3) # 2**5 % 3
2

·四舍五入 round(x,n)

a = 1.618
print(round(a)) # 默认四舍五入为整数
2

print(round(a, 2)) # 四舍五入后保留两位小数
1.62

print(round(a, 5)) # 位数不足,无需补齐
1.618

·整数商和模运算divmod(x, y)

divmod(13,5) # 等价于(x//y, x%y)
(2, 3)

·序列最大/最小值 max() min()

max(3, 4, 32, 23, 2, 12)
32
a = [3, 4, 5, 6, 7, 8]
print("max:",max(a))
print("min:",min(a))
max: 8
min: 3

·求和sum(x)

sum([1, 2, 3, 4, 5])
15

sum((1, 2, 3, 4, 5))
15

·借助科学计算库 math\scipy\numpy

import math
math.exp(1)  # 指数运算
math.log2(2) # 对数运算
math.sqrt(4) # 开平方

2.0
import numpy as np
a = [1, 2, 3, 4, 5]
np.mean(a) # 求均值
np.median(a) # 求中位数
np.std(a) # 求标准差

1.4142135623730951

二、字符串类型

2.1 字符串的表达

用""或’'括起来的任意字符

print("Python")
print('Python')

Python
Python

字符串中有双引号或单引号的情况
双中有单

print("I'm 18 years old")

I'm 18 years old

单中有双

print('"Python" is good')

"Python" is good

双中有双,单中有单——转义符  \

# print(""Python" is good")
print("\"Python\" is good")  # \ 我是个字符呀

"Python" is good

转义符可以用来换行继续输入

s = "py\
thon"                    
print(s)

python

2.2 字符串的性质

2.2.1 字符串的索引

s = "My name is Peppa Pig"

变量名[位置编号]

正向索引——从零开始递增
位置编号不能超过字符串的长度

print(s[0])   
print(s[2])
print(s[5])

M
 
m
s = "My name is Peppa Pig"

反向索引——从-1开始递减

print(s[-1])
print(s[-3])
print(s[-5])

g
P
a

索引只能获得一个字符,如何获得多个字符?

2.2.2 字符串的切片

变量名[开始位置:结束位置:切片间隔]

切片间隔如不设置默认为1,可省略
切片范围不包含结束位置

s = "Python"
print(s[0:3:1])

Pyt


print(s[0:3])

Pyt


print(s[0:3:2])

Pt

起始位置是0 可以省略
结束位置省略,代表可以取到最后一个字符
可以使用反向索引

s = "Python"
print(s[0:6])
Python

print(s[:6])
Python

print(s[:])
Python

print(s[-6:])
Python

反向切片

起始位置是-1也可以省略
结束位置省略,代表可以取到第一个字符

s = "123456789"
print(s[-1:-10:-1])
987654321

print(s[:-10:-1])
987654321

print(s[::-1])
987654321

2.3 字符串操作符

2.3.1 字符串的拼接

字符串1+字符串2

a = "I love "
b = "my wife "
a+b        

'I love my wife '

2.3.2 字符串的成倍复制

字符串 * n   n * 字符串

c = a+b
print(c*3)
print(3*c)

I love my wife I love my wife I love my wife 
I love my wife I love my wife I love my wife 

2.2.3 成员运算

子集in全集   任何一个连续的切片都是原字符串的子集

folk_singers = "Peter, Paul and Mary"    
"Peter" in folk_singers
True

"PPM" in folk_singers
False

遍历字符串字符   for 字符 in 字符串

for s in "Python":
    print(s)
P
y
t
h
o
n

2.4 字符串处理函数

2.4.1 字符串的长度

所含字符的个数

s = "python"
len(s)
6

2.4.2 字符编码

将中文字库,英文字母、数字、特殊字符等转化成计算机可识别的二进制数

每个单一字符对应一个唯一的互不重复的二进制编码
Python 中使用的是Unicode编码
将字符转化为Unicode码——ord(字符)

print(ord("1"))
print(ord("a"))
print(ord("*"))
print(ord("中"))
print(ord("国"))

49
97
42
20013
22269

将Unicode码转化为字符——chr(Unicode码)

print(chr(1010))
print(chr(10000))
print(chr(12345))
print(chr(23456))

ϲ
✐
〹
宠

2.5 字符串的处理方法

2.5.1 字符串的分割——字符串.split(分割字符)

返回一个列表
原字符串不变
上述特性适合以下所有字符串处理方法

languages = "Python C C++ Java PHP R"
languages_list = languages.split(" ")
print(languages_list)
print(languages)

['Python', 'C', 'C++', 'Java', 'PHP', 'R']
Python C C++ Java PHP R

2.5.2 字符串的聚合——“聚合字符”.join(可迭代数据类型)

可迭代类型 如:字符串、列表

s = "12345"
s_join = ",".join(s)
s_join
'1,2,3,4,5'

序列类型的元素必须是字符类型

# s = [1, 2, 3, 4, 5]
s = ["1", "2", "3", "4", "5"]
"*".join(s) 
'1*2*3*4*5'

2.5.3 删除两端特定字符——字符串.strip(删除字符)

strip从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止
类似的还有左删除lstrip和右删除rstrip

s = "      I have many blanks     "
print(s.strip(" "))                        # 还有吗?hahaha
print(s.lstrip(" "))
print(s.rstrip(" "))
print(s)

I have many blanks
I have many blanks     
      I have many blanks
      I have many blanks   

2.5.4 字符串的替换——字符串.replace(“被替换”,“替换成”)

s = "Python is coming"
s1 = s.replace("Python","Py")
print(s1)

Py is coming

2.5.5 字符串统计——字符串.count(“待统计字符串”)

s = "Python is an excellent language"
print("an:", s.count("an"))
print("e:", s.count("e"))

an: 2
e: 4

2.5.6 字符串字母大小写

字符串.upper() 字母全部大写

s = "Python"
s.upper()

'PYTHON'

字符串.lower() 字母全部小写

print(s.lower())
print(s)

python
Python

字符串.title()首字母大写

s.title()
'Python'

三、布尔类型

3.1 逻辑运算的结果

a = 10
print(a > 8)
print(a == 12)
print(a < 5)

True
False
False

any() all()

print(any([False,1,0,None]))   # 0 False None 都是无
print(all([False,1,0,None]))

True
False

3.2 指示条件

n = 2800
while True:
    m = eval(input("请输入一个正整数:"))
    if m == n:
        print("你猜对啦")
        break
    elif m > n:
        print("太大了")
    else:
        print("太小了")  
        
请输入一个正整数:28
太小了
请输入一个正整数:2800
你猜对啦

3.3 作为掩码

import numpy as np
x = np.array([[1, 3, 2, 5, 7]])   # 定义 numpy数组
print(x > 3)
x[x > 3]


[[False False False  True  True]]
array([5, 7])

四、类型转换

4.1 类型判别

type(变量)

age = 20
name = "Ada"
print(type(age))
print(type(name))

<class 'int'>
<class 'str'>

isinstance(变量,预判类型) 承认继承
变量类型是预判类型的子类型,则为真,否则为假

print(isinstance(age, int))        # 承认继承

True


print(isinstance(age, object))
print(isinstance(name, object))    # object 是老祖宗

True
True

字符串检查方法
字符串.isdigit()字符是否只有数字组成

age = "20"
name = "Ada"

age.isdigit()
True

name.isdigit()
False

字符串.isalpha()字符是否只有字母组成

name.isalpha()
True

age.isalpha()
False

字符串.isalnum()字符是否只有数字和字母组成

"Ada20".isalnum()    # 比如可用于判断用户名是否合法
True

4.2 类型转换

数字类型转字符串  str(数字类型)

age = 20
print("My age is "+str(age))
My age is 20

仅有数字组成的字符串转数字  int()  float()  eval()

s1 = "20"
s2 = "10.1"

int(s1)     # 仅整型
# int(s2)
20

float(s1)
20.0

float(s2)
10.1

eval(s1)
20

eval(s2)
10.1

参考:
1、https://ai.deepshare.net/detail/v_5d8c2dc576656_F7IuePCi/3?from=p_5ce3b238f0745_n3iKLOAL&type=6
2、https://www.runoob.com/python3/python3-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值