El método básico incorporado de la cadena de python debe aprender series

Requisito: ingrese dos cadenas, elimine los caracteres en la segunda cadena de la primera cadena

Método 1: uso flexible de in y no in for loop traversal

s1 = input("请输入字符串s1:")
s2 = input("请输入字符串s2:")
s3 = ''
for i in s1:
   if i not in s2:
       s3 += i
s1 = s3    ###因为最后要输出的是s1,左移最后将s3赋给s1
print(s1)



请输入字符串s1:dqw twe gqwhlk
请输入字符串s2:weqe
d t ghlk

Método 2: el uso del método de operación de cadena reemplaza

s1 = input("请输入字符串s1:")
s2 = input("请输入字符串s2:")
for i in s2:
    s1 =s1.replace(i,'')   ###使用空格将查找到的字符进行替换掉
print(s1)


请输入字符串s1:dqw twe gqwhlk
请输入字符串s2:weqe
d t ghlk

Comandos para operaciones relacionadas con cadenas

 

(1) El uso del método id La forma de salida de tres comillas == es diferente

1:使用id()方法查看数据的内存地址

注意:使用三引号一般都代表原样输出

s1 = 'adc'
s2 = "adc"
s3 = '''
    abc             
'''
 ###发现使用三引号占用的内存地址和使用单双引号的不同(前提;三引号的内容不再一行上,有换行)                    
print(id(s1),id(s2),id(s3))



2576607765816 2576607765816 2576608677680


s1 = 'adc'
s2 = "adc"
s3 = '''
abc
'''


##如果使用== 或者 is比较返回的结果都是True或者False

print(s1 == s2)     ##  ==比较的是两个字符串的内容是否一样
print(s1 is s2)     ##  is比较得是两个字符串的地址空间是否一样
print(s2 == s3)     ##  使用三引号时会默认输出一个空行
print(s2 is s3)

True
True
False
False


使用input输入字符串时,input输入底层做了处理所以最后的地址时不一样的了,而使用常量赋值时,地址空间是一样的
s1 = input("请输入:")
s2 = input("请输入:")
print(s1,s2)
print(s1 == s2)
print(s1 is s2)
print(id(s1),id(s2))

abc abc
True
False
2227377753984 2227377751016

(2) El operador de la cadena "+" "*" "en"

s1 = input("请输入:")
s2 = input("请输入:")
s3 = s1 + s2     ## + 相当于拼接符
s4 = s2 * 5      ## * 相当于倍数
print(s3,s4)


请输入:qdf
请输入:qer
qdfqer qerqerqerqerqer

# in 在....里面
name = "student"
result = 'tu' in name
print(result)    ##返回结果为布尔类型,不是true就是false

True

# not in 不在...里面
name = "student"
result = 'tu' not in name
print(result)

False


##  %字符串的格式化
name = "student"
print("%s说以后要好好学习" %name)   ###中间不能加逗号

student说以后要好好学习

(3) Aplicación de la cadena de caracteres de interceptación []

filename = 'picture.png'
print(filename[0:3])   ##  截取对应的数字对应的是字符串的下标,是从0开始的 并且包前不包后

pic

===============================================

如果只选取字符串中的一个字母,则不需要加 :

filename = 'picture.png'
print(filename[3])

t

==============================================

#省略 
filename = 'picture.png'
print(filename[3:])    ##如果只要省略的是后面的则表示一直取到字符串的结尾


ture.png


filename = 'picture.png'
print(filename[:6])    ##如果省略的是前面的,则表示从0开始取值


pictur

===============================================

如果切片中存在负数,代表的是从后向前取值,最后一个代表的是-1
filename = 'picture.png'
print(filename[:-1])    ### 0开始取一直取到-1
print(filename[5:-1])   ### 从下标为5的开始取值,一直取到-1,并且是包前不包后的


picture.pn
re.pn


===============================================

字符串的倒序输出 [ ::]  ###此时就可以使用两个冒号,最后的冒号后面的-1代表的是从右向左取值输出
filename = 'picture.png'
print(filename[::-1])

gnp.erutcip



filename = 'picture.png'
print(filename[6:2:-1])


erut

================================================



filename = 'picture.png'
print(filename[-2:-5:-1])   

np.

===============================================
filename = 'picture.png'
print(filename[1:7:2])    ###指定步长

itr




练习:字符串的切片练习
'''
字符串为:hello world
1:逆向输出world
2:正向输出hello
3:逆序输出整个hello world
4:打印获取oll
5:打印llo wo
'''

s1 = "hello world"
print(s1[-1:-6:-1])
print(s1[0:6])
print(s1[::-1])
print(s1[-7:-10:-1])
print(s1[2:8])




(4) función incorporada de cuerda

1: Acerca de casos relacionados

message = 'yz is a good student'
msg1=message.capitalize()   ##将字符串的第一个字母变成大写
print(msg1)

print(message.title())   ##返回的是每个单词首字母都是大写的字符串

msg2=message.istitle()   ##判断该字符串的首字母是否都是大写,返回的结果是布尔类型的值
print(msg2)

msg3 = message.upper()   ##将字符串的所有字母都变成大写
print(msg3)

msg4 = msg3.lower()     ###将字符串的所有字母都变成小写
print(msg4)



验证码案例:

import random
s = 'ADASDADKDIFIOPJIAHfcbwiehfqdjaqwodqdh14853217^$%*&@#^^&2'
code=''
for i in range(4):
    num = random.randint(0,len(s)-1)   ###这里减1是因为,字符串的对应的下标的值比字符串本身的长度少1
    code += s[num]
print('验证码为:',code)

user_input = input("请输入验证码:")
if code.lower() == user_input.lower():   ###将系统产生的验证码和用户的输入的验证码都进行一个小写的转换,更加符合正式的环境,当我们输入验证码的时候,无论用户输入的是大写还是小写都可以进行
    print("验证码正确")
else:
    print("验证失败")

2: buscar y reemplazar métodos relacionados

find方法使用

index和find的用法是一样的,只不过但是如果没有找到想要找的字符时会报错。

find命令的结果为:find(‘需要查找的字符’,开始的位置,结束的位置)

##使用in 或者 not in也可以对字符串中是否存在该字符进行判断,但是其只能返回布尔类型的值
s = " index luck lucky goods "
restult = 'l' in s
print(restult)

True

================================
s = "index luck lucky goods"
position = s.find('i')
print(position)            ###如果使用find找到了对应的值所在的位置,及索引值

0 ##返回值为下标


s = " index luck lucky goods "
position = s.find('v')
print(position)            ###如果使用find如果没有找到对应的值,则会返回-1

-1   ##如果没有找到,统一的返回值都是-1


s = "index luck lucky goods"
position = s.find('l')
print(position)

6   ###如果某个字符串中存在多个相同的值,则返回的值为第一次找到的对应的索引值


s = "index luck lucky goods"
position = s.find('l')
print(position)
p = s.find('l',position+1,len(s))   ##此时可以通过指定寻找的开头和结尾来进行查找
print(p)


6
11

#rfind 从字符串的右侧开始查找
#lfind 从字符串的左侧开始查找

url = 'https://www.baidu.com/img/bd_logo1.png'
p = url.rfind('/')   ##先找到最后一个/的位置
print(p)
p1 = url[p+1:]       ##然后再将后面的字符串给输出来
print(p1)

25
bd_logo1.png

3: Reemplazar la aplicación del método de reemplazo

##replace的语法格式 replace(字符串中存在的(ord),想替换成什么(new),数字(替换的个数))
s1 = 'adq fdqw fqqqd'
s2=s1.replace(' ', '-')
print(s2)
s3=s1.replace(' ', '')
print(s3)
s4=s1.replace(' ', '',1)   ###不指定数字时。默认替换字符串中所有的
print(s4)


adq-fdqw-fqqqd   ###将所有的空格都替换成-
adqfdqwfqqqd     ###将所有的空格替换成空
adqfdqw fqqqd    ###只替换第一个遇到的空格

4: Método para interpretar el principio y el final de una cadena (startwith (), endwith ())

##startwith() endwith() 返回值都是布尔类型的

filename = 'python笔记.doc'
result = filename.startswith("python")
print(result)
result1 = filename.endswith("doc")
print(result1)

True
True


例题:

'''
要求:给定一个文件的路径,上传文件(只能是记事本txt或者是图片jpg格式的)
如果不是对应的格式的,允许重新上传文件
如果符合上传的文件符合格式要求则提示
'''
方法1:
while True:
    file  = input("请输入你要上传的文件:")
    gs = file.rfind(".")
    file1 = file[gs+1:]
    if file1 == 'txt' or file1 =='jpg':
        print("文件上传成功")
        break
    else:
        print("文件上传失败请重新上传")

方法2:
while True:
    file  = input("请输入你要上传的文件:")
    if file.endswith("txt") or file.endswith("jpg"):
        print("文件上传成功")
        break
    else:
        print("文件上传失败请重新上传")

Cadena función incorporada codificación codificación decodificación decodificación

msg = '我是个好学生'
msg1=msg.encode('utf-8')  ###指定utf-8编码,如果不指定的话,默认的也是utf-8编码的
print(msg1)
msg2=msg1.decode()
print(msg2)


b'\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xaa\xe5\xa5\xbd\xe5\xad\xa6\xe7\x94\x9f'
我是个好学生

Juicio de cadenas de letras o números

#isalpha() 判断字符串至少有一个字符,并且所有的字符全是真则返回真
#isalnum() 判断字符串至少有一个字符,并且所有的字符都是字母或者数字则返回真
#isdigit() 如果字符串全为数字则返回True
s = 'dqwd6'
result = s.isalpha()
print(result)

s1 = '65465'
result1 = s1.isalnum()
print(result1)

False
True


'''
要求输入三个整型的数字,并且统计他们的和
'''
#注意:因为有可能会存在输入错误的情况,所有不能使用for循环,只能使用while,因为while循环存在i+1机制

sum = 0
i =1
while i <=3:
    num = input("请输入数字:")
    if num.isdigit():
        num1 = int(num)
        sum += num1
        print("{}数字输入成功:".format(i))
        print(sum)
        i+=1
    else:
        print("请输入正确的格式")

El método de unión de cadenas se usa generalmente para convertir una lista en una cadena

#以指定字符作为分割符,将括号中的所有元素与之前的字符串合并成一个新的字符串
#使用join方法返回的是一个字符串类型的
new_str = '*'.join('abc')
print(new_str)
new_str1 = ''.join('abc')
print(new_str1)

##重点:将一个列表转换成字符串类型的
list1 = ['d','e','你好','9']
print(type(list1))
result = ''.join(list1)
print(result)
print(type(list1))


a*b*c
abc
<class 'list'>
de你好9
<class 'list'>

El método split string split () generalmente se usa para convertir una cadena en la lista de

s = 'weq qeq qeq dda'
list1 = s.split(' ')  ##引号之间的可以用来指定分割符
list2 = s.split('e')  ##此时我指定用e来进行切割
print(list1)
print(list2)
print(type(list1))

['weq', 'qeq', 'qeq', 'dda']
['w', 'q q', 'q q', 'q dda']
<class 'list'>


s = 'weq qeq qeq dda'
list1 = s.split(' ',2)  ##引号之间的可以用来指定分割符,后面的2表示切几次
print(list1)
print(type(list1))

['weq', 'qeq', 'qeq dda']
<class 'list'>

El método de conteo determina el número de caracteres especificados en una cadena.

s = 'weq qeq qeq dda'
num = s.count('d')   ###字符串中d的个数
num1 = s.count(' ')  ###字符串中空格的个数
print(num)
print(num1)

 

 

Supongo que te gusta

Origin blog.csdn.net/yinzhen_boke_0321/article/details/104476478
Recomendado
Clasificación