python基础数据类型一

数据类型

什么是数据类型?

​ 数据类型就是区分数据不同的状态

python 中的数据类型
数据类型python中的写法
数字int a = 12
字符串str a = ‘abc’
列表list a = [1,2,3]
元祖tuple a = (1,2,3)
字典dic a = {‘name’:CharmNight}
集合set a = {‘a’,’b’,’c’}

基础数据类型

int

数字主要用于计算,在python3中需要注意

2/1 = 2.0

与python2 有所不同,在python3中的除法均为真除。即所有类型的除法结果都为浮点数

关于浮点数精度问题,借鉴与百度

>>> 0.2+0.1
0.30000000000000004

所有语言在处理浮点数时都会限制精度,用有限长的精度限制无限长精度造成的误差

方法
#bit_length()    当十进制使用二进制表示时,最少使用的位数
v = 11
data = v.bit_length()
print(bin(v))
print(data)

----------------
0b1011
4

bool

布尔值就两种:True or False

bool —-> int
True-------1

False------0
int ——>bool
非零即为真
str ——>bool
非空即为真

str

索引与切片
索引

索引即下标,字符串组成元素从第一个开始,初始索引为0.依次类推

a = 'ABDEFGHIJK'
print(a[0])
print(a[1])
print(a[2])

A
B
D

如果索引值超过范围会出现

Traceback (most recent call last):
  File "D:/untitled/demo.py", line 11, in <module>
    print(a[10])
IndexError: string index out of range


(检测下标是否越位,即检测取的值的下标)
切片
概念

切片就是通过索引(索引:索引:步长)截取一段字符串,形成新的字符串 (原则时顾头不顾尾)

a = 'ABDEFGHIJK'
print(id(a))            #45093776

print(a[0:3])           ABD
print(id(a[0:3]))       44676192
print(a[0:-1])          ABDEFGHIJ
print(id(a[0:-1]))      45772952
print(a[2:4])           DE
print(id(a[2:4]))       44676192
print(a[0:5:2])         ACE 步长
print(a[5:0:-2])        ECA 反向步长

---------

这里打印id是为了验证是否形成了新的字符串
打印源串
print([0:])
print([:])
如果 :前不写是指前面所有内容
     后面不写是指后面所有内容
例如:
    [:5] 索引 0 到 4的所有值
    [5:] 索引 5 到 最后的所有值

通过上面的写法可以发现出现了一个负数 -1。在切片中可以使用负数代表倒数第几个数的索引

例如 -1 代表最后一个数的索引 -2 代码倒数第二个数的索引。依次类推

何为步长

可以简单理解成间隔。

例如: a[0:5:2]
先截取a[0:5] ABCDE
后面步长为2即每间隔2个取一个值
A C E

反向步长

问:把字符串a 倒叙输出.即输出结果为 KJIH...A
print(a[::-1])
KJIHGFEDBA
反向步长就是将内容倒叙 截取
print(a[4::-2])
结果为FDA
因为是反向步长所以倒叙读取 并且遵循顾头不顾尾即包含头不包含尾 并且间隔2个读取一个
方法
文本大小写
a = 'my name is Night'
# capitalize()          字符串句首 首字母大写
print(a.capitalize())       # My name is night
# swapcase()            大小写反转
print(a.swapcase())         # MY NAME IS nIGHT
# title()               每个单词首字母大写
print(a.title())            # My Name Is Night


# upper()               所有字符大写
print(a.upper())            # MY NAME IS NIGHT
# lower()               所有字符小写
print(a.lower())            # my name is night
upperlower 用法:例如 验证码不区分大小写
str_i = 'aseF'
str_s = input('输入验证码')
if str_i.lower() == str_s.lower():
    print('验证码输入正确')
填充 center
a = 'Hello'
# center(width, fillchar=None)
print(a.center(20,'-'))
-------Hello--------

width 宽度,如果指定宽度大于字符串宽度,则将字符串居中,并用填充符号将字符串长度填充到指定宽度
            如果指定宽度小于字符串宽度,则显示字符串本身
fillchar 填充符号 默认为 空格 ,可以任意指定
计算字符串中元素出现次数 count
a = 'Hi!Baby,I Love You'
# count(sub, start=None, end=None)
print(a.count('o'))                 # 2
print(a.count('o',-4))              # 1
print(a.count('o',-4, -2))          # 0

sub 字符串, 即所想要计算的元素(可为单个元素,也可一串字符)
start 开始位置  int
end   结束位置  int
start 和 end 可以视为切片

补全Tab

a2 = "hqw\t"
#\t前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
ret4 = a2.expandtabs()
print(ret4)
以什么开头\结尾 startswith\endswith
a = 'Baby'
print(a.startswith('B'))        # True
print(a.endswith('y'))          # True

startswith( prefix, start=None, end=None)
判断字符串以什么开头  返回bool类型
prefix 字符串, 即所想要计算的元素(可为单个元素,也可一串字符)
start 开始位置  int
end   结束位置  int
start 和 end 可以视为切片

endswith( prefix, start=None, end=None)
判断字符串以什么结尾  返回bool类型
prefix 字符串, 即所想要计算的元素(可为单个元素,也可一串字符)
start 开始位置  int
end   结束位置  int
start 和 end 可以视为切片
寻找字符串中的元素是否存在 find
a = "This's so Cool"
print(a.find('s'))      # 3
print(a.find('h'))      # -1

find( sub, start=None, end=None)
# 查找元素是否存在 从左边开始查找 如果找到 返回第一个的索引位置,如果没有找到返回 -1
sub 字符串, 即所想要计算的元素(可为单个元素,也可一串字符)
start 开始位置  int
end   结束位置  int
start 和 end 可以视为切片
rfind
a = "This's so Cool"
print(a.find('s'))      # 7
与find用法一样,只不过是从右边开始查找
寻找字符串中的元素索引位置 index

用法与find 相似

a = "This's so Cool"
print(a.index('s'))     # 3
print(a.index('h'))     # 报错


index(sub, start=None, end=None)
# 查找元素的索引位置

sub 字符串, 即所想要计算的元素(可为单个元素,也可一串字符)
start 开始位置  int
end   结束位置  int
start 和 end 可以视为切片
字符串的分割 split
str—–> list

str.split()

a = "This's so Cool"

print(a.split(' ',0))   # ["This's so Cool"]
print(a.split(' '))     # ["This's", 'so', 'Cool']
print(a.split())        # ["This's", 'so', 'Cool']

split(sep=None, maxsplit=-1)
sep 根据什么分割字符串 默认为空格
maxsplit 根据第几个分割符进行切割
返回值为list 
去除字符串左右两边的特殊字符 strip
a = '  你好 '
a.strip()           # 你好

a = 'hhh 666 hhh'
print(a.strip(' h'))    # 666

strip(chars=None)
chars 字符串格式 默认为空格 
根据chars中赋值的字符进行左右两边清洗字符串
rstrip

去除字符串右边的特殊字符

lstrip

去除字符串左边的特殊字符

替换 replace
#replace
name='GG say :i have one tesla,my name is GG'
print(name.replace('GG','CharmNight',1))

replace( old, new, count=None)
old 原字符串(被替换的字符串
new 新字符串(要替换的字符串
count 默认是 替换字符串中的所有内容 可以设置替换多少个
is系列

name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值