Python入门(二) 字符串

Python语言字符串

  • 字符串
        • 如何定义:
    • 大小写相关函数
        • capitalize() 把第一个字符变大写
        • upper() 把所有小写字符变大写
        • casefold() 和 lower() 把所有大写字符变小写
        • swapcase() 翻转字符串的大小写
    • 对齐相关函数
        • ljust(width) 字符串左对齐
        • center() 字符串居中
        • rjust() 字符串右对齐
    • 检测字符串相关函数
        • startswith() 检测字符串开头是否你需要的
        • endswith() 检测字符串结尾是否你需要的
        • isalnum() 检测字符串是否只有字母或数字或中文
        • isalpha() 检测字符串是否只有字母和中文
        • isdecimal() 检测字符串中是否只有十进制数字
        • isdigit() 检测字符串中是否只有数字
        • isnumeric() 检测字符串中是否只有数字字符
        • islower() 检测字符串中是否没有大写字母
        • isupper() 检测字符串中是否没有小写字母
        • isspace() 检测字符串中是否都是空格
        • istitle() 检测字符串是否只有每个词开头是大写
        • find() 和 index() 找字符串中是否有这个字符\字符串
    • 拼接/增加字符串
    • 删除相关函数
        • lstrip() 去掉字符串左边的空格
        • strip(chars) 去掉字符串两边(前和后)的空格
        • rstrip() 去掉字符串右边的空格
    • 修改相关函数
        • title() 把字符串每个单词开头变大写,其它小写
        • join(sub) 符串作为分隔,插入到sub中所有的字符之间
        • partition(sub) 把字符串分成3个元组
        • replace() 和 translate() 替换新的字符串
        • split() 自定义字符来切 变列表
        • splitlines() 以 \n 来切 变列表
        • zfill(width ) 返回长度为width的字符串
        • expandtabs() 把字符串中的tab符号(\t)转换为空格
    • 字符串格式化:
        • 格式化符号
        • 格式化操作符

字符串

如何定义:

单引号或双引号都行 但必须成对

string = "hello world"
string = 'hello world'

空字符串定义:

string = "" #这样就是定义了一个空字符串

想表示带引号的字符:

1、使用转义字符(\)

string = 'let\'s go'
输出结果:let's go

2、加上字母 r

string = r'let\s go'
输出结果:let\s go

想表达长字符—好看的文案:

使用三引号(可单引号 也可双引号)
例如:
AAAA
BBBB
CCCC

string = '''AAAA
BBBB
CCCC
'''
print(string)

输出结果:
AAAA
BBBB
CCCC

调用都是你的字符串变量名字.函数()

大小写相关函数

capitalize() 把第一个字符变大写

string = 'hello world'
string = string.capitalize()
print(string)

输出结果: Hello world

upper() 把所有小写字符变大写

string = 'hello world'
string = string.upper()
print(string)

输出结果:HELLO WORLD

casefold() 和 lower() 把所有大写字符变小写

string = 'HELLO WORLD'
string = string.casefold()
string = string.lower()
print(string)

输出结果:hello world
hello world

swapcase() 翻转字符串的大小写

string1 = 'Hello World' 
print(string1.swapcase()) #小写变大写   大写变小写

输出结果:hELLO wORLD

对齐相关函数

ljust(width) 字符串左对齐

原型: ljust(width)
作用: 返回一个左对齐的字符串,并使用空格填空至长度为width的新字符串。

string1 = 'hello world'  
print(len(string1)) #查看一下字符串的长度
print(string1.ljust(20)) #默认模式
print(string1.ljust(20,'*')) #用 * 号 来填充

输出结果:11
hello world
hello world*********     # * 是一共9个

center() 字符串居中

原型:center(width )
作用:将字符串居中,并使用空格填充至长度width 的新字符串

string1 = 'hello word' #字符长度为11个
print(string1.center(20)) #q前面空5个 后面也是5个
print(string1.center(20,'*')) #前面会5 个*  后面也是

输出结果:
     hello word
*****hello word*****

rjust() 字符串右对齐

string1 = 'hello word' #字符长度为11个

print(string1.rjust(20)) 
print(string1.rjust(20,'*')) 

输出结果:
          hello word
**********hello word

检测字符串相关函数

startswith() 检测字符串开头是否你需要的

原型: startswith(prefi[,start[,end]])
作用: 检查字符串是否以prefi子字符串开始,如果是返回True ,否则返回False。
Start 和 end 参数表示范围,可选。可不写。
检测文件类型可以使用这个。

Name = 'www.aaaa.com' 
value = Name.startswith('www.') #检测
if value == True:   #如果返回 是真 
    print('是一个网址')
else:
    print('啥也不是 哈哈')

输出结果:是一个网址

endswith() 检测字符串结尾是否你需要的

原型: endswith(sub[,start[,end]])
作用: 检查字符串是否以sub子字符串结束,如果是返回True ,否则返回False。
Start 和 end 参数表示范围,可选。可不写。
检测文件类型可以使用这个。

fileName = 'hello.py' #我们设定一个字符串 为 hello.py 一个Python文件
value = fileName.endswith('.py') #检测文件名字的结尾是不是.py
if value == True:   #如果返回 是真 那么就是 .py文件啦
    print('是一个.py文件')
else:
    print('啥也不是 哈哈')

输出结果:是一个.py文件

isalnum() 检测字符串是否只有字母或数字或中文

原型 isalnum()
作用 如果字符串至少有一个字符并且所有 字符都是字母或者数字则返回Ture,否则返回False. (中文也可以的)

string = 'hello小明123' #都是字母 和 中文 数字 
print(string.isalnum())

输出结果:True #其他字符 像空格 是会返回 False 的

isalpha() 检测字符串是否只有字母和中文

原型: isalpha()
作用: 如果字符串至少有一个字符并且所以字符都是字母返回Ture,否则返回False。

string = 'hello小明'
print(string.isalpha())

输出结果:True

isdecimal() 检测字符串中是否只有十进制数字

原型: isdecimal()
作用: 如果字符串包含十进制数字则返回True 否则False。
半角数字 和 全角数字(双字节) 都会返回True
半角与全角数字:
0-9对应Unicode编码范围:半角——’\u0030’ 到 ‘\u0039’ 全角——’\uff10’到’\uff19’

string1 = '123' #半角
string2 = '\uff10' #全角
print(string1.isdecimal())
print(string2.isdecimal())

输出结果:
True
True

isdigit() 检测字符串中是否只有数字

原型: isdigit()
作用 :如果字符串只包含数字则返回True 否则False

半角数字 和 全角数字(双字节)bytes数字 都会返回True

string1 = '123' #半角
string2 = '\uff10' #全角
string3 = b'5'
print(string1.isdigit())
print(string2.isdigit())
print(string3.isdigit())

输出结果:
True
True
True

isnumeric() 检测字符串中是否只有数字字符

原型: isnumeric()
作用: 如果字符串中只有数字字符返回True 否 False。

半角数字 和 全角数字(双字节) 罗马数字、汉字数字 都会返回True

string1 = '3' #半角 3
string2 = '\uff13' #全角 3
string3 = 'Ⅲ' #罗马 3
string4 = '三' #汉字 三
print(string1.isnumeric())
print(string2.isnumeric())
print(string3.isnumeric())
print(string4.isnumeric())

输出结果:
True
True
True
True

islower() 检测字符串中是否没有大写字母

原型: islower()
作用:如果字符串至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True 否则False。(字符串中没有大写字母存在就True)

string1 = 'hello*//'
print(string1.islower())

输出结果:True

isupper() 检测字符串中是否没有小写字母

原型: isupper()
作用:如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True 否False。(字符串中没有小写字母存在就True)

string1 = 'HELLO**//!!!' 
print(string1.isupper())

输出结果:True

isspace() 检测字符串中是否都是空格

原型: isspace()
作用: 如果字符串中只包含空格 ,则返回True 否则False。

string1 = '     ' 
print(string1.isspace())

输出结果:True

istitle() 检测字符串是否只有每个词开头是大写

原型: istitle()
作用: 如果字符串标题化(所有的单词都是以大写开始,其余字母均小写 返回True 否则False)

string1 = 'Hellow,Orlaaaaaaaad Laaaaaa' 
print(string1.istitle())

输出结果:True

find() 和 index() 找字符串中是否有这个字符\字符串

原型: find(sub[,start[,end]])
作用: 检测sub是否包含在字符串中,如果有则返回索引值(下标号),否则返回-1 start和end参数表示范围,可选。可不写。

string = 'You are very handsome'
print(string.find('handsome'))

输出结果:13 #在下标为13的时候是handsome 中的 h

原型 :index(sub,[start[,end]])
作用: 跟上面find()一样的作用,不过如果找不到会产生一个异常。

例子就不写了 可以看看下面的 列表的查找那里。

rfind() 也是跟find差不多 只不过从右边开始找
rindex() 也是index差不多 只不过从右边开始找

.........不举例了

拼接/增加字符串

string1 = "hello"
string2 = "world"

像拼接一起
直接加就行
newString = string1 + string2
print(newString)

输出结果:
helloworld

删除相关函数

lstrip() 去掉字符串左边的空格

string1 = '     hello world' 
print(string1.lstrip()) 

输出结果:hello world

strip(chars) 去掉字符串两边(前和后)的空格

chars:可指定删除字符

string1 = ' hello worldh ' 
print(string1.strip()) #默认删除前后空格
print(string1.strip(' h')) #默认删除前后空格和 h

输出结果:
hello worldh
ello world

rstrip() 去掉字符串右边的空格

string1 = 'hello world     ' 
print(string1.rstrip()) 

输出结果:hello world

修改相关函数

title() 把字符串每个单词开头变大写,其它小写

原型: title()
作用: 字符串标题化 每个单词开头变大写 其它小写。

string1 = 'hello worldSSSSSSSSSSSSSS' 
print(string1.title())

输出结果:Hello Worldssssssssssssss

join(sub) 符串作为分隔,插入到sub中所有的字符之间

原型: join(sub)
作用:以字符串作为分隔符,插入到sub中所有的字符之间

string1 = '玛卡巴卡' 
print(string1.join('12345'))

输出结果:1玛卡巴卡2玛卡巴卡3玛卡巴卡4玛卡巴卡5

partition(sub) 把字符串分成3个元组

string1 = 'hello world' 
print(string1.partition('wo')) #wo 作为元组的第二个数据

输出结果:('hello ', 'wo', 'rld')

rpartition(sub) 跟上面类似

replace() 和 translate() 替换新的字符串

replace() 例子

string1 = 'hello world' 
print(string1.replace('hello','Hi'))  
print(string1.replace('hello world','Hi baby')) 

输出结果:Hi world
Hi baby

原型: translate(table)
作用: 根据table的规则(可以由str.maketrans(‘a’,‘b’)定制)转换字符串中的字符。
a 和 b 必须是同长度的

string1 = 'hello world' 
print(str.maketrans('he','Hi')) #这个是能返回 字母的 ASCII 值
print(string1.translate(str.maketrans('he','Hi')))

输出结果:
{104: 72, 101: 105}
Hillo world

split() 自定义字符来切 变列表

string1 = 'hello world ' 
print(string1.split()) #默认没参数是空格来切
print(string1.split('o')) #以 字母 o 来切开

输出结果:['hello', 'world'] 
['hell', ' w', 'rld ']

splitlines() 以 \n 来切 变列表

string1 = 'hello\nworld ' 
print(string1.splitlines()) #以\n来切

zfill(width ) 返回长度为width的字符串

原型: zfill(width):
作用: 返回长度为width的字符串。原字符串右对齐,前面填充0。
返回指定长度的字符串

string1 = 'hello world'  #这里一共长度为11个
print(string1.zfill(20)) 

输出结果:000000000hello world #补了9个0

expandtabs() 把字符串中的tab符号(\t)转换为空格

原型: expandtabs(tabsize=8)
作用: 把字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。

string = 'hello\tworld'
print(string.expandtabs())

输出结果:hello   world #变成8个 是从字符串左边开始算的 中间其实是空了3个空格,hello是5个

字符串格式化:

格式化符号

Python入门(二) 字符串_第1张图片

print('********%c运用*********')
print('单字符显示:%c' % 'a') #单个字符
print('单字符显示:%c' % 97) #ASCII码  97 是字符 a

print('********%s运用*********')
print('字符串格式化显示:%s' % 'hello world') #字符串输出

print('********%d运用*********')
print('十进制格式化显示: %d + %d = %d' % (1,2,1+2)) #多个数记得括号括起来 加逗号分开

print('********%o运用*********')
print('8 的 八进制是: %o' % 8)  #以 8 进制格式 打印出来  

print('********%x运用*********')
print('10 的 十六进制是: %x' % 10)
print('10 的 十六进制是: %X' % 10)

print('********%f运用*********')
print('%f' % 3.14159)  #默认是6位小数 没有是会补0 的
print('%.2f' % 3.14159) #显示2位小数而已

print('********%e运用*********')
print('%e' % 3.14159)  
print('%E' % 3.14159) 

print('********%g运用*********')
print('%g' % 3.14159)  
print('%G' % 3.14159) 

输出结果:
********%c运用*********
单字符显示:a
单字符显示:a
********%s运用*********
字符串格式化显示:hello world
********%d运用*********
十进制格式化显示: 1 + 2 = 3
********%o运用*********
8 的 八进制是: 10
********%x运用*********
10 的 十六进制是: a
10 的 十六进制是: A
********%f运用*********
3.141590
3.14
********%e运用*********
3.141590e+00
3.141590E+00
********%g运用*********
3.14159
3.14159

格式化操作符

Python入门(二) 字符串_第2张图片

print('%.1f' % 2.33333)

print('%-5f' % 2.33333)

print('%+5f' % 2.33333)

print('%#o' % 8)

print('%#x' % 10)

print('%05d' % 10)

输出结果:
2.3
2.333330
+2.333330
0o10
0xa
00010

你可能感兴趣的:(Python语言,python,字符串)