写点什么

【Python 基础学习】- 字符串

  • 2022-11-25
    北京
  • 本文字数:2541 字

    阅读完需:约 8 分钟

【Python 基础学习】-字符串

7.字符串

存储方式

整型在内存中占一个字节,字符串不管中间有多少内容都要单独存储

类型的转换

Int 将字符串转换成整型 Str 将整型转换成字符串


>>> num = '100'>>> type(num)<class 'str'>>>> int(num)   # 转换为int类型输出,并不是改变它的实际类型100>>> type(int(num))<class 'int'>>>> num'100'>>> num = 'abc' # 只有数字的字符串可以转换为整型>>> int(num)Traceback (most recent call last):  File "<pyshell#8>", line 1, in <module>    int(num)ValueError: invalid literal for int() with base 10: 'abc'>>> 
复制代码


>>> num = 100>>> type(num)<class 'int'>>>> str(num)'100'>>> num100>>> num = str(num) # 转换为字符串在赋值给num>>> num'100'>>> 
复制代码

字符串输入和输出

>>> name = 'jack'>>> sex = '男'>>> age = 18>>> print("你的姓名是:%s"%name)你的姓名是:jack>>> print("性别:%s"%sex)性别:男>>> print("年龄:%d"%age)年龄:18
复制代码


>>> username = input("请输入用户名:")请输入用户名:jack>>> password = input("请输入密码:")请输入密码:123456>>> print("用户名: %s"%username)用户名: jack>>> print("密码:%s"%password)密码:123456>>> 
复制代码

字符串拼接

1)字符串相加 2)字符串格式化


>>> a = 'ja'>>> b = 'ck'>>> c = a + b # 当+号两边是str字符串时,为拼接>>> c'jack'>>> d =100>>> e = 200>>> f = d + e  # 当+号两边都是int数字时,为相加求和>>> f300>>> g = '===%s==='%(a+b)>>> g'===jack==='>>> 
复制代码

字符串下标**

name = "abcdef",如何取出 c 值?如何取出最后-一个值?


>>> name = 'abcdef'>>> name[0]'a'>>> name[2]'c'>>> name[5]'f'>>> name[6]Traceback (most recent call last):  File "<pyshell#43>", line 1, in <module>    name[6]IndexError: string index out of range  # 字符串越界,只要超出了范围不管从左取还是从右取>>> >>> len(name) # len 求字符串长度函数6>>> len(name)-15>>> name[len(name)-1]'f'>>> name[-1] # -1 是从右往左取'f'>>> name[-2]'e'>>> name[-7]Traceback (most recent call last):  File "<pyshell#49>", line 1, in <module>    name[-7]IndexError: string index out of range>>> 
复制代码

字符串切片**(得到子字符串)

字符串是不可以修改的,所以对子字符串是只能读不能写


name =“abcdefABCDEF"如何取出 ced 值? name 逆序输出,怎么办?


>>> name='abcdefABCDEF'>>> name[2:5]  #第3个到第5个字符'cde'>>> name[2:]'cdefABCDEF'>>> name[2::2] # 起始位置: 终止位置: 步长:'ceACE'>>> name[::2]'aceACE'>>> name[1:10:2] # 起始位置: 终止位置: 步长:'bdfBD'>>> name[-1::-1]'FEDCBAfedcba'>>> name[::-1] # 步长控制字符串取的方向'FEDCBAfedcba'>>>   
复制代码

字符串常见操作

1)find 查找


>>> mystr='hello world jack and tomjack'>>> mystr.find('jack') # 查找当前第一次出现字符串的的位置12>>> mystr.rfind('jack') #查找当前最后一次出现字符串的位置24>>> mystr.find('jr')  # 查找不存在字符串的会返回一个:-1-1>>>
复制代码


2)index


>>> mystr.index('jack')12>>> mystr.rindex('jack')24>>> mystr.index('jr') # index查找不存在的字符串 会报错Traceback (most recent call last):  File "<pyshell#29>", line 1, in <module>    mystr.index('jr')ValueError: substring not found>>> 
复制代码


3) replace 替换


>>> mystr='hello world jack and tomjack'>>> mystr.replace('world','WORLD')'hello WORLD jack and tomjack'>>> mystr.replace('jack','JACK')'hello world JACK and tomJACK'>>> mystr.replace('jack','JACK',1) #参数1 替换一次'hello world JACK and tomjack'>>> mystr.replace('jack','JACK',2)'hello world JACK and tomJACK'>>> mystr.replace('jack','JACK',3) # 没有报错把前两个替换了'hello world JACK and tomJACK'>>> mystr=mystr.replace('jack','JACK',2)>>> mystr'hello world JACK and tomJACK'
复制代码


4) split 分割成字符串列表


>>> mystr='hello world JACK and tomJACK'>>> mystr.split(' ')['hello', 'world', 'JACK', 'and', 'tomJACK']>>> mystr.split('JACK')['hello world ', ' and tom', '']>>> 
复制代码


5) startswith 返回一个布尔值


>>> mystr='hello world jack and tom'>>> mystr'hello world jack and tom'>>> mystr.split(' ')['hello', 'world', 'jack', 'and', 'tom']>>> mystr.startswith('hello')True>>> mystr.startswith('helloa')False>>> 
复制代码


6) endswith


>>> mystr='hello world jack and tom'>>> mystr.endswith('tom')True>>> mystr.endswith('t')False>>> 
复制代码


7 ) lower 将大写转换为小写


>>> name = 'JACK'>>> name.lower()'jack'>>> 
复制代码


8) upper 将小写转换为大写


>>> name = 'tom'>>> name.upper()'TOM'>>> mys = 'tom123'>>> mys.upper()'TOM123'>>> 
复制代码


>>> name = 'tom'>>> name.title()  # title 将单词的首字母大写'Tom'>>> 
复制代码


9) strip 去空格


>>> a= '  abcde  '>>> a.strip()'abcde'>>> 
复制代码


10) isalpha 是否为 26 个字母


判断所有的字符串是否是 26 个字母,包括大小写字母


>>> name = 'jack'>>> name.isalpha()True>>>>>> name = 'jack1'>>> name.isalpha()False>>> 
复制代码


11) isdigit 是否为全部 10 个数字字符


判断是否所有的字符都是 0-9 的字符,如果一个不是,返回 False,否则返回 True


>>> num = '123'>>> num.isdigit()True>>> num1 = '123a'>>> num1.isdigit()False>>> 
复制代码


12 ) isalnum 是否为 26 个字母或者 10 个数字字符


>>> num2 = 'abc123'>>> num2.isalnum()True>>> num3  = 'abc123$'>>> num3.isalnum()False>>> 
复制代码

字符串格式化

字符串 format()格式化方法.前面说过 %百分符格式化方法。Python 官 方最近逐步在推广 str.format()方 法的格式化。tpl = "i am {}, age {}, {}".format("'seven", 18, 'alex')


>>> mystr = 'i am %s age:%d sex:%s'%('jack',18,'男')>>> mystr'i am jack age:18 sex:男'>>> 
复制代码


>>> mystr = 'i am {} age:{} sex:{}'.format('jack',18,'男')>>> mystr'i am jack age:18 sex:男'>>> 
复制代码


发布于: 刚刚阅读数: 4
用户头像

一边做一边变得优秀,加油呀 2022-09-19 加入

大家好,我是小鱼新人来报道哈。

评论

发布
暂无评论
【Python 基础学习】-字符串_11月月更_度假的鱼🐟_InfoQ写作社区