字符串
单引号、双引号都可以定义字符串,三引号允许一个字符串跨多行
name1='Honey' #单引号
name2="Tom" #双引号
html=''' #三引号
你好,2018!
'''
print(html,name1,name2)
切片
可以使用中括号和下标来获取单个字符或截取字符串,格式为[]、[ : ]、[ : : ]
str="569809857@qq.com";
print(str[0]);#第一个字符
print(len(str));#获取str的长度
print(str[15]);#获取最后一个字符
print(str[len(str)-1]);#获取最后一个字符
print(str[-1]);#获取最后一个字符
print(str[:5]);#表示截取从下标0开始,到下标4结束(不包含5)
print(str[:]);#表示获取所有
print(str[5:]);#表示截取从下标5开始,到结尾结束
print(str[-5:]);#"-"号表示从后往前数,表示截取从下标-5开始,到结尾结束
print(str[-5:-2]);#表示截取从下标-5开始,到下标-2结束(不包含-2)
print(str[::]);#表示获取所有
print(str[-1:-5:-1]);#表示从下标-1开始,倒数到-5结束
print(str[::-1]);#表示倒叙
字符串一些用法
in:判断是否在些字符串中存在 bool
not in:判断是否不在此字符串中
r/R:原样输出字符串,如一些特殊字符串"\n",'\t'
#字符串一些用法:
email="hang@bdqn.cn";
print("an in email:"+ str('an' in email));#in 用于判断某些字符是否存在在某个值内
print("at not in email:"+ str('at' not in email));#not in 用于判断某些字符是否不存在在某个值内
# r/R:原样输出字符串,如一些特殊字符串"\n",'\t'
print("hello\tpython");#\t 代表一个制表符(空格)
print(R"\n 换行符");
字符串格式化
%s格式化字符串、%d 格式化整数、%f 浮点数、%2f 保留两位小数且四舍五入
.format()格式化:如果以name开头,其后的变量均需以键值的形式出现
#字符串格式化:%s字符 %d整数 %f浮点型 %.2f保留两位小数且四舍五入
print("name:%s"%'tom');
print("name:%s age:%d money:%.2f"%('tom',33,90.456))
#.format()格式化:如果以name开头,其后的变量均需以键值的形式出现
print("name:{0},age:{1}".format("赵博",25));
print("name:{name} age:{age}".format(name="赵博",age=25));
#想输出{}则输出两个{{}}、想输出{0}则输出两个{{}}
print("name={{0}}".format("tom"));
print("name={{{0}}}".format("tom"));
字符串中的函数
#字符串中的函数:
word="Hello python";
print(len(word));#字符串长度
#count(str,start=0,end=len(word));#用于查询字符串中某个值出现的次数
print("字符串中O的次数:{0}".format(word.count("on"),0,7));#0,7的含义是从0开始,到7结束,规定查找范围
print(word.capitalize());#将字符串中的第一个字符转换为大写
print(word.title());#将每一单词首字母大写
#find() vs index():如果找不到,index()产生异常,find()则返回-1
print("h in word of index:{0}".format( word.find('q')));
#rfind 从右面开始找 beg-end 指定一个范围
print("h in word of index:{0}".format( word.rfind('h',-13,-1)));
#index():没有则抛出异常。
print("h in word of index:{0}".format( word.index('h')));
#replace():mystr.replace("ll","LL"),但是原字符串不会被改变
print(word.replace("hello","nihao:"));
word=word.replace("hello","nihao:");
print(word);
#split(str="", num=string.count(str));如果split()什么都不写,就是将通过\t和空格进行拆分 num=分割几次
s=word.split("l",3);
print(s);
小练习:验证邮箱是否合法,要求:@在.的前边,如果合法获取用户名部分
email=input("请输入您的邮箱:");
a=email.find("@");
if a==-1:
print("邮箱错误 没有包含 @ ");
elif(a==0):
print("邮箱错误 @不能出现在第一位 ");
elif(email.find(".")==-1):
print("邮箱错误 没有包含 . ");
elif(email.find(".")
print("邮箱错误 . 的位置应该在@ 后面。。 ");
else:
print("邮箱合法 用户名是{0}".format( email[:a] ));
验证以XX开头
#验证以XX开头
phone="15510000000@163.com";
print(phone.startswith("155"));
print(phone.endswith("1040"));
print(phone.upper().lower());
name=" liSi";
#字符串输出时怎样对齐,括号里写大小 达到一个新的高度 以什么填充
name=name.ljust(10," ");
print(name);
#strip(),lstrip(),rstrip()#去除空格
print(name.strip());#去除空格
print(name.lstrip());#去除左空格
print(name.rstrip());#去除右空格
name="hello-python-world";
print(name.split("-"));#拆分
print(name.partition(" "));#partition();mystr.partition("xxx")以此字符串为节点拆分
# 返回头、分割符、尾三部分 返回头、尾两个空元素的3个元组。
name="hellopython\nworld说的";
#splitlines(bool keepends):按照换行符进行拆分,
print(name.splitlines(True)[0]);
# isalpha():判断字符串是否是字母 true false
print(name.isalpha())
# isdigit():判断字符串是否是数字 true false
name="33890的看法";
#isdigit():判断字符串是否是全是数字 true false
print(name.isdigit())
# isalnum():判断字符串是否是数字和字母 true false
name="发abc123";
print(name.isalnum())
#join(sequence): 将列表组成新的字符串,
# mystr.join(" sequence") sequence 表示要拼接列表 mystr表示连接项
s="-";
word=("a",'b','c');
print(s.join(word))