数据类型之间转化、字符串学习

数据类型之间的转化

int<-->str

int转str:str(digit)
str转int:int(string) 注意此处的string只能是包含数字的字符串或开头有负号

int<-->bool

bool(非零)-->True
bool(零)  -->False
int(True) -->1
int(False)-->0

bool<-->str

bool -->str没有实际意义
str  -->bool:
bool(非空字符串) --> True
bool(空字符串)   --> False
注意:空字符串为'',而不是' '。

python的字符串(string)的学习

第一部分:索引切片步长

按照索引取值,取出来的都是一个字符,形成的字符串。

>>> str1 = 'python'
>>> str1[2]
't'
>>> str1[-1]
'n'

按切片取值,顾头不顾尾

>>> str2 = 'python'
>>> str2[0 : -1]
'pytho'
>>> str2[0:]
'python'

按照切片+步长

>>> str3 = 'python is a language'
>>> str3[::2]
'pto salnug'
>>> str3[::-1]
'egaugnal a si nohtyp'
当步长为负时,是倒着取值。

另外可以借助数组来实现把字符串倒序

strA = input("请输入需要翻转的字符串:")
order = [] 
for i in strA:
  order.append(i)
order.reverse()   #将列表反转
print ''.join(order)    #将list转换成字符串

第二部分:字符串的常用方法。

capitalize() 首字母大写 ★★☆☆☆

>>> str4 = 'hellokitty'
>>> str4.capitalize()
'Hellokitty'

center() 字符串居中前后填充自定义的字符 ★★☆☆☆

>>> str4 = 'hellokitty'
>>> str4.center(20, '*')
'*****hellokitty*****'

upper()英文全大写;lower()英文全小写。 在验证码验证上会使用到。 ★★★★★

>>> str4 = 'hello kitty'
>>> str4.upper()
'HELLO KITTY'

>>> str5 = 'Hello Kitty'
>>> str5.lower()
'hello kitty'

swapcase() 大小写翻转 ★★☆☆☆

>>> str5 = 'Hello Kitty'
>>> str5.swapcase()
'hELLO kITTY'

title() 非字母隔开的每个部分的首字母大写 ★★☆☆☆

>>> str6 = 'hello kitty,what can I do4you?'
>>> str6.title()
'Hello Kitty,What Can I Do4You?'

startswith()以什么弄着 endswith()以什么结尾 ★★★★★

>>> str6 = 'hello kitty,what can I do4you?'
>>> str6.startswith('h')
True
>>> str6.startswith('hello')
True

find 通过元素找索引,找到第一个就返回,没有此元素则返回-1 ★★★★★

>>> str6 = 'hello kitty,what can I do4you?'
>>> str6.find('h')
0
>>> str6.find('what')
12
>>> str6.find('.')
-1

index 通过元素找索引,找到第一个就返回,没有此元素则报错 ★★★★★

>>> str6 = 'hello kitty,what can I do4you?'
>>> str6.index('h')
0
>>> str6.index('what')
12
>>> str6.index('.')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

strip 默认去除字符串前后的空格,换行符,制表符 ★★★★★

>>> str7 = "	I'm a superman. "
>>> str7.strip()
"I'm a superman."
>>> str7 = '==hey guys, you shutup!=='
>>> str7.strip('==')
'hey guys, you shutup!'
lstrip() rstrip()
lstrip()是去除左边的。
rstrip()是去除右边的。

split() 将字符串分割成列表(str---> list),默认以空格分割,可指定字符。 ★★★★★

>>> str8 = 'spring summer autumn winter'
>>> str8.split()
['spring', 'summer', 'autumn', 'winter']
>>> str8 = 'spring,summer,autumn,winter'
>>> str8.split(',')
['spring', 'summer', 'autumn', 'winter']
split面试题 ★★★★★
一般有n个分割符,就有n+1个列表元素。
但有个特例:当字符串开头有一个空格时并不指定分割符,就只会有n个列表元素。
>>> str8 = ' spring summer autumn winter'
>>> str8.split()
['spring', 'summer', 'autumn', 'winter']
>>> str8.split(' ')
['', 'spring', 'summer', 'autumn', 'winter']
split([sep [, maxsplit]])可设置分割次数。
>>> str8.split(',', 1)
['spring', 'summer,autumn,winter']

可以用在分割路径与文件名:  ★★★★★
>>> file_path = r'E:aaabbccc.ddd'
>>> path, file = file_path.rsplit('\', 1)
>>> path
'E:\aaa\bbb'
>>> file
'ccc.ddd'

join 自定制连接符,将可迭代对象中的元素连接起来 ★★★★★

>>> s1 = 'abc'
>>> '_'.join(s1)
'a_b_c'

replace 替换字符串,可以指定替换次数 ★★★★★

>>> s2 = "Jack is Mary's boy friend."
>>> s2.replace('Jack', 'Mark')
"Mark is Mary's boy friend."

>>> s2.replace('a', 'o', 1)
"Jock is Mary's boy friend."

格式化输出:format

s1 = '我叫{},今年{},性别{}'
三种方式
第一种
s2 = '我叫{},今年{},性别{}'.format('太白','28','男')
print(s2)
第二种
s3 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('太白', '28', '男')
print(s3)

第三种
s4 = '我叫{name},今年{age},性别{sex}'.format(age='28', name='太白', sex='男')
print(s4)

is 系列

name = 'taibai'
name1 = 'a123'
print(name.isalnum())  # 数字或字母组成
print(name1.isdigit())  # 判断全部是由整数组成
print(name.isalpha())  # 全部由字母组成

公共方法

>>> name='alexaaaa'
>>> name.count('a')  #可以设置起始位置,结束位置。
5
>>> print(len(name))
8
原文地址:https://www.cnblogs.com/lanhoo/p/9432328.html