DAY3 python基础之数据类型总览
一.数据类型总览
int : 数值,用于数学计算,计数;例如:1,2,3,4,...
str :字符串,用于少量数据的存储,方便操作。
bool : 布尔型,只有两个状态True,False。机器反馈给用户“对”或“错”。
list : 列表,存储大量数据,各种数据。例如:{1,'alex',True,[],{}...}
tuple :(),元组,又称为只读列表,只能阅读不能修改。
dict :{},键值对的形式存储数据,存储大量的关联型数据
set :{},集合,用于关系测试。
二. 数值
详细的操作,看之前的博客。
关键知识点:
bit_length(): 十进制数转为二进制所占的最小位数
1 0000 0001 有效位数为1
2 0000 0010 有效位数为2
例子:
i = 2
print(i.bit_length())
>>> 2
三. bool布尔型
数值转换:
int ----> bool : 只有0是False,非0都是True
bool---->int : True对应的是1,False对应的是0
bool---->str : bool(str),只有空字符串对应的bool值为False。
四. 字符串
对字符串的下面两个部分操作:形成的都是一个新的字符串,与原字符串没有关系。
(一)索引,切片,步长
在Python中,从左向右,第一个元素的索引值为0;从右往左,索引值从-1,-2...所以最后一个元素的索引值为-1.
# 按索引取值 s1 = 'python1期骑士计划'
print(s1[0],type(s1[0]))
print(s1[2])
print(s1[4])
# 按切片取值,取一段范围的元素。
[start:end] : 顾头不顾尾,取不到结尾值。
[:end] : 表示从头开始取
[start:] : 表示取到结尾
s1 = 'python1期骑士计划'
print(s1[-4:])
print(s1[1:])
# 按切片+步长来取值,[start:end:step]
s1 = 'python1期骑士计划'
print(s1[0::2])
# 如果想倒叙取值,可以用反向步长“-”
print(s1[1::-1])
(二)字符串常用的方法(*代表重要程序)
'''capitalize():首字母大写 *** '''
name = 'oldboy' print(name.capitalize())
>>> Oldboy
'''center(长度,填充符号): 字符串居中,前后填充指定字符 **'''
name = 'oldboy' print(name.center(10,'*'))
>>>**oldboy**
'''upper():英文全部转为大写
lower():英文全部转为小写
***** '''
name = 'oldboy' print(name.upper()) >>> OLDBOY name2 = 'OLDBOY' print(name.lower()) >>> oldboy
'''title():字符串中的首字母大写。 **
# title 非字母隔开的每个部分的首字母大写
'''
name = 'i love python' print(name.title()) >>>I Love Python
'''
***
startswith(): 判断字符串是否以指定字符开头,返回True/False。
endswith(): 判断字符串是否以指定字符结尾,返回True/False。
'''
name = 'oldboy' print(name.startswith('ol'))
>>> True print(name.endswith('oy'))
>>> True
# 还可以判断字符串其中的切片是否以指定字符为开头
startswith(prefix,start=None,end=None) print(name.startswith('ld',1,5))
'''通过元素找索引
index():找到字符串中第一个指定元素的最左索引,如果不存在,报错。
find():找到字符串中第一个指定元素的最左索引,如果不存在,返回-1。
'''
name = 'oldboy' print(name.index('o')) print(name.find('o')) print(name.index('ld'))
'''
*****
strip(): 去掉字符串中指定部分,默认去除空格。
lsrtip():去除左边的空白字符。
rstrip(): 去除右边的空白字符。
'''
name = ' python is cool ' print(name.strip()) #去除空格 print(name.strip('is cool')) #去掉指定部分 name1 = 'weralexqwe' print(name1.strip('erw')
例子:username = input('>>>:').strip()
'''
*****
split():根据指定的字符(默认:空格)分割字符串,返回列表
# 将字符串分割为列表:str--->list
# 以空格分割符有一个bug,谨记
'''
s1 = 'alex bob taibai' l1 = s1.split() print(l1) >>> ['alex','bob','taibai'] #设置分割次数 # s1 = 'alexlwe' # print(s1.split('l',1))
>>>['a','lexlwe']
# 以空格为分割符有一个bug
s1 =' python java c++'
print(s1.split())
>>>['python','java','c++'] #注意这里会把python开头的空白字符省略掉,bug!!
空格正确分割:
print(s1.split(" ")) #需要指定分割符为“ ”
>>> ['','python','java','c++']
'''
*****
join():通过指定的链接字符串,将可迭代对象的元素连接起来
### 把列表转化为字符串:list---> str
'''
s1 = 'alex' s2 = '*'.join(s1) s3 = '_'.join(s1) print(s2) >>>a*l*e*x* print(s3) >>>a_l_e_x
# 把列表转为为字符串 l1 = ['python','is','cool'] li_to_str = ''.join(l1) print(li_to_str)
'''
*****
replace(old,new,count=None):用新的字符串替换旧的字符串
'''
s1 = 'java is cool,java is fast' s2 = s1.replace('java','python') #全部替换 s3 = s1.replace('java','python',1) #限制次数 print(s2) >>> python is cool,python is fast print(s3) >>> python is cool,java is fast
'''
format():格式化输出
'''
第一种方式:按顺序输入 s1 = '我叫{},今年{},性别{}'.format('he','23','男') print(s1) 第二种方式:索引,可以重复使用 ***** s1 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('he','23','男') print(s1) 第三种方式:传参,可以打乱传参位置 s1 = '我叫{name},今年{age},性别{sex}'.format(name='he',age='23',sex='男') print(s1)
'''
is系列:返回True/False
isdigit():判断是否都为数字
isalpha():判断是否都为字母
isalnum():判断是否只有数字或字母组成
...
'''
language = 'python' print(language.isdigit()) >>>False print(language.isalpha()) >>>True
'''
公共方法:
count():计算指定字符出现的次数
len(): 计算长度---> 元素的个数
'''