#获取星期字符
>>>weekstr="星期一星期二星期三星期四星期五星期六星期天"
>>>weekid=int(input())
>>>pos=(weekid-1)*3
>>>print(weekstr[pos:pos+3])#输入星期数字(1-7):3
星期三
字符串类型
字符串(str)是字符的序列表示
转义字符
以反斜杠"\“开头,后跟一个或几个字符
- 换行符 :\n
- 回车符 :\n
- ......
字符串常量
使用前,需先执行import string。
- string.ascii_letters :"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- string.ascii_lowercase:"abcdefghijklmnopqrstuvwxyz"
- string.ascii_uppercase :"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- string_digits:"0123456789"
- string.hexdigits :"0123456789abcdefABCDEF"
- ......
序列通用操作(字符串,元组,列表,range)
-
s[i]:引索,返回序列s的第i项
- s[start:end[:step]]:切片
- s.count(x):序列s中x的个数
- len(s):返回序列s的个数
- ......
字符串的序号体系
正向递增序号:
以最左侧字符串序号为0,向右依次递增,最右侧字符序号为L-1(L为字符串长度)
反向递减序号:
以最右侧字符串序号为-1,向左依次递减,最左侧字符序号为-L(L为字符串长度)
字符串索引
对字符串中某个字符的检索被称为索引
>>>str="Python语言"
>>>str[0]
"P"
字符串切片
对字符串中某个子串或区间的检索被称为切片
<字符串或字符串变量>[头下标:尾下标:step]
step:取值的步长不可以为0
>>>str="Python语言"
>>>str[0:6]
"Python"
>>>str[:-3]
"Python"
>>>str[: : :-1]
"言语nohtyP"
字符串操作符
+:拼接
*:复制
......
#输入身份证号,将出生日期用*替代后输出
id=input()
id=id[0:6]+"*"*8+[-4:]
print(id)
字符串的创建
'''......'''#三引号字符串中允许换行
>>>s="你好!"
>>>poem='''
>>>落霞与孤鹜齐飞,
>>>秋水共长天一色。
>>>'''
>>>print(poem)
落霞与孤鹜齐飞,
秋水共长天一色。
字符串的遍历
for 变量 从 in 字符串:
循环体
- 变量c依次被赋值为字符串中的字符
- 循环次数为字符串中字符个数
#分类统计字符个数
import string
my_string=input()
letter,digit,other=0,0,0
for c in my_string:
if c in string.ascii_letters:
letter=letter+1
elif c in string.digits:
digit=digit+1
else:
other=other+1
print("字母:{} 数字:{} 其他:{}".format(letter,digit,other))
字符串的处理办法
全小写:str.lower()
全大写:str.upper()
.......
str.join(iterable)
以字符串str作为分隔符,将可迭代对象interable中字符串元素拼接为一个新的字符串
>>>Is=["23","21","89"]
>>>print(":".join(Is))
23:21:89
str.split(sep=None)
根据分隔符sep将字符串str分切成列表,列表每个元素为字符串
>>>score="10,32,58"
>>>score_Is=score.split(",")
>>>print(score_Is)
['10','32','58']
str.find(t):查找字符串t在字符串str中首次出现的位置,如果不存在返回-1。
str.rfind(t):查找字符串t在字符串str中最后一次出现的位置,如果不存在返回-1。
str.index(t):查找字符串t在字符串str中首次出现的位置,如果不存在抛出异常。
str.rindex(t):查找字符串t在字符串str中最后一次出现的位置,如果不存在抛出异常。
str.count(t):返回字符串t在字符串str中出现的次数。
str.replace(old,new[,count]):返回字符串str的副本,所有old子串被替换为new,如果count给出,则前count次old被替换。
>>>s="including"
>>>s.replace("in","3",1)
"3cluding"
str.isupper():当str所有字符串都是大写时,返回True,否则False
str.islower():当str所有字符串都是小写时,返回True,否则False
str.isalpha():当str所有字符串都是字母时,返回True,否则False
str.isnumeric():当str所有字符串都是数字时,返回True,否则False
.......
字符串格式化
- format()
format()格式化
{<参数序号>:<格式控制标记>}
:引导符号
<填充>:用于填充的单个字符
<对齐> :<左对齐,>右对齐,^居中对齐
<宽度>
, 数字的千位分隔符,适用于整数和浮点数
<.精度> :浮点数小数部分的精度或字符串的最大输出长度
<类型> :整数类型b,c,d,o,x,X 浮点数类型e,E,f,%