字符串

字符串

字符串也是容器型数据类型;字符串’‘或者"" ‘’’’’’ 作为容器。里面可以是任意字符

区别:’’’’’’ 和 “”"""" 引起来的字符串可以直接敲回车换行
特点:不可别的(不支持增删改);有序的(支持下标操作)
字符串的元素:字符串里的每个单元,任何符号都可以

字符

  1. 普通字符:包括所有的符号,例如:数字、字母、中文、各种图形符号等
str='123'
str1='ad'
str2='@@##%'
str3='中文'
  1. 转义字符:和\结合后具有特殊功能和特殊意义的字符,就是转义字符。(转义字符,不是python里面的特有的)
\n  --回车换行    print('ad\njih')  
\'  --表示一个'   print('123\'zxc')
\"  --表示一个"   print('123\"zxc')
\\n --表示一个\n  print('1231\\nsasd')
\t  --表示一个水平制表符  print('ad\tasda')
\u位的16进制数---编码字符
str='123\u4effabc'
print(str)

注意:任何一个转义字符的长度是1

  1. 阻止转义
    python中在字符串的最前面加r/R,可以让这个字符串所有的转义字符的功能消失
str='r\tasda'
print(str)

字符串的相关操作

  1. 获取字符

字符串获取字符和列表获取元素的方法是一样的

获取单个字符

str1='人生苦短,及时行乐'
print(str1[5])
str2='how are\n you!'
print(str2[-4])
  1. 切片
message='曾经有一份真挚的爱情摆在我面前,我没有珍惜。'
print(message[1:])  #经有一份真挚的爱情摆在我面前,我没有珍惜。
print(message[2:10]) #有一份真挚的爱情
print(message[-10:-2:-1])  #
  1. 遍历
message2='你以为就是你以为的'
for x in message:
    print(x)

for index,item in enumerate(message2):
    print(index,item)

加法和乘法运算

# 字符串1+字符串2 ---将俩个字符串合并成一个新的字符串
str1='abc'+'123'
print(str1)   #abc123

# 字符串*N/N*字符串  ---字符串重复N次,产生新的字符串
str='123'*3
print(str)    #123123123

比较运算

俩个字符串比较大小比较的是第一对不相等的字符的编码值大小
判断是否是小写字母:‘a’<=x <=‘z’
判断是否是大写字母:‘A’<=x <=‘Z’
判断是否是字母:‘a’<=x <=‘z’ or ‘A’<=x <=‘Z’
判断是否是数字字符: ‘0’<=x <=‘9’
判断是否是中文字符: ‘\u4e00’<=x <=’\u9fa5’

in 和 not in

字符 in 字符串 —判断字符串中是否有指定的字符
字符串1 in 字符串2 —判断字符串2中是否包含字符串1

print('s'  in  'sdf')  #True
print('how' in 'ahao are you ')  #False
  1. 计算机数据存储

计算机在存储数据的时候,只能直接存储数字数据,而且以二进制的形式存储的数字

  1. 字符编码

为了能够让计算机存储字符,给每一个字符关联一个具体的数字,在需要存储字符的时候只需要存储这个字符对应对应的数字;
每个字符对应的数字就是字符的编码值。

  1. 编码表

保存字符和数字一一对应关系的表就是字符编码表,常用的字符编码表,一个是ASCII码表、Unicode编码表
ASCII码表:采用1个字节对128个字符进行编码,其中包括常用的英文符号、数字和字母。其他数字的编码在字母的前面,大写字母
的编码在小写字母的前面,大写字母和小写字母不连续。
Unicode码表:万国码,包含了世界上所有国家所有民族所有语言的符号。前128个字符就是ASCII码表的
其中中文的编码范围:4e00~9fa5

编码字符:\u4e00四位的16进制数(这儿的4位的16进制数就是字母的编码值)
print(’\u9fa5’)

编码值和编码对应的字符函数

chr函数

chr(编码值) -获取编码值对应的字符(编码值是10进制)

for x in range(0x4e00,0x9fa5):
    print(chr(x),end=' ')

ord函数

ord(字符) --获取字符的编码值

print(ord('我'))   #25105

格式字符串

语法:带有格式占位符的字符串 %(数据1,数据2,数据3……)

说明:格式占位符 —字符串中不同类型数据的占位符号,固定的

    %s  --字符串的格式占位符
    %d  --整数的格式占位符
    %f  --浮点数的个数占位符
    %c  --字符的个数占位符(可以给字符,也可以是字符编码值)
    %.Nf  --浮点数的占位符,并且控制小数点有N位小数

%() --固定写法
数据 --最后给字符串中不确定内容赋值的数据;数据的个数和类型要和前面占位符的个数以及 类型要保持一致

name=input('输入姓名:')
age=int(input('输入年龄'))
sex=input('输入性别')
score=int(input('输入成绩'))
message='%s  性别:%s ,年龄:%d ,今天考了%d分。'%(name,sex,age,score)
print(message)


message2='金额: %f'  %(12)
print(message2)  #金额: 12.000000

message3='金额: %2f'  %(12.2345)
print(message3)   #金额: 12.234500

message4='97:%c' %('a')
print(message4)   #97:a

message5='97: %c' %(97)
print(message5)   #97: a

format字符串(f-string)
用法1:format带{}的字符串.format(数据1,数据2,数据3,……)

message='大家哈,我是{},今年{}岁,我是一只{}'.format('阿红',3,'银狐')
print(message)

用法二:{下标}

message='大家好,我是{0},我的名字是{0},今年{1}岁'.format('边旭',18)
print(message)

用法三:{key}

message='大家好,我是{name},我的名字是{name},今年{age}岁'.format(name='边旭',age=18)
print(message)

加约束:{:约束}/{下标:约束}/{key:约束}
1)约束小数位数 - {:.Nf}

message='a:{:.1f},b{:.2f}'.format(10,20)
print(message)

message='a:{:.1f},b{:.2f}'.format(10,20)
print(message)
print('a:{0:.1f},b{1:.2f},a:{0:.3f}'.format(10,20))
print('我的名字是{name},月薪:{money:.2f}'.format(name='余婷',money=6677))

2)控制显示正负号 {:+}

print('a:{:+},b:{}'.format(10,-20))

3)控制数字的宽度{:x>N}/{:X<N} --N表示数据最终的位数,x是填充数据,>表示填充在原数据的左边,<填充在右边
(x没有表示用空格占位)

print('a:{:>5},b:{:<5}!'.format(10,20))  #a:   10,b:20   !
print('a:{:s>5},b:{:s<5}!'.format(10,20))  #a:sss10,b:20sss!

4)数字用逗号隔开:{:,}

print('a:{:,},b:{:,}'.format(100,200000)) #a:100,b:200,000

5)显示百分比:{:.N%} --N控制百分制小数点的位数

print('a:{:2%},b:{:1%}'.format(0.12,0.345))  #a:12.000000%,b:34.500000%
f-string的用法 f{数据}’
name='小花'
age=18
message=f'姓名:{name},年龄:{age}'
print(message)

字符串的常用方法

  1. center/rjust/ljust
str='abc'
print (str.center (7, 'x'))  #xxabcxx
print(str.rjust(7,'x'))  #xxxxabc
print(str.ljust(7,'x'))   #abcxxxx

zfill()相当于rjust填充字符是固定0

print(str.zfill(7))   #0000abc

练习输入学生编号。产生对应的学号 Python2003009
stu_number=input('输入你的学号:')
str='python2003'
print(str+stu_number.zfill(3))
  1. count 统计字符串中某个字符或者字符串出现的次数
str='sdfadswefasf'
print (str.count ('s'))  #3
# 在下标0-10的范围内统计
print(str.count('s',0,18))  #3
  1. index/find 查找字符或字符串下标(index没有会报错,find返回-1)
print(str.index('sw'))  #5
  1. join 拼接字符串
    字符串.join(序列) --将序列中的元素用字典字符串拼接成一个新的字符串
    序列中的元素必须全是字符串
list1=['name','age','sex']
print('*'.join(list1))  #name*age*sex
print('+'.join('abc'))   #a+b+c
print('='.join({'a':'10','b':'20'}))  #a=b
  1. lstip/rstrip/strip --删除空白
message='\t  abc \t 123'
print(r'原字符串:',message)  #       abc   123
print(r'lstrip:',message.lstrip())  #abc    123删除前面的空格
print(r'rstrip:',message.rstrip())  #    abc   123  删除后面的空格
print(r'strip:',message.strip())   #abc     123  删除左右的空格
  1. maketrans()和translate #创建映射表: a-1;b-2
table=str.maketrans('ab','12')
new_str1='abc'.translate(table) #按照指定的映射表替换原字符串中的字符
print(new_str1)
  1. replace
字符串1.replace(字符串2,字符串3,1)--将字符串1中的字符串2全部替换成字符串3,1代表次数
message='how are you?i an file.and you!'
new_str2=message.replace('you','me')
print(new_str2)  #how are me?i an file.and me!
  1. split
字符串1.split(字符串2)--将字符串2作为切割点对字符串1进行分割
message='how are you?i an file.and you!'
print(message.split('?'))  #['how are you', 'i an file.and you!']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值