Day-04 字符串

字符串02

1.获取单个字符

字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置

下标是从0开始依次增加,0对应的是第一个字符
也可以从-1开始依次减少,-1代表的是最后一个字符

string = 'hello'
for x in range(0,len(string)):
    print(string[x],end = ',')

j = 0;i = -1
while j < len(string):
    print(string[i],end = ',')
    i -= 1
    j += 1
简便方法: 
print(string[0:6:1])
print(string[-1:-100:-1])
要取到结束下标需要越界

结果如下:

h,e,l,l,o,o,l,l,e,h,
result = 'how are you'[0]
print('\n',result)

结果如下:

 h

下标不能越界

2.获取部分字符(字符串切片)

语法: 字符串[开始下标:结束下标:步长]

str1 = 'python is the best language'
print('1:',str1[4:17:2])

print('2:',str1[22:0:2])
#下标是从0 开始的
print('3:',str1[2:3:-1])

print('4:',str1[22:0:-1])

下标是从0 开始的,因为在结束下标前结束,所以获取不到结束下标,但是开始下标是获取的到的
注:开始下标、结束下标 在 获取部分字符时是可以越界的
步长:必须是整数(正数和负数都行);
如果步长是正数则从开始下标从前往后
如果步长是负数则从开始下标从后往前

结果如下:

1: o stebs
2: 
3: 
4: gnal tseb eht si nohty

注意:
当步长为正,要求开始下标对应的字符的位置必须在结束下标对应的字符位置前面,否则结果为空
当步长为负,要求开始下标对应的字符的位置必须在结束下标对应的字符位置后面,否则结果为空

练习:获取一个字符串中所有下标是奇数的字符(顺序)

str1 = input('输入一个字符串')
print(str1)
print('该字符串的各奇数字符为',str1[0:len(str1)+1:2])

结果如下:

1daskdajs1
该字符串的各奇数字符为1akas

方法二:(省略步长)
字符串[开始下标:结束下标] 步长是1:从开始下标到结束下标
方法三:(省略开始下标结束下标)

字符串[:结束下标:步长] 和步长的正负有关系


Day-04 字符串_第1张图片

1.字符串相关运算: +, *, >, ==, !=, >=, <=,

python中的字符串支持数学运算符中的+和*以及所有的比较运算符
+: 字符串 1 + 字符串 2 将字符串拼接在一起产生一个新的字符串
*: 字符串 * N - N是正整数

newstr = 'abc' + '123'
print(newstr)
结果为 abc123
new_str = 'abc'*3
print(new_str)
结果是
abcabcabc

print(('abc'+'123')*2)  abc123abc123
print('abc'+'123"*2)    abc123123

c.比较是否相等
print('abdcb' > 'abcde')
逐个比较字符的ASCII码,从第一个字符开始依次往后找,找到第一个不相等的字符对,谁的编码值大,对应的字符串就大,不会再往后比较了

判断一个字符串中第三个字符是否是字母

str1 = ‘sk3.ssy23’
char = str1[2]
print('是否是字母','a'<=char<='z' or 'A'<=char<='Z')p

结果如下:
是否是字母 False            

print('是否是中文','\u4e00' <=char<= '\u9fa5')

2. in 和 not in 操作

字符串1 in 字符串2 ->判断字符串2中是否包含字符串1

print('abc' in 'hello abc')
True
print('abc' in 'hello bc')
False

字符串1 not in 字符串2 ->判断字符串2是否不包含字符串1

3.len函数

一个转义的转义字符的长度也是1
一个编码字符的长度是1
一个空格的长度是1
一个手动输入的Tab的长度是4
ssw
len(序列) - 获取序列长度,获取序列中元素的个数
len(字符串) - 获取字符串的长度(字符的个数) 结果是一个整数

=============格式字符串===============

在字符串中通过格式占位符来代替字符串中变化的部分,然后在后面通过数据或者变量确定变化的

语法:
包含占位符的字符串%(值1,值2,值3...)
占位符 -%s (字符串)
%d (整数)
%f (浮点型 ,%.Nf 保留小数点后N位小数)
%c (字符 可以将数字转换成字符)
% - 固定写法
() - 固定写法,字符串中只有一个占位符的时候这个()可以省略
括号中的值 - 值和占位符要一一对应

name = input('姓名')
age = 18
sex = '男'
message = '我叫%s,今年%d,性别:%s,月薪 %.2f 万,字符%c' %(name,age,sex,1.5,97)
print(message)
结果如下:
姓名HXH
我叫HXH,今年18,性别:男,月薪 1.50万,字符a

练习:输入一个字符串,用一个变量保存字符串的相关信息:xxx的长度是多少,最后一个字符是什么

num = input('输入一个字符串')
lenth = len(num)
message = '输入的字符长度是%d,字符串的最后一个字符时%s' %(lenth,num[-1])
print(message)
结果如下:
输入一个字符串asc
输入的字符长度是3,字符串的最后一个字符时c

字符串的内置函数
.center(width,fillchar)
.ljust(width,fillchar)
.rjust(width,fillchar)

str1 = 'abc'
print(str1.center(7,'0'))
结果如下:
00abc00

4.isalpha 判断字符串是否是全字母(非ASCII码表中的字符检测不出来)
5.join 将字符串1插入到字符串2中

new_str = '**'.join('abc')
print(new_str)
a**b**c
print('12,89,90'.split(','))
结果如下:
['12','89','90']

练习:输入进班顺序,然后自动产生对应的学号py1809
输入1-> py1809 0001

num= input('输入一个数字')
print('python1809',num.rjust(4,'0'),sep='')

你可能感兴趣的:(Day-04 字符串)