1.python字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python Runoob"
print(var1,var2)
单引 双引都可以定义字符串
三引号允许一个字符串跨多行
示例:
'''
<html>
<head></head>
<body>
<div>
</div>
</body>
</html>
'''
print(type(s1))
''' 在java语言中,字符'a' "a b c"
字符串在内存中如何储存? 字符串 常量池
python是解释执行。没有做内存优化,编译优化。
字符串常量:即不变的量
新内存:开辟新的内存。只要不是变量传递方式,带有字符串运算的都是新内存。
'''
------------------------------------------------------------
2.字符串的一些用法
not in:判断是否在此字符串中
in:判断是否在一些字符串中存在 bool
r/R原样输出字符串,如一些特殊字符串"\n""\t"
\转义符
s=R'不迟到,不早退,手机\t\t\t静音,\n电脑\t静音,啊哈哈哈ok'
print('静静' in s )
print('丽丽' not in s )
print
3.python转义符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
# 转义字符 描述
# \(在行尾时) 续行符
# \\ 反斜杠符号
# \' 单引号
# \" 双引号
# \a 响铃
# \b 退格(Backspace)
# \e 转义
# \000 空
# \n 换行
# \v 纵向制表符
# \t 横向制表符
# \r 回车
# \f 换页
# \oyy 八进制数,yy代表的字符,例如:\o12代表换行
# \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
# \other 其它的字符以普通格式输出
4:可以使用大括号和下标来获取单的字符,或截取字符串:即 切 片
s='不迟到,不早退,手机静音,电脑静音,啊哈哈哈ok'
print(s[s.__len__()-1]) #得到最后一个字符 一个参数
print(s[-(s.__len__())]) #得到第一个字符 一个参数
print(s[:])
print(s[0:]) #获取全部 两个参数
print(s[0:-8])
print(s[-9:-2]) #分别从前后获取 两个参数
print(s[::3])
print(s[-1::-3]) #从前到后 从后到前 三个参数
print(s[::-1]) #所有,从尾部到头部,反着来
4.字符格式化
4.字符串格式化
%s格式化字符串
%d 格式化整数
%f 浮点数
如果只有一个%?,括号可以省略。
s='今年'
age=23
print('{name} 今年 {age}'.format(name="乔巴",age=age))
print('{{{0}}} 今年 {1}'.format(age,"乔巴"))
5.字符串里的一些函数
s='哈哈' print(s.__len__()) print(len(s)
# count() 返回有几个字符 # title() 将每一个单词首字母大写 # 如果split()什么都不写,就是将通过\t和空格进行拆分 num=分割几次 a ='嘿嘿' print(a.count('静静',32)) print('hello python'.capitalize()) print('hello,python my name is ok'.title()) print('hello,python my name is ok'.split())
listA='hello,python my name is ok'.split(' ')
listB=[]
for i in listA:
temp= i.split(',')
for j in temp:
listB.append(j.capitalize())
print(listB)
# rfind() 从右面开始找 beg-end 指定一个范围 str='hello python my name is ok not in java' print(str.split(' ',2)) # print(str.find('pyrhon3')) # print(str.index('pyrhon3')) # replace() str =str.replace('python','java') print() print(str)
小练习
有一个 邮箱 验证是否合法 @ > . 获取用户名的部分 []
email ='zhangsan@163.com'
if email.find('@')!=-1 and email.find('.')!=-1\
and email.find('@')!=0\
and email.find('.')>email.find('@'):
print('邮箱正确用户名:',email[0:email.find('@')])
else:
print('格式不正确')
str='hello python my name is ok not in java' print(str.split(' ',2)) print(str.startswith('python',6,20)) # 以XX开头 bool print(str.endswith('java',6,18)) # 以XX结尾 bool
忽略大小写的地方 全部转大写 小写 print('Hello'.upper().__eq__('HELLO'.upper()))
ljust字符串输出时怎样对齐,括号里写大小 达到一个新的高度 以什么填充 print('hillo'.center(9,'*'),'python') print('hillo','python')
strip(),lsrip(),rstrip() 去除空格
partition():mystr.partition("xxx")以此字符串为节点拆分
返回头、分割符、尾三部分 返回头、尾两个空元素的3个元组。
print(len('h ello '.strip()))
print(len('h ello '.rstrip()))
print(len('h ello '.lstrip()))
str='hello python my name is ok not in java'
print(str)
print(str.split(' '))
print(str.partition(' '))
# splitlines(bool keepends):按照换行符进行拆分,如果字符串中有"\n"
# 结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,
如果 为 True,则保留换行符 str='hello' print(str.splitlines(True)) print(str.isalpha()) print(str.isalpha())