Python基本数字类型

本文介绍了Python中的基本数字类型,包括整数、浮点数和复数的特性及转换,详细阐述了数字的运算操作符和函数。此外,还讨论了字符串的表示、索引、切片、操作符、处理函数和方法,以及布尔类型的应用。
摘要由CSDN通过智能技术生成

Python基本数字类型

第一部分 数字类型

1.1 数字类型的组成

1.1.1 整数——不同进制的转换

  • 默认输入十进制
  • 二进制0b、八进制0o、十六进制0x
16 == 0b10000 == 0o20 == 0x10
True
  • 十进制与其他进制的转换
a = bin(16) # 转二进制
b = oct(16) # 转八进制
c = hex(16) # 转十六进制
print(a,b,c)
0b10000 0o20 0x10

注意:转换后的结果为字符串类型。

a == b == c
False
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

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

  • 部分小数不能用二进制完全表示

  • 通常情况下不会影响计算速度

0.1+0.7
0.7999999999999999
  • 四舍五入
a = 0.3
print(a)
0.3
b = round(a, 1)
print(b)
b == 0.3
0.3





True

1.1.3 复数——a+bj

  • j/J无关大小写

  • 虚部系数为1,需要显式写出

2+1j
(2+1j)

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

  • 加减乘除
(1+2-3*4)/5
-1.8
  • 取反
x = 1
-x
-1
  • 乘方运算
2**3
8
  • 整数商 和 模运算
13//5
2
13%5
3
  • 整数与浮点数运算结果为浮点数
  • 除法运算的结果是浮点数
8/4
2.0

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

  • 求绝对值 abs()
abs(-5)
5
abs(3+4j) #平方和取根号
5.0
  • 幂次方 pow(x,n)
pow(2,5) # 2的5次幂
32
pow(2,5,3) # 2的5次幂对3求余数
2
  • 四舍五入 round(x,n)
a = 3.1415926
print(round(a))
print(round(a,2))
3
3.14
  • 整数商和模运算 divmod(x,y) 等价于(x/y,x%y)
divmod(14,3)
(4, 2)
  • 序列最值 max() min()
a = (1,2,3,4,5)
print("max:",max(a))
print("min:",min(a))
max: 5
min: 1
  • 求和sum()
sum((1,2,3))
6
  • 借助科学计算库
import math # 导入库
math.exp(1) # 指数运算 e^x

2.718281828459045
math.log2(2) # 对数运算
1.0
math.sqrt(4) # 开平方
2.0
import numpy as np
a = [1,2,3,4,5]
np.mean(a) #求均值
3.0
np.median(a) #求中位数
3.0
np.std(a) #求标准差
1.4142135623730951

第二部分 字符串类型

2.1 字符串的表达

  • 用"" 或 ''括起来的任意字符
  • 若字符串中存在的单双引号
  • 双中有单/单中有双
print("I'm uzi")
print('"uzi" is good')
I'm uzi
"uzi" is good
  • 转义符——\
print("\"uzi\" is good")
"uzi" is good
print("u\
zi")
uzi

2.2 字符串的性质

2.2.1 字符串的索引

a = "My name is uzi"

变量名[位置编号]

  • 正向索引——从零开始递增
print(a[0])
M
  • 反向索引——从 -1 开始递减
print(a[-1])
i

2.2.2 字符串的切片

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

  • 间隔不设置默认为1
  • 切片范围不包含结束位置 [前闭后开)
a ="Python"
print(a[0:3])
Pyt
print(a[0:3:2])
Pt
  • 起始位置是0 可以省略
  • 结束位置省略,代表可以取到最后一个字符
  • 可以使用反向索引
a = "Python"
print(a[:3])
print(a[:])
print(a[-1:])
Pyt
Python
n

反向位置切片

  • 起始位置是 -1 可以省略
  • 结束位置省略,代表可以取到第一个字符
a = "1234567"
print(a[-1:3:-1])
765

2.3 字符串操作符

2.3.1 字符串的拼接

  • 字符串1+字符串2
a = "My name"
b = " is uzi"
a+b
'My name is uzi'

2.3.2 字符串的成倍复制

  • 字符串n n字符串
print(a*3)
uzi is the best ADCuzi is the best ADCuzi is the best ADC

2.3.2 成员运算

  • 子集in全集 任何一个连续的切片都是原字符的子集
a = "uzi is the best ADC"
"uzi" in a
True
  • 遍历字符串字符 for 字符 in 字符串
for a in "Python":
    print(a)
P
y
t
h
o
n

2.4 字符串处理函数

2.4.1 字符串的长度

  • 所含字符的个数
a = "Python"
len(a)
6

2.4.2 字符编码

将中文字符、英文字符、数字、特殊字符等都转化为计算机可识别的二进制数

  • 每个单一字符对应一个唯一的互不重复的二进制编码
  • Python 使用的是 UNICODE 编码

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

print(ord("1"))
49

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

print(chr(49))
1

2.5 字符串的处理方法

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

  • 返回一个列表
  • 原字符串不变
RNG = "ming uzi mlxg"
RNG_list = RNG.split(" ")
print(RNG_list)
print(RNG)
['ming', 'uzi', 'mlxg']
ming uzi mlxg

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

  • 可迭代数据类型:字符串、列表
r = "rng"
r_list = ",".join(r)
print(r_list)
r,n,g
  • 序列类型的元素必须是字符类型
r = ["r","n","g"]
"-".join(r)
'r-n-g'

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

  • strip 从两侧搜索遇到指定字符删除
  • lstrip 左删除
  • rstrip 右删除
r = "  rng  "
print(r.strip(" "))
rng

2.5.4 字符串的替换——字符串.replace

r = "rng is good"
r.replace("rng","r")
'r is good'

2.5.5 字符串统计——字符串.count

r = "rng is good"
print(r.count("g"))
2

2.5.6 字符串字母大小写

  • .upper()
  • .lower()
r = "rng"
r.upper()
'RNG'
R = "RNG"
R.lower()
'rng'

第三部分 布尔类型 TRUE or False

3.1 逻辑运算的结果

a = 10
print(a ==7)
False
  • any all
print(any([1,0]))
print(all([1,0]))
True
False

3.2 指示条件

n = 100
while True:
    m = eval(input("请输入一个数: "))
    if m == n:
        print("你猜对啦!")
        break
    elif m > n:
        print("再小点儿?")
    else:
        print("再大点儿?")
请输入一个数: 1
再大点儿?
请输入一个数: 101
再小点儿?
请输入一个数: 100
你猜对啦!

3.3 作为掩码

import numpy as np
x = np.array([[1,3,2,5,7]])
print(x>3)
x[x>3]
[[False False False  True  True]]





array([5, 7])

第四部分 类型判别和类型转换

4.1 类型判别

  • type(变量)
age = 16
name = "uzi"
print(type(age))
print(type(name))
<class 'int'>
<class 'str'>
  • isinstance(变量,预判类型) 承认继承
  • 变量类型是预判类型的子类型,则为真,否则为假
 print(isinstance(age,int))
True
print(isinstance(age,object))
True
  • .isdigit() 是否只有数字
age = "16"
age.isdigit()
True
  • .isalpha() 是否只有字母组成
name = "uzi"
name.isalpha()
True
  • .isalnum() 是否只有数字和字母组成
r = "uziis16"
r.isalnum()
True

4.2 类型转换

  • 数字类型转字符串 str(数字类型)
age =16
print("uzi is "+str(age))
uzi is 16
  • 仅有数字组成的字符串可以转数字 int() float() eval()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值