1.字符串的定义:
•第一种方式:
str1 = ‘our company is westos’
•第二种方式:
str2 = “our company is westos”
•第三种方式:
str3 = “”“our company is westos”“”
2.转义符号
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
\n: 代表换行符 \”: 代表双引号本身
\t: 代表tab符 \’: 代表单引号本身
3.三重引号三种作用
• 块注释:多行代码注释
• 函数的doc文档:下面总结函数时会说到
• 字符串格式化
4.字符串操作预览
字符串属于序列,序列支持的操作如下:
• 索引 切片
• 判断子串 重复
• 连接 计算长度
1)索引
• 索引(s[i] ):获取特定偏移的元素
• 给出一个字符串,可输出任意一个字符,如果索引为负数,就是相当于从后向前数。
2)切片
切片S[start:stop:step]提取对应的部分作为一个序列:
•上边界并不包含在内;
•如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;
•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
作用:s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法
3)判断子串
判断一个sub字符串是不是属于s字符串:
•sub in s
•sub not in s
4)重复、连接及计算长度
5.字符串为可迭代对象,通过for循环实现
例题:
1. 用户输入字符穿,打印该字符串反转后的字符串;
2. 为了代码测试,粗要生成测试相关学号的数据;
学号是从13开头,代表学校编号;
学好由7位数组成;
#/usr/bin/env python
#coding:utf-8
#1.
str = raw_input("请输入一段字符串:")
print str[::-1]
#2.
str = input("请输入编号:")
pri
nt "13"+"%.5d"%(str)
6.字符串常用方法
判断字符串由什么组成?
注:命令行输入为 s.+Tab键
1)判断是否以什么开头,什么结尾?
s.startswith(“http://”)
s.endswith(“.png”)
2)去除字符串的左右的空格:(主要应用在有用户输入数据的地方)
s.strip(),s.lstrip(),s.rstrip(),s.replace(” “, “”)
注:str.strip([chars])-返回一字符串,将str中首尾包含指定的chars字符删除的字符串,未指定时,删除首尾的空格
重点: str.replace(old,new[,count]) 方法也可以间接实现删除某个字符;
实现删除某个字符:
3)字符串对齐格式化:左对齐, 右对齐, 中间对齐
str.center(width[,fillchar])-filechar为指定时,用空格填充
s.center(40, “*”)
s.ljust(40,”*”)
s.rjust(40,”*”)
4)按照指定分隔符分离字符串:(默认分隔符为空格)
str.split([sep[,maxsplit]])
- 以sep字符串作为分割符对str进行切割,默认为空格;
- maxsplit代表切割的此处
5)指定分隔符连接信息
str.join(seq)
- 以str作为分隔符,将序列seq中的所有元素合并为一个新的字符串。
6)str.capitalize()
- 将字符串首字母大写,并返回新的首字母大写后的字符串;
7)str.count(sub[, start[, end]]) -> int
- 返回sub在str中出现的次数,如果start与end指定,则返回指定范围内的sub出现次数。
str.find(sub[,start[,end]])
- 判断sub是否在str中,存在返回索引值,不存在返回-1.
str.index(sub[,start[,end]])
- 与find方法函数功能相同,如果sub不存在时抛出ValueError异常;
8)其他
str.isalnum() //判断是否都是字母或数字
str.isalpha() //判断是否都是字母
str.isdigit() //判断是否都是数字
str.islower() //判断是否都是小写
str.isspace() //判断是否都是英文空格
str.istitle() //判断是不是都是标题(有大小写)
str.isupper() //判断是不是都为大写字母
7.内置方法(BIF-built-in function)
cmp-根据字符串首字母ASCII码, len, max, min, 枚举enumerate, zip
8.例题实战:
1)
变量名是否合法判断程序:
变量名命名规则:由字母,下划线或者数字组成,但不能以数字开头;
s = 'hello'
请输入变量名 :
1)判断第一个字符是否由字母或者下划线组成
2)如果第一个字符合法,判断剩余字符是否由字母,数字或下划线组成;
#!/usr/bin/env python
#conding:utf-8
s = raw_input("请输入一个变量名:")
if not (s[0].isalpha() or s[0]=='_'):
print "该变量名不合法!"
else:
for i in s[1:]:
if not (i.isalnum() or i=='_'):
print "该变量名不合法"
break
else:
print "该变量名合法"
2)
要求:实现输入两个字符串,str1,str2,输出要求为str1减去str2的部分
例如: str1:hello str2:aeiou 输出结果为:hll
问题分析:
依次遍历str1, str2;
分别对比里面元素是否相等;
如果相等, 将该字符替换为空,实现删除的目的;
str1 = raw_input(“请输入第一个字符串:”)
str2 = raw_input(“请输入第二个字符串:”)
#!/usr/bin/env python
#conding:utf-8
#for i in str1:
# for j in str2:
# if i == j:
# str1 = str1.replace(i,'')
#print str1
for i in str1:
if i in str2:
str1 = str1.replace(i,'')
print str1