Python基础+数据科学入门(二)基本数据类型

声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出。

基础数据类型

在这里插入图片描述

1.1 数字类型的组成

1.1.1 整数——不同进制的转换
  • 默认输入十进制
  • 二进制0b、八进制0o、十六进制0x
16 == 0b10000 ==0o20 == 0x10

#十进制与其他进制的转换
a = bin(16)   #转二进制
b = oct(16)   #转八进制
c = hex(16)   #转十六进制
print(a, b, c)  #运行结果 0b10000 0o20 0x10

#注意:上述转换后结果为字符类型
a == b   #运行结果为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 浮点数——不确定性
a = 0.1 + 0.2   #输出结果为0.30000000000000004  不是0.3 通常情况下不影响计算精度
b = round(a, 1)  #四舍五入,保留一位小数
print(b)         #输出结果为0.3
1.1.3 复数——a+bj(a+bJ)
3+5j = 3+5J
2+1j         #当时虚部系数为1时,需要显式写出

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

# 加减乘除 + - * /  括号()
# 取反 - (即前面加负号)
# 乘方的运算 ** (例 2**3 即2的三次方)
# 整除 // (即取商)
# 模运算 % (即取余数)
  • 整数与浮点数运算的结果是浮点数
  • 除法运算的结果是浮点数

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

#求绝对值 abs()
abs(-5)
abs(3+4j)  #对于复数来说,是求模运算结果是 5.0

#幂次方 pow(x,n)   即x的n次方 等价于x**n
pow(2, 5, 3)    #即2的5次幂,再求3的余数

#四舍五入 round(x,n)   x是四舍五入的数,n是保留位数
round(5.21)   #默认保留整数

#整数商和模运算 divmod(x,y)   等价于返回二元元组(x//y,x%y)
divmod(13, 5)  #输出结果 (2, 3)

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

#求和函数 sum(x)
sum([1, 2, 3])

#借助科学计算库 math\scipy\numpy
import math  #导入库
math.exp(1)   #指数运算 e^x
math.log2(2)  #对数运算
math.sqrt(4)  #开平方运算

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

第二部分 字符串类型

2.1 字符串的表达

# 用""或''引起来的任意字符

#双中有单
print("I'am 18 years old")  #输出结果 I'am 18 years old

#单中有双
print('"python" is good')  #输出结果 "python" is good

#双中有双,单中有单——转义符
print("\"Python\" is very good")  #输出结果"Python" is very good  \ 表明我是字符

a = "py\
thon"
print(a)   #输出结果python  转义符还可以用来换行继续输入

2.2 字符串的性质

2.2.1字符串的索引
a = "My name is JackMing"
# 正向索引——从零开始递增  位置编号不能超过字符长度
print(a[0])   #输出结果 M
print(a[2])   #输出结果 空格 (空格也是一个字符)

#反向索引——从-1开始递减
print(a[-1])   #输出结果 g
print(a[-4])   #输出结果 M
2.2.1字符串的切片

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

#切片间隔如不设置默认为1,可省略
#切片范围不包含结束位置
a = "Python"
print(a[0:3:1])  #输出结果Pyt
print(a[0:3:2])  #输出结果Pt
print(a[0:3])    #输出结果Pyt

#起始位置是0 可以省略
#结束位置省略 代表可以取到最后一个字符
#可以反向索引
print(a[0:6])
print(a[:6])
print(a[:])
print(a[-6:])  #四个输出都是 Python

#反向切片
#反向切片间隔不可省略
#起始位置是-1也可以省略
#结束位置省略 代表可以取到第一个字符
print(a[-1:-4:-1])   #输出结果noh
print(a[:-4:-1])   #输出结果noh
print(a[::-1])   #输出结果nohtyP

2.3 字符串操作符

# 字符串的拼接
a = "I love "
b = "my girlfriend"
c = a + b   
print(c)    #结果I love my girlfriend

#字符串的成倍复制
print(c*3)    #结果I love my girlfriend love my girlfriendI love my girlfriend
print(3*c)    #结果I love my girlfriend love my girlfriendI love my girlfriend

#成员运算
#字迹in全集  任何一个连续的切片都是原字符串的子集
"love" in c   #输出结果True

#遍历字符串字符  for 字符 in 字符串
for s in "Python":
    print(s)
'''输出结果:
P
y
t
h
o
n
'''

2.4 字符串处理函数

2.4.1 字符串长度
#字符串长度 len()
a = "Python"
len(a)   #输出结果 6
2.4.2 字符串编码

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

  • 每个单一字符对应一个唯一的互不重复的二进制编码
  • python中使用的是unicode编码
#将字符转化位unicode码——ord(字符)
print(ord("1"))    #输出结果 108
print(ord("φ"))   #输出结果 966
print(ord("中"))   #输出结果 20013

#将unicode码转换为字符—— chr(字符)
print(chr(123))    #输出结果 {
print(chr(1234))   #输出结果 Ӓ

2.5 字符串的处理方法

2.5.1 字符串的分割——字符串.split(分隔字符)
  • 返回一个列表
  • 原字符串不变
languages = "Python C C++ Java PHP R"
languages_list = languages.split(" ")   #用空格来分割字符串
print(languages_list)    #输出结果 ['Python', 'C', 'C++', 'Java', 'PHP', 'R']
print(languages)         #输出结果 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(" "))    #输出结果 I have many blanks 去掉了两边的空格
print(s.lstrip(" "))   #输出结果 I have many blanks       去掉了左边的空格
print(s.rstrip(" "))   #输出结果       I have many blanks 去掉了右边的空格
2.5.4 字符串的替换——字符串.replace(“被替换”,“替换成”)
s = "Python is coming"
sl = s.replace("Python","Py")
print(sl)               #输出结果 Py is coming
2.5.5 字符串的统计——字符串.count(“待统计字符串”)
s = "Python is an excellent language"
print("an:",s.count("an"))       #输出结果 an: 2
print("e:",s.count("e"))         #输出结果 e: 4
2.5.5 字符串大小写
#字符串.upper() 字母全部大写
s = "Python"
s.upper()   #输出结果 'PYTHON'

#字符串.lower()字母全部小写
s.lower()   #输出结果 'python'

#字符串.title()首字母大写
s.title()   #输出结果 'Python'

第三部分 布尔类型 TURE or FALSE

3.1 逻辑运算的结果

a = 10
print(a > 8)    #输出结果 True
print(a == 8)   #输出结果 False
print(a < 5)    #输出结果 False

#any()有一个是非零就是Ture   all()都是是非零就是Ture 
print(any([False,1,0,None]))   #输出结果 True  其中0 False None都是无
print(all([False,1,0,None]))   #输出结果 False

3.2 逻辑运算的结果

n = 2800    #猜数字游戏
while True:
    m = eval(input("Please input a number:"))
    if m == n:
        print("You are right!")
        break
    elif m > n:
        print("too big")
    else:
        print("too small")

3.2 作为掩码

import numpy as np
x = np.array([1, 3, 2, 5, 7])  #定义 numpy 数组
print(x > 3)   #输出结果 [False False False  True  True]
x[x > 3]       #输出结果array([5, 7])   通过掩码把数据挑选出来

第四部分 类型判别和转换

4.1 类型判别

# type(变量)
age = 18
name = "Jack"
print(type(age))      #输出结果 <class 'int'>
print(type(name))     #输出结果 <class 'str'>

# isinstance(变量,预判类型) 承认继承
# 变量类型是预判类型的子类型,则为真,否则为假
print(isinstance(age, int))        #输出结果True     承认继承
print(isinstance(age, object))     #输出结果True
print(isinstance(name, object))    #输出结果True      object 是老祖宗

#字符串检查方法
#字符串.isdigit()字符是否只有数字组成
name.isdigit()   #输出结果 False

#字符串.isalpha()字符是否只有字母组成
name.isalpha()   #输出结果 True

#字符串.isalnum()字符是否只有数字和字母组成
word = "Python3"
word.isalnum()   #输出结果 True   可以用来判断用户名是否合法

4.2 类型转换

# 数字类型转换字符串 str(数字类型)
age = 18
print("My age is " + str(age))   #输出结果 My age is 18

# 仅有数字组成的字符串转数字 int()  float()   eval()
s1 = "18"
s2 = "10.1"
int(s1)      #输出结果 18   仅整形
float(s1)   #输出结果 18.0   数字皆可,出来为浮点型
float(s2)   #输出结果 10.1   数字皆可,出来为浮点型
eval(s1)    #输出结果 18
eval(s2)    #输出结果 10.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值