Python 之字符串操作学习

一.基本知识

1.双引号
字符串可以用双引号开始和结束。双引号中开始以双引号结束。
spam="Test"
2.转义字符
双引号中需要有单引号,或者单引号中需要有双引号。

spam="T'B"'
打印出来是 T‘B
spam='T\'B'
打印出来是 T‘B
spam="A\"B"
打印出来是A"B
\'-------单引号转义字符
\"-----双引号转义字符
\t------制表符
\n-----换行符
\\-----倒斜杠

原始字符串
字符串开始打得引号之前加r.
spam=r"A’B"
4.三重引号
三重引号用于多行字符串,如:
spam=“asdasdasd
asdasd
asdasd”
此字符串由于Python的缩进机制会报错,改正:
spam=‘’‘’asdasdasd
asdasd
asdasd‘’‘
三重引号还用于注释。
5. 字符串下标和切片

spam='ABCDEF'
spam[0]----代表A      
spam[start:stop[:step]---返回新的字符串
start---代表开始阶段
stop---字符串结束,倒数第一个为-1,倒数第二个为-2,以此类推。
step---步长,字符串开始截取第一个+步长+截取第二个(这个字符串的下标位置等于步长)

6.字符串的in和not in

source="ABCDEF"
print("ABC" in source)---返回True
print("ABC" not in source)--返回False

二.字符串常用方法

  1. 常用方法:
    upper()-----字符串转化为大写,返回新的字符串,str,upper()
    lower()----字符串转化为小写,返回新的字符串,str.lower()
    isupper()—字符串中所有字符是否全部大写,返回BOOL
    islower()—字符串中所有字符是否全部小写,返回BOOL
  2. isX字符方法
    isalpha()----如果字符串只包含**字母,**非空,返回BOOL
    isalnum()----如果字符串只包含字母和数字,非空,返回BOOL
    isdecimal()-----如果字符串只包含数字,非空,返回BOOL
    isspace()—如果字符串只包空格、制符表、换行符,非空,返回BOOL
    istitle()-如果字符串仅包含以大写字母开头,后面都是小写字母单词,返回BOOL
  3. 字符串startwith(),endwith()
    查看字符串开始或结束包含某个字符串,
    str.startwith()----开始包含,返回BOOL(这里先按子串寻找)
    str.endwith()–结束包含,返回BOOL(这里先按子串寻找)
  4. 字符串方法join()和split()
    如果有一个字符串列表,需要将他们连接起来,成为一个单独的字符串,join()方法可以调用,参数是一个字符串列表。

print(" ".join(['A','B'])) 返回新的字符串
--》A  B
split() 分割字符串,返回一个字符串列表

  1. rjust()、ljust()、center()方法对其文本
    rjust()和ljust()方法通过插入空格来对其文本。
print("A".rjust(20))#左补齐20个字符串,返回新字符串
>>>                     A
print("A".ljust(20))#右补齐20个字符串,返回新字符串
>>>A                   
print("A".center(20,"-"))#居中,以“-”字符来补齐,返回新字符串
>>>---------A----------
  1. strip() rstrip() Istrip()删除空白字符串
    这个三个字符串都返回新的字符串
    rstrip–删除右边空白字符串
    Istrip–删除左边空白字符串
    strip—删除两边字符串,有可选参数
print("ABCDFGHJJABDS".strip("ABC"))
>>>DFGHJJABDS
  1. pyperclip模块拷贝粘贴字符串
    pyperclip中有copy() 和paste()函数,向计算机剪切板发送或接受文本
import pyperclip
print(pyperclip.copy("Asdasd"))#返回NONE,不一定要用这个函数,主要复制的都可以
print(pyperclip.paste())#返回剪切的内容
  1. 书上练习的脚本
#-*- coding:utf-8 -*-
'''
字符串练习项目需要实现的功能:
1.用户在本地的文件中保存了用户名和密码。
2.需要通过查询用户得到密码,再复制到剪切板上去,方便用户不用每次上不同网站输入密码。
3.同目录下建立一个文件来通过dict的格式储存不同的用户名和密码
4.{"user1":"123456","user2":"78946","user3":"ACBD"}
'''
import os 
import pyperclip
import ast
class get_psd(object):
	"""docstring for ClassName"""
	def __init__(self):
		pass
	def search_pad(self,accout):
		f=open("account_psd.txt","r")
		account_info=f.readline()
		f.close()
		for i in   ast.literal_eval(account_info):
			if i==accout:
				pyperclip.copy( ast.literal_eval(account_info)[i])#复制到剪切板
				return  ast.literal_eval(account_info)[i]
			else:
				return "未寻找此账号"
if __name__ == '__main__':
	print(get_psd().search_pad("user1"))
'''
字符串转字典的三种方法:
1.json.loads(account_info)   数组或对象之中的字符串必须使用双引号,不能使用单引号
2.	 eval(account_info) 安全性不足
3.
import ast
 ast.literal_eval(account_info)要用这个


'''

#-*- coding:utf-8 -*-
'''
实现功能如下:
1.从剪切板获取到内容后,处理后为一行一行的并且前面有*
如:
复制内容为:
123
4567
asdsd
处理后:
*123
*4567
*asdsd
'''
import pyperclip
import os
def paste():
	txt=pyperclip.paste()
	str_=	txt.split("\n")#先处理换行 
	for i in range(len(str_)):
		str_[i]="*"+str_[i]
	print("".join(str_))
paste()
#-*- coding:utf-8 -*-
'''
编写一个函数,它接受字符串的列表的列表,将它显示在组织好的表格中,每列右对齐,嘉定所有的内层列表都包含同样数目的字符串。
分析:
获取到每个内层列表中的最大字符串长度,
再有三个列表中最大字符串长度进行右对齐。
table_data = [['apples', 'oranges', 'cherries', 'banana'],
                ['Alice', 'Bob', 'Carol', 'David'],
                ['dogs', 'cats', 'moose', 'goose'],
               ]
使用右对齐
  apples   Alice    dogs

 oranges     Bob    cats

cherries   Carol   moose

  banana   David   goose
# '''
table_data = [['apples', 'oranges', 'cherries', 'banana'],
                ['Alice', 'Bob', 'Carol', 'David'],
                ['dogs', 'cats', 'moose', 'goose'],
               ]
def print_Table(str_list):
	col=[0]*len(str_list)
	lengh=[]
	list_y=len(str_list[0])
	for x in range(len(str_list)):
		for y in range(list_y):
			lengh.append(len(str_list[x][y]))
		col[x]=max(lengh)#每个列表中的长度
	intWidth = max(col) #获取最大长度,右对齐的需要左边补
	for x in range(list_y):
		for y in range(len(str_list)):
			print(str(str_list[y][x]).rjust(intWidth,"*"), end = '')#进行打印排列,这里end="",如果不设置的话会自动换行
		print('\n')
		#第一个打印后进行补,第二个在第一个基础上进行补字符,以此类推。
		#
print_Table(table_data)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值