1,int型:
s = 1
print(s,type(s))
1 <class 'int'>
int是整形,例如1,2,3等整数,主要进行运算。
2,str(字符串)型:
str1 = 'abcdef'
print(str1,type(str1))
abcdef <class 'str'>
str是非常常用的一种数据类型,有许多种操作方法:
(1)索引与切片
索引
str可以通过索引找到某个元素,例如:
str1 = 'abcdef'
print(str1[1])
b
str1 = 'abcdef'
print(str1[-1])
f
需注意:
正向索引是从0开始,即第一个元素a的索引为0。
逆向索引是从-1开始,即str1[-1] = 'f'
切片
切片是对字符串操作非常常用的一种方法,可以截取字符串任意一部分。
切片方法及参数为:
str[起始索引:截止索引:步长]
注意:
起始索引到截止索引是一个左闭右开的范围,即包括起始索引的元素,但不包括截止索引的元素
步长可以设定,默认为1;
str[起始索引:] ——> 由起始索引到字符串最后一个元素
str[:截止索引] ——> 由字符串第一个元素到截止索引前一个元素
str[:] ——> 整个字符串
str1 = 'abcdef'
str2 = str1[1:3]
print(str2)
bc
(2)find(),index()
这两个方法是通过元素来找到对应的索引:
str1 = 'abcdef'
print(str1.find('c'))
print(str1.index('c'))
2
2
不同的是,如果要找的元素不在这个字符串里,find会返回 -1 ,而index则会报错
str1 = 'abcdef'
print(str1.find('g'))
print(str1.index('g'))
-1
ValueError: substring not found
(3)upper(),lower()
upper,字符串内英文字母全部大写。
lower,字符串内英文字母全部小写。
str1 = 'abcdef'
print(str1.upper())
print(str1.lower())
ABCDEF
abcdef
字符串内还包含其他内容如汉字或者数字不产生影响:
str1 = '123abcdef小苏打'
print(str1.upper())
print(str1.lower())
123ABCDEF小苏打
123abcdef小苏打
(4)startswith(),endswith()
startswith,判断字符串是否以...开头。
endswith,判断字符串是否以...结尾。
这两种方法可切片判断,返回类型为布尔值
str1 = 'abcdef'
print(str1.startswith('a'))
print(str1.endswith('g'))
True
False
str1 = 'abcdef'
print(str1[1:].startswith('a'))
print(str1[2:5].endswith('e'))
False
True
(5)captilize()
captilize的作用是首字母大写,其他字母小写
str1 = 'abcdef'
print(str1.capitalize())
Abcdef
如果字符串开头第一个元素不是字母,则不变
str1 = '123abcdef小苏打'
print(str1.capitalize())
123abcdef小苏打
(6)swapcase()
swapcase的作用是将字符串内的字母元素大小写反转,即'A'—>'a','b'—>'B'
str1 = 'abCdEf'
print(str1.swapcase())
ABcDeF
(7)replace()
replace是代替的意思,这个方法的用法及参数为:
str.replace(old,new,n)
old : 旧的内容,被替换的内容
new : 新的内容,用来替换旧内容的新内容
n :替换次数,可以不写(默认值为-1,全部替换)
str2 = 'abcabcabc'
print(str2.replace('a','A',2))
AbcAbcabc
(8)center()
center参数如下:
str.center(width,填充物)
具体含义是:返回一个以 原字符串 居中,以 填充物 填充至长度为 width 的一个字符串
如果 width 小于 原字符串 长度,则不会填充,仍是原字符串;填充物 默认为 空格,即 ' '
str2 = 'Hello Python'
print(str2.center(40,'*'))
**************Hello Python**************
(9)strip(),lstrip(),rstrip()
strip()的作用是去除字符串首尾的 空格,换行符, Tab等
lstrip(),即 left strip(),作用是去除字符串左边(首)的空格,换行符,Tab等
rstrip(),即 right strip(),作用是去除字符串右边(尾)的空格,换行符,Tab等
str2 = ' Hello Python '
print(str2)
print(str2.strip())
print(str2.lstrip())
print(str2.rstrip())
Hello Python
Hello Python
Hello Python
Hello Python
注意:
strip()中可以传入参数以自定义去除:
str.strip(参数),去除开头和结尾的 ‘参数’,直到不是‘参数’为止
str2 = '***Hello Python***'
print(str2.strip('*'))
Hello Python
另外,如果参数为多个字符,会将其分割成一个一个字符进行去除
str2 = 'Hello Python'
print(str2.strip('Heon'))
llo Pyth
所以多个字符没有顺序之分,也就是说,去除'abc'与去除'cba','acb' 的结果是一样的
(10)split()
split()的作用是分割字符串,默认以空格分割,分割完返回的数据类型为列表list
split()参数有两个,split(分割符,次数n),即以 分割符 对原字符串分割 n 次
str2 = 'Hel lo Pyt hon'
print(str2.split(' ',2))
['Hel', 'lo', 'Pyt hon']
此外,还有一个从右侧开始的分割函数 rsplit(),用法相同,但是从右往左计数分割
str2 = 'Hel lo Pyt hon'
print(str2.rsplit(' ',2))
['Hel lo', 'Pyt', 'hon']
如果字符串第一个元素(最后一个元素)就是分割符,则会首先(最后)分割出一个空字符串 ‘’ 作为列表的第一(最后)一个元素
str2 = '*Hel*lo*Py*thon*'
print(str2.split('*'))
['', 'Hel', 'lo', 'Py', 'thon', '']
(11)format()
这里只说字符串格式化的三种用法:
①按顺序填充
s = 'my name is {}, age {}'.format('Mike',18)
print(s)
my name is Mike, age 18
②按索引填充
s = 'my name is {1}, age {0}'.format(20,'Cc')
print(s)
my name is Cc, age 20
③按关键字填充
s = 'my name is {name}, age {age}'.format(age =20,name = 'Cc')
print(s)
my name is Cc, age 20
有时间再补充
(12)isdigit(),isalpha(),isalnum()
isdigit() 判断字符串是否全部都是数字如'123'
isalpha() 判断字符串是否全部由字母组成如'abc'
isalnum() 判断字符串是否全部由 字母或数字 组成如'123abc'
s1 = '123'
s2 = 'abc'
s3 = '123abc'
print(s1.isdigit(),s1.isalpha(),s1.isalnum())
print(s2.isdigit(),s2.isalpha(),s2.isalnum())
print(s3.isdigit(),s3.isalpha(),s3.isalnum())
True False True
False True True
False False True
3,bool型
bool即布尔型,只有True和False两个值,用于逻辑判断对与错,常与if,while连用:
while 1 < 2 :
if 2 < 3 :
print('a')
if 4 < 3 :
print('b')
break
a
int型转bool型:
如果要判断的int型不等于0,则为True;等于0,则为False
if 0.01 :
print('1正确')
if 0 :
print('2正确')
if -0.1 :
print('3正确')
1正确
3正确
str型转bool型:
如果字符串不为空,则为True;为空则为False
if '' :
print('为空可以输出')
if 'a' :
print('不为空可以输出')
不为空可以输出