python字符串

1. 字符串的定义
字符串的定义
"""
a = 'westos'
b = "what's"
c = """
    用户管理系统
    1.添加用户
    2.删除用户
    3.显示用户
    ....
"""
print(a)
print(b)
print(c)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

可以看到, 这里使用三种方式(单引号, 双引号, 定义多行字符串写在三对双引号中间)

在这里插入图片描述

2. 字符串的基本特性
2.1 索引
s = 'hello'定义字符串hello   索引:0 1 2 3 4 索引从0开始
print(s[0])打印字符串的第一个元素
print(s[1])打印字符串的第二个元素
print(s[i])打印字符串的第i+1个元素
# 拿出最后一个字符
print(s[4])
print(s[-1])
# s[start:stop:step] 从satrt开始到end -1结束
# 步长为step
print(s[0:3])
print(s[0:4:2])

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

2.2 字符串的反转
print(s[::-1])

 
 
  • 1
除了第一个字符之外的其他全部字符
print(s[1:])

 
 
  • 1
  • 2

在这里插入图片描述

2.3 字符串的重复
print(s * 10)  #将字符串s打印10
 
 
  • 1

在这里插入图片描述

2.4 字符串的连接
print('hello ' + 'python')  #将两个字符串连接起来打印出来

 
 
  • 1

在这里插入图片描述

2.4 成员操作符

print('he' in s)   #如果字符串s中有he元素,就返回True
print('aa' in s)   #如果字符串s中有aa元素,就返回True
print('he' not in s) #如果字符串s中没有he元素,就返回True

 
 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

hello字符串中有he元素, 因此返回True

hello字符串中没有he元素,因此返回True

2.5 for循环遍历
for i in s:    #遍历s字符串, 打印s字符串的每个元素
    print(i)

 
 
  • 1
  • 2

在这里插入图片描述

3. 利用字符串的切片特性快速判断一个数是不是回文数
3.1 什么是回文数
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。
在数学中也有这样一类数字有这样的特征,称为回文数(palindrome number)。  
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。
例如,若n=1234321,则称n为一回文数;但若n=1234567, 则n不是回文数。 

 
 
  • 1
  • 2
  • 3
  • 4
注意:偶数个的数字也有回文数124421
小数没有回文数

 
 
  • 1
  • 2
3.2 利用字符串的切片特性快速判断一个数是不是回文数
num = input('Num:')
if num == num[::-1]:
    print('这个数字是回文数')
else:
    print('这个数字不是回文数')

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
可以看到, 输入121来测试, 结果显示, 这个数字是回文数

判断大小写字母、数字、标题
'hello'.istitle()    #判断字符串是否是标题(首字母大写)
False

 
 
  • 1
  • 2

在这里插入图片描述

'hello'.isupper()     #判断字符串是否是大写(只要有一个元素是小写就会输出False)
False
'HELLO'.isupper()
True

 
 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述

'hello'.islower()    #判断字符串是否是小写
True
'Hello'.islower()
False

 
 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

 a = 'Hello'.upper()  #将字符串变为全大写
>>> a
>'HELLO'
>a = 'Hello'.lower()   #将字符串变为全小写
>>> a
>'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
在这里插入图片描述

a = 'Hello'.title()      #将字符串变为标题(首字母大写,其余小写)
>>> a
'Hello'

 
 
  • 1
  • 2
  • 3

在这里插入图片描述

判断文件名称的开头和结尾
判断文件名称的结尾
filename = 'hello.log'
if filename.endswith('.log'):
	print(filename)
else:
    print('error.file')

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述
可以看到, filename = 'hello.loggg’不是以==.log==结尾的文件, 因此, 输出error.file

判断文件名称的开头
url = 'http://172.25.254.14/index.html'
if url.startswith('http://'):
    print('爬取内容')
else:
    print('不能爬取内容')

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

首先,我们给一个正确的文件开头:http://
在这里插入图片描述
可以看到, 能够判断文件开头为http://, 则能够正常执行条件判断成立时的语句块
在这里插入图片描述
再次测试时, 将http改为https, 可以看到, 判断不成立时, 则执行else语句内的内容
在这里插入图片描述
在这里插入图片描述

去除字符串两边的空格

注意:去除左右两边的空格,空格为广义的空格 包括:\t \n
s.lstrip() #hello字符串的左边是\t, lstrip()可以去除字符串左边的空格(\t)

 s = '       hello'
>>> s
'\thello'
 s.lstrip()
'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

>>> s = '        hello'
>>> s
'        hello'
>>> s.lstrip()
'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

s.lstrip() #hello字符串的左边是多个空格, lstrip()可以去除字符串左边的空格
在这里插入图片描述
s.lstrip() #hello字符串的左右两边都是多个空格, lstrip()可以去除字符串左边的空格, rstrip()可以去除字符串右边的空格, strip()可以去除字符串两边的空格

s = '        hello      '
>>> s
'        hello      '
>>> s.lstrip()
'hello      '
>>> s.rstrip()
'        hello'
>>> s.strip()
'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
s.lstrip() #hello字符串的左边是一个制表位, lstrip()可以去除字符串左边的广义空格, strip()可以去除字符串两边的广义空格

s = '       hello'
>>> s
'\thello'
>>> s.strip()
'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
s.lstrip() #hello字符串的左边是一个制表位,右边是一个换行符, lstrip()可以去除字符串左边的广义空格, strip()可以去除字符串两边的广义空格

s = '       hello\n'
>>> s
'\thello\n'
>>> s.strip()
'hello'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
s.strip() #helloh字符串strip('h')去掉字符串两边的h
s.strip() #helloh字符串lstrip('h')去掉字符串左边的h

s = 'helloh'
>>> s.strip('h')
'ello'
>>> s.lstrip('h')
'elloh'

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

字符串的对齐
print('学生管理系统'.center(30))     #居中对齐,左右用空格填补,共占30个字符
print('学生管理系统'.center(30,'@'))    #居中对齐,左右用@填补,共占30个字符
print('学生管理系统'.center(30,'&'))    #居中对齐,左右用&填补,共占30个字符
print('学生管理系统'.ljust(30,'#'))	   #居左对齐,右侧用#填补,共占30个字符
print('学生管理系统'.rjust(30,'#'))     #居右对齐,左边用#填补,共占30个字符

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
字符串的替换
s = 'hello world hello'
# find 找到子字符串,并返回最小的索引
print(s.find('hello'))
print(s.find('world'))
print(s.rfind('hello'))   #找到子串,并返回最大的索引

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

字符串的统计
print('hello'.count('l'))统计字符串中l的个数
print('hello'.count('ll'))统计字符串中ll的个数
print(len('hello'))统计字符串的长度

 
 
  • 1
  • 2
  • 3

在这里插入图片描述
可以看到,在hello字符串中,l的个数为2,ll的个数为1,hello字符串的长度为5

字符串的分离
s = '172.25.254.250'
s1 = s.split('.')      #以.为分隔符分离字符串172.25.254.250
print(s1)
print(s1[::-1])      #将字符串反转
date = '2019-9-1'       
date1 = date.split('-')    #以"-"为分隔符分离字符串
print(date1)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

字符串的连接
# 连接 通过指定的连接符号 连接每个字符
print(''.join(date1))  #将分离的字符串连接起来
print('/'.join(date1))   #将分离的字符串以/为分隔符连接起来
print('~~'.join('hello'))    #将hello字符串用~~连接起来

 
 
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

字符串的连接(小米笔试题)
题目描述:
> 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,
单词用空格分割, 单词之间只有一个空格,前>后没有空格。
比如: (1) “hello xiao mi”-> “mi xiao hello”
- 输入描述: 
> 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
- 输出描述: 
> 对于每个测试示例,要求输出句子中单词反转后形成的句子
- 示例1:

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

    在这里插入图片描述

    在这里插入图片描述

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值