1.python字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python Runoob"
单引 双引都可以定义字符串
三引号允许一个字符串跨多行
示例:
'''
<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"
\转义符
----------------------------------------------------------
3.python转义符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
# 转义字符 描述
# \(在行尾时) 续行符
# \\ 反斜杠符号
# \' 单引号
# \" 双引号
# \a 响铃
# \b 退格(Backspace)
# \e 转义
# \000 空
# \n 换行
# \v 纵向制表符
# \t 横向制表符
# \r 回车
# \f 换页
# \oyy 八进制数,yy代表的字符,例如:\o12代表换行
# \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
# \other 其它的字符以普通格式输出
可以使用大括号和下标来获取单的字符,或截取字符串:即 切 片
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.字符格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,
但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
如下实例:
s='今年'
age=23
print("%s今晚 请%s 去%s 吃%s 喝%s 玩%s 消费%,2f 万元"
%("路飞","索隆","娜美","蛋糕岛","烤肉","啤酒",13))
print("%5 天气不错 '%'明天")
print('{}{}岁'.format(s,age,s))
print('{name} 今年 {age}'.format(name="乔巴",age=age))
print('{{{0}}} 今年 {1}'.format(age,"乔巴"))
# %s 格式化字符串
# %d 格式化整数
# .2f 浮点数
# 如果只有一个%,货号可以省略
--------------------------------------------------------------------------------------
5.字符串里的一些函数
len() 获取参数的长度 str list tuple
print(s.__len__())
print(len(s))
count() 返回有及格字符
print(s.count('静音,32'))
print('hello python'.capitalize())
print('hello,python my name is ok'.title())
listA='hello,python,my name is ok,not in java'.split(' ')
listB=' '
for i in listA:
temp= i.split(',')
for j in temp:
listB+=j.capitalize()+' '
print(listB)
str='hello python my name is python ok not in java'
print(str.split(' ',2))
rfind()
rindex():从右边开始找
find()vs index():如果找不到,index()产生异常,find()则返回-1
replace():mystr.replace('ll','LL'),但是原字符串不会被改变
split(str='',num=string.count(str)):mystr.split(''):
如果split('')什么都不写,就是将通过\t和空格进行拆分 num=分割几次
print(str.find('python3'))
print(str.index('python3'))
replace()
print(str.replace('python','java'))
print(str)
小练习.
有一个 邮箱 验证是否合法 @>. 获取用户名的部分 [] 切片
email='[email protected]'
if email.find('@')!=-1 and email.find('.')!=-1\
and email.find('@')!=0\
and email.find('.')>email.find('@'):
print('邮箱正确用户名:',email[0:email.find('@')])
else:
print('格式不正确')
print(str.startswith('python',6,20))
print(str.endswith('java',6,18))
print('Hello'.upper().__eq__('HELLO'.upper()))
print('hello'.center(9,'*'),('python'))
print('hello','lstrip',)
#strip(),lstrip(),rstrip()去除空格
-----------------------------------------------------------