美文网首页
Day3-课堂笔记-字符串

Day3-课堂笔记-字符串

作者: 晓晓的忍儿 | 来源:发表于2018-07-18 21:24 被阅读0次

1.字符串

a.使用单引号或双引号括起来的字符集就是字符串
b.引号中单独的符号、数字、字母等叫字符
c.转义字符:可以用来表示一些有特殊功能或者是特殊意义的字符(通过在固定的字符前加),转义字符在计算字符串长度时,转义字符代表一个字符。

-->'
\ -->
\n -->换行
\t -->制表符
" -->"
例:

'123' # 数字字符串
'ahcn'
'^&*&sf'
'坑逼'
' '
str2='\''
print(str2)
str3='\\'
print(str3)
str1='床前明月光,\n疑是地上霜。'
print(str1)

结果

'
\
床前明月光,
疑是地上霜。

2.阻止转义

可以通过在字符串前面加r或R,来阻止转义字符转义
例:

str4=r'\\'
print(str4)

结果:

\\

3.Python中字符串的字符是Unicode编码

Unicode编码:使用16位对一个字符进行编码编,编码的目的是让字符可以存储到计算机中。Unicode码中包含了ASSCII码,可以表示世界上所有的语言和符号
a.获取一个字符的Unicode码,ord('字符')
例:

print(hex(ord('与')))

结果:

0x4e0e

b.将Unicode码转换成字符,chr(编码值)
例:

print(chr(0x4e00))

结果:

c.字符串比较大小
从字符串的第一个字符开始依次往后比较每个字符的大小,直到遇到字符不一样为止。比较字符大小的时候, 实质比的是他们编码的大小
例:

print('abc'>'b')
print('abc'>'aa')

结果:

False
True

4.获取字符串长度

长度 :字符串的字符个数
len():是获取序列长度的内置函数
例:

count=len('abc\n123')
print(count)

结果:

7

5.获取字符

索引:字符串中每一个字符都对应一个下标(索引),我们可以通过索引值
例:

 'abc' ---> a:0 ,b:1 ,c:2

格式:字符串[索引值]
例:

str1='abc'
print(str1[0]) # a
print(str1[1]) #b
str2="dy\nup"
print(str2[4])

结果:

a
b
p

注意:下标的范围:0~字符串的长度-1。获取字符串中的字符时,索引值不能超过索引的范围,否则会报IndexError
索引值为负数时:
例:

print(str1[-1]) # 获取字符串str1中的最后一个字符
print(str1[-2]) # 获取字符串str1中的倒数第二个字符

结果:

c
b

6.获取部分字符

格式1:字符串[开始下标:结束下标]==字符串[开始下标:结束下标:1] --->获取字符串中包括开始下标但不包括结束下标之间的所有字符字
格式2:符串[开始下标:结束下标:步进]
a.开始下标对应的字符,要在结束下标对应的字符前面(步进是整数)
例:

str3='hello ren za'
print(str3[6:9])
str4='hello Python'
print(str4[6:12])  # Python
print(str4[-6:12])  # Python

结果:

ren
Python
Python
b.开始下标省略:从字符串的最前面取到结束下标前一个字符
例:

print(str4[:4])

结果:

hell
c.结束下标省略:从开始位置取到字符串结束

print(str4[4:])

结果:

o Python
e.两个都省略:获取整个字符串的内容
例:

print(str4[:])

结果:

hello Python
f.有步进
例:

print(str4[::2]) # hloPto

结果:

hloPto
g.当步进是负数时,开始下标的字符可以取而结束下标的字符取不到。当结束下标和开始下标省略时,全取
例:

print(str4[4::-1]) #
print(str4[:4:-1]) 
print(str4[4:0:-1]) 
print(str4[::-1])
print(str4[4::-2]) 
print(str4[::-2]) 

结果:

olleh
nohtyP
olle
nohtyP olleh
olh
nhy le

7.字符串拼接

1)运算符+

注意:加号两边要么都是数字要么都是字符串,不能一边是数字一边是字符串
例:

str1='hello'+' '+'Python'
print(str1)

结果:

hello Python

2)运算符*

让字符串重复
格式:字符串*整数
例:

str2='hello '*3
print(str2)
str2='a'*10
print(str2)

结果:

hello hello hello
aaaaaaaaaa

3)in

判断in前边字符串是否在in后边字符串中-->True 或False
格式:字符串1 in 字符串2
例:

result='aa'in 'aaffdd'
print(result)

结果:

True

4)not in

判断not in前边字符串是否不在not in后边字符串中-->True False
格式:字符串1 not in 字符串2
例:

result='123' not in 'abc'
print(result)

结果:

True

5) 格式字符串

格式:'%s'(表示站位符) %(值)(可以有多个站位符)
例:

str3='abd%swrweff%s' %('123','dd232')
print(str3)

结果:

abd123wrweffdd232

#%s -->字符串占位符(格式符)
#%d -->整数占位符(格式符)
#%f -->浮点数占位符
#%c -->长度是1的字符串占位符(字符站位符)
# 可以给一个字符,也可以给字符的编码值
str4='-%s-%d-%f-%c-'%('我是字符串',1234,12.5,'k')
print(str4)
# %.nf:使用n值限制小数点后面的位数(默认六位小数)
str5='金额:%.2f元'%(100)
print(str5)
# 如果占位符后面没加%(),那么这个字符串只是普通的字符串
str6='金额:%.2f元'
print(str6)
# %x和%X--->十六进制数据占位符
number=15
str7='%d的十六进制是0x%x'%(number,number)
print(str7)

结果:

-我是字符串-1234-12.500000-k-
金额:100.00元
金额:%.2f元
15的十六进制是0xf

str9='-%c-%s-%d-%f-%u-%o-%x-%X-%e-%E-%g-%G'%('k','jgakshd',-120,12.0,34,99,15,15,15.8,15.8,15.8,15.8)
print(str9)

结果:

-k-jgakshd--120-12.000000-34-143-f-F-1.580000e+01-1.580000E+01-15.8-15.8

6)格式化输出

name='路飞'
age=23
print('%s今年%d岁'%(name,age))
str8='他是%g岁'%(7.99)

结果:

路飞今年23岁

8.字符串方法

1)capitalize()函数

将字符的第一个字符转换为大写

str='hello ren si yu'
print(str)
new_str=str.capitalize()
print(new_str)

结果:

hello ren si yu
Hello ren si yu

2)center(width,fillchar)

返回一个长度为width且指定字符串居中的字符串,空余位置用fillchar填充,fillchar为填充的字符,默认为空格

str='hello'
print(str)
new_str=str.center(10,'*')
print(new_str)

结果:

hello
hello*

3)count(str,beg=0,end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

str='www.runoob.com'
print(str.count('o'))
print(str.count('www',0,len(str)))
print(str.count('www',0,10))

结果:

3
1
1

4)bytes.decode

decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。

str='任思宇'
str_utf8=str.encode("UTF-8")
str_gbk=str.encode("GBK")
print(str)
print("UTF-8编码:",str_utf8)
print("GBK编码:",str_gbk)
print("UTF-8解码:",str_utf8.decode('UTF-8','strict'))
print("GBK解码:",str_gbk.decode('GBK','strict'))

结果:

任思宇
UTF-8编码: b'\xe4\xbb\xbb\xe6\x80\x9d\xe5\xae\x87'
GBK编码: b'\xc8\xce\xcb\xbc\xd3\xee'
UTF-8解码: 任思宇
GBK解码: 任思宇

5endwith(suffix,beg=0,end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

str='hello ren si yu'
new_str=str.endswith('yu')
print(new_str)
new_str=str.endswith('s',0,11)
print(new_str)
new_str=str.endswith('u',0,len(str))
print(new_str)

结果:

True
True
True

6)expandtabs(tabsize=8)

str='tab is\tsb'
print(str)
print(str.expandtabs())
print(str.expandtabs(8)) #默认为8
print(str.expandtabs(16))

结果:

tab is sb
tab is sb
tab is sb
tab is sb

7)find(str,beg,end=len(string))

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

str='hello sb go go'
new_str=str.find('go')
print(new_str)
new_str=str.find('go',0,len(str))
print(new_str)
new_str=str.find('goo',0,len(str))
print(new_str)
new_str=str.find('go',11,14)
print(new_str)

结果:

9
9
-1
12

8)index(str,beg,end=len(string))

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则会出现异常

str='hello sb go go'
new_str=str.index('go')
print(new_str)
new_str=str.index('go',0,len(str))
print(new_str)
new_str=str.index('go',11,14)
print(new_str)
# new_str=str.index('goo',0,len(str))
# print(new_str)

结果:

9
9
12

9)isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

str='hello'
str1=' '
str2='123'
print(str.isalnum(),str1.isalnum(),str2.isalnum())

结果:

True False True

10)isalpha

如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回

False
str='hello'
str1=' '
str2='123'
print(str.isalpha(),str1.isalpha(),str2.isalpha())

结果:

True False False

11)isdigit()

如果字符串只包含数字则返回 True 否则返回 False

str='hello'
str1=' '
str2='123'
print(str.isdigit(),str1.isdigit(),str2.isdigit())

结果:

False False True

12)islower()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

str='Adjfi'
str1=' '
str2='124'
str3='dfsd'
print(str.islower(),str1.islower(),str2.islower(),str3.islower())

结果:

False False False True

13)isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False

str='3435djfi'
str1=' '
str2='124'
str3='dfsd'
print(str.isnumeric(),str1.isnumeric(),str2.isnumeric(),str3.isnumeric())

结果:

False False True False

14)isspace

如果字符串中只包含空白,则返回 True,否则返回 False.

str='3435djfi'
str1=' '
str2='124'
str3='dfsd'
print(str.isspace(),str1.isspace(),str2.isspace(),str3.isspace())

结果:

False True False False

15)istitle()

如果字符串是标题化的(见 title())则返回 True,否则返回 False

str='Axin'
str1='dfd'
str2=' '
str3='342352'
print(str.istitle(),str1.istitle(),str2.istitle(),str3.istitle())

结果:

True False False False

16)isupper()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

str='ASFFS'
str1='dfd'
str2=' '
str3='342352'
print(str.isupper(),str1.isupper(),str2.isupper(),str3.isupper())

结果:

True False False False

17)join(seq)

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

str='*'
str1=''
seq = ("r", "u", "n", "o", "o", "b")
print(str.join(seq))
print(str1.join(seq))

结果:

runoo*b
runoob

18)len(string)

返回字符串长度

str='hello'
print(len(str))

结果:

5

19)ljust(width,fillchar)

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格

str='yello'
print(str.ljust(10,'%'))

结果:

yello%%%%%

20)lower()

转换字符串中所有大写字符为小写.

str="HELLO"
print(str.lower())

结果:

hello

21)upper()

转换字符串中所有大写字符为大写.

str="hello ello"
print(str.upper())

结果:

HELLO ELLO

22)lstrip()

截掉字符串左边的空格或指定字符。

str='\nhello\n'
print(str)
print(str.lstrip())

结果:


hello

hello

23)rstrip()

截掉字符串右边的空格或指定字符。

str='\nhello\n'
print(str)
print(str.rstrip())

结果:


hello


hello

24)strip()

截掉字符串两边的空格或指定字符。

str='\nhello\n'
print(str)
print(str.strip())

结果:


hello

hello

25)maketrans()

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

str='hello yello sb www.com'
new_str=str.maketrans('se','12')
print(str.translate(new_str))

结果:

h2llo y2llo 1b www.com

26)max(str)

返回字符串 str 中最大的字母。

str='hello'
str1='235'
print(max(str),max(str1))

结果:

o 5

27)min(str)

返回字符串 str 中最小的字母

str='hello'
str1='235'
print(min(str),min(str1))

结果:

e 2

28)rfind(str,beg=0,end=len(string))

类似于 find()函数,不过是从右边开始查找.

str="hello ren si yu"
print(str.rfind('si',0,len(str)))

结果:

10

29rjust(width,fillchar)

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

str='yello'
print(str.rjust(20,'%'))

结果:

%%%%%%%%%%%%%%%yello

30)rindex(str,beg=0,end=len(string))

类似于 index(),不过是从右边开始.

str='hello ren si yu'
print(str.rindex('re',0,len(str)),str.rindex('en',0,len(str)))
# print(str.rindex('enn',0,len(str)))

结果:

6 7

31)replace(old,new,max)

把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

str='ok www is ok or yes ok'
print(str.replace('ok','12',2))

结果:

12 www is 12 or yes ok

32)split(str="",num=string,count(str))

num=string.count(str)) 以 str 为分隔符截取字符串,如果num 有指定值,则仅截取 num 个子字符串str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num -- 分割次数。

str='hello ren si yu you are sb'
print(str.split())
print(str.split('u',str.count('u')))
print(str.split('u',2))

结果:

['hello', 'ren', 'si', 'yu', 'you', 'are', 'sb']
['hello ren si y', ' yo', ' are sb']
['hello ren si y', ' yo', ' are sb']

33)splitlines([keepends])

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

str='ab c\n\nde fg\rkl\r\n'
print(str)
print(str.splitlines())
print(str.splitlines(True))
print(str.splitlines(False))

结果:

ab c

de fg
kl


['ab c', '', 'de fg', 'kl']
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
['ab c', '', 'de fg', 'kl']

34)startswith(str,beg=0,end=len(string))

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

str='hello ren si yu you are sb'
print(str.startswith('hello',0,len(str)))
print(str.startswith('re',6,len(str)))
print(str.startswith('re',5,10))

结果:

True
True
False

35)swapcase()

将字符串中大写转换为小写,小写转换为大写

str='HEllo'
print(str)
print(str.swapcase())

结果:

HEllo
heLLO

36)title()

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

str='hello ren si yu you are sb'
print(str.title())

结果:

Hello Ren Si Yu You Are Sb

9.if语句

条件语句结果为True执行的代码块
执行过程:先判断条件语句是否为True,如果为True就执行if语句:后面对应的一个缩进的所有代码。为False,就不执行冒号后面的一个缩进的代码块,直接执行后继的其他语句
条件语句:可以是任何有值的表达式,但一般是布尔值

1)格式1:

if True:
    print('代码1')
    print('代码2')
    print('代码3')
print('代码4')

练习:用一个变量保存时间(50米短跑),如果时间小于8秒则打印及格

time=7
if time>=8:
    print('不及格')
else:
    print('及格')
print(time)

结果

及格
7

2)格式2:

if 条件语句:
语句块1
else:
语句块2

执行过程:先判断条件语句是否为True,如果为True就执行语句块1,否则执行语句块2

用一个变量保存成绩,如果成绩打于60,则打印及格,否则打印不及格

grade=79
if grade>=60:
    print('及格')
else:
    print('不及格')

结果:

及格

相关文章

  • Day3-课堂笔记-字符串

    1.字符串 a.使用单引号或双引号括起来的字符集就是字符串b.引号中单独的符号、数字、字母等叫字符c.转义字符:可...

  • Day3-课堂笔记-CSS

    1.选择器的权重 1)类型选择器: 元素选择器:0001 class选择器:0010 id选择器:0100 层级(...

  • 3/14今日读书《匠人精神》补更

    【今日读书任务】《匠人精神》 【预计听书时长】1h 【今日作业】:打卡Day3-《匠人精神》 「3条笔记」 这段是...

  • Day3-课堂笔记-Django3

    主要知识点: model.py urls.py views.py

  • Day3-课堂终结

    变量 变量的作用就是保存数据变量就是在程序中用来保存数据的容器1.声明变量(定义变量) -假的声明变量名=值变量名...

  • day3-字符串

    一、什么是字符串 使用单引号或者双引号括起来的字符集就是字符串. 引号中单独的符号、数字、字母等叫字符 转义字符:...

  • day3-字符串

    1.什么是字符串 a.使用单引号或者双引号括起来的字符集就是字符串b.引号中单独的符号、数字、字母等叫做字符c.转...

  • day3-字符串

    01.认识字符串 1.什么是字符串 a.使用单引号或者双引号括起来的字符集就是字符串b.引号中单独的符号、数字、字...

  • day3-字符串

    一.什么是字符串 a.使用单引号或者双引号括起来的字符集就是字符串。b.引号中单独的符号、数字、字母等叫做字符。c...

  • 【🌸独特印记·陌路知音】22:00-24:00学员作业点评(21

    Day 17 作业:课堂笔记 用脑图做课堂笔记,可以是实体课堂、在线课堂或音频视频资料的听课笔记,当然也可以是我们...

网友评论

      本文标题:Day3-课堂笔记-字符串

      本文链接:https://www.haomeiwen.com/subject/dbnnpftx.html