Python教程

2021-08-25 Python之字符串操作

本文主要是介绍2021-08-25 Python之字符串操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

字符串截取:[ ]   [  :  ]

#  用 [ ]   [  :  ] 截取字符串。

 1 filename='picture.png'
 2 print(filename[5])   #通过[ ] 可以结合位置,获取字母,位置(下标)/(索引)都是从0开始
 3 
 4 print(filename[0:7])    #包括前边的,不包括后面的,即0~6,与range()类似
 5 
 6 print(filename[3:7])    #截取字符串
 7 
 8 print(filename[3:])       #只要省略的是后面的,表示取值到字符串的末尾位置
 9 
10 print(filename[:7])      #省略的是前面的,表示从0开始取值
11 
12 print(filename[8:-1])
13 
14 print(filename[-1:])    #负数,表示取值的方向是反的(倒着取值)
15 
16 print(filename[:-2])   
17 
18 print(filename[::-1])     #-1表示倒着取值,将整个字符串倒叙输出
19 
20 print(filename[5:0:-1])  #从5到0逆向取值,[5:0:-1],最后一位表示方向
21 print('----------->',filename[5:0:1])  #这种写法不对,1表示正向取值,而5:0表示逆向,与之冲突
22 
23 print(filename[::2])        #[start : end : step]

 

#字符串的内建函数:声明一个字符串。默认可以调用内建函数(系统准备好的一些函数)
#大小写相关的函数:capitalize() title() upper() lower()

 1 message='zhao is a beautiful gril'
 2 m=message.capitalize()    #一句话的首字母大写
 3 print(m)
 4 
 5 m=message.title()       #返回值:每个单词的首字母大写
 6 print(m)
 7 
 8 result=message.istitle()     #返回值是布尔类型,判断字符串(单词)是否首字母大写
 9 print(result)
10 
11 m=message.upper()   #全部转成大写字母
12 print(m)
13 
14 result=m.lower()      #全部转成小写字母
15 print(result)

 

#案例:验证码
#IndexError:string index out of range 表示字符串索引超出范围
#index : 0~len(s)-1

 1 s='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
 2 #print(len(s))     #字符串的长度len(str),返回值是一个整形数
 3 code=''
 4 import random
 5 for i in range(4):
 6     ran=random.randint(1,len(s)-1)
 7     code+=s[ran]
 8 print('验证码:'+code)
 9 
10 #提示用户输入验证码:
11 user_input=input('请输入验证码:')
12 if user_input.lower()==code.lower():
13     print('验证码输入正确')
14 else:
15     print('验证码错误')

 

#字符串查找,替换相关的函数:find() rfind() lfind() index() rindex() lindex() replace()
# index() 用法与 find() 类似,不同点是index() 函数会在找不到字母时报错,而find() 只返回-1

1 s1='index lucky goods'
2 result='l' in s1
3 print(result)
4 
5 position=s1.find('c')    #find() 返回值是字母第一次出现的位置,如果字符串中没有,返回-1
6 print(position)
7 
8 p=s1.find('l',position+1,len(s1)-5)   #可以指定开始和结尾位置查找
9 print(p)

 

#案例:从链接截取保存图片地址
#https://www.baidu.com/img/dong_66cae51456b9983a890610875e89183c.gif

1 url='https://www.baidu.com/img/dong_66cae51456b9983a890610875e89183c.gif'
2 p=url.rfind('/')           #right find 从右侧找出 / 的位置
3 print(p)
4 filename=url[p+1:]    #截取出图片的名称
5 print(filename)

 

#替换字符串  replace(old,new,[max])   用new 替换old 同时可以指定替换的次数 max

1 s1='k k k h h h '
2 s2=s1.replace(' ','#')
3 print(s2)
4 s2=s1.replace(' ','',2)   #将前两个空格去掉
5 print(s2)

 

#字符串内建函数: encode编码 decode解码
#编码:对中文等语言进行编码才能在网络传播
# gbk 中文 gbk2312 简体中文

1 msg='认真听课'
2 result=msg.encode('utf-8')
3 print(result)
4 
5 #解码:
6 m=result.decode('utf-8')
7 print(m)

 

#字符串内建函数: startswith() endswith() 返回值都是布尔类型
#startswith 判断是否是以xxx开头的,或者 endwith 判断是否是以xxx结尾的
#应用:文件上传:只能上传图片(jpg,png,bmp,gif)

1 filename='笔记.doc'
2 result=filename.endswith('doc')
3 print(result)
4 
5 s='hello'
6 result=s.startswith('he')
7 print(result)

 

#案例:文件上传:图片文件(jpg,png,bmp,gif)

1 while True:
2     path=input('请选择文件:')
3     p=path.rfind('\\')      
4     filename=path[p+1:]     #切片截取文件名,判断是否是图片类型
5     if filename.endswith('jpg') or filename.endswith('png') or filename.endswith('gif'):
6         print('图片允许上传')
7         break
8     else:
9         print('不是图片格式,只能上传图片')

 

 # expandtabs(tabsize=8)把字符串string 中的tab符号转为空格,tab符号默认的空格数是8

 

# 字符串判断:
# isalnum() 如果字符串至少有一个字符并且所有的字符都是字母或数字则返回True,否则返回False
# isalpha() 判断是否是字母
# isdigit() 判断是否是数字
# islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些字符都是小写则返回True
# isnumeric() 如果字符串中只包含数字字符则返回True,否则返回False
# isspace() 如果字符串只包含空白,则返回True
# istitle() 如果字符串是标题化的(字母全部为大写)则返回True
# isupper() 如果字符串中包含至少一个大写字符则返回True

1 s='sadfgh'
2 result=s.isalpha()
3 print('result=',result)
4 s='6877'
5 result=s.isdigit()
6 print(result)
1 sum=0
2 for i in range(3):
3     num=input('请输入数字:')
4     if num.isdigit():
5         num=int(num)
6         sum+=num
7         i+=1
8 print('sum=',sum)
 1 sum=0
 2 i=1
 3 while i<=3:
 4     num=input('请输入数字:')
 5     if num.isdigit():
 6         num=int(num)
 7         sum+=num
 8         print('第{}个数字累加成功!'.format(i))
 9         i+=1
10     else:
11         print('不是数字!')
12 print('sum=',sum)

#join(seq)  以指定的分隔符将  队列(sequence)  中所有元素合并为一个新的字符串.

1 new_str='-'.join('asd')
2 print(new_str)

#  ' '.join()  在python 列表中的应用:

1 list1=['a','s','d']
2 result=''.join(list1)
3 print(result)
4 
5 result=' '.join(list1)
6 print(type(result))     #返回的列表是字符串类型

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

# lstrip() 截掉字符串左边的空格或指定字符
# rstrip() 截掉字符串右边的空格或指定字符
# strip() 在字符串上执行 lstrip() 和 rstrip()

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

# max(str) 返回字符串str中最大的字母
# min(str) 返回字符串str中最小的字母

1 s='         hello        '
2 s=s.lstrip()
3 print(s+'2')
4 
5 s=s.rstrip()
6 print(s+'3')

# split('分隔符',切割的次数) 分割字符串,将分割后的字符串保存到列表中。

1 s='hello word hello kitty'
2 result=s.split(' ',2)          #按照空格作为分隔符分割字符串2次
3 print(result)
4 
5 n=s.count(' ')
6 print('个数:',n)

# string 案例:
#输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符
#方法一:

1 s1=input('请输入第一个字符串:')
2 s2=input('请输入第二个字符串:')
3 s3=' '
4 for i in s1:
5     if i not in s2:
6         s3+=i
7 print(s3)
8 s1=s3
9 print(s1)

#方法二:

1 s1=input('请输入第一个字符串:')
2 s2=input('请输入第二个字符串:')
3 for i in s2:
4     s1=s1.replace(i,' ')
5 print(s1)

#单词每个都是大写字母,而且没有两个连续相等的字母。

 1 word=input('请输入单词:')
 2 for i in range(len(word)):
 3     if word[i]<'A' or word[i]>'Z':
 4         print('不喜欢')
 5         break
 6     else:
 7         if i<len(word)-1 and word[i]==word[i+1]:
 8             print('不喜欢')
 9             break
10 else:
11     print('喜欢')

#循环提示用户输入用户名,密码,邮箱(要求用户输入的长度不超过20个字符,如果超过则
#打印输出           用户名           密码                    邮箱
#                         Admin            123                    hjk@163.com
#                         Lily                 567                    yun@163.com
# 如果用户输入 q 或 Q 表示不再继续输入。

 1 s=' '
 2 while True:
 3     username=input('请输入用户名:')
 4     password=input('请输入密码:')
 5     email=input('请输入邮箱:')
 6 
 7     username=username[0:20]
 8     password=password[0:20]
 9     email=email[0:20]
10     msg='{}\t{}\t{}\n'.format(username,password,email)
11     msg=msg.expandtabs(16)
12     s+=msg
13     if username=='q' or username=='Q' or password=='q' or password=='Q' or email=='q' or email=='Q':
14         break
15 print(s)

 

这篇关于2021-08-25 Python之字符串操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!